Chat:Ru/2020-07-04

From CG community
Jump to navigation Jump to search

vrabosh: нам нужен контест, чтоб чат стал актиней:)

tutubalin: TimMcSim привет! поработал над ошибками?

TimMcSim: Проверка связи.

TimMcSim: @tutubalin, привет! Рад читать! Полным ходом идет доработка. Вчера времени не было, а сейчас с переменным успехом занимаюсь. Но твои советы очень сильно помогли. Как закончу, обязательно покажу, если ты не против.

tutubalin: конечно!

vrabosh: сознайте кто нить проект мморпг или стратегию, где пишешь бота, которому допустм дается 5мс на ход и играется всегда онлайн, развиватся герой или колония.

vrabosh: если на питоне такое ктото сделает, еще и с обучающим курсом как программить, для начинающих.. думаю такой проект зайдет оч хорошо.

vrabosh: Кстати интересно питон под вэб.. допустим взять джанго, я как понял - это свой вэбсервер по сути фреймворк?

vrabosh: т.е. если я гдето в коде накасячу, но сразу этот касяк не замечу, но потом както вылезит ошибка, то по сути упадет весь сервер?

vrabosh: точнее весь сайт?

tomatoes: деплой там своя атмосфера

vrabosh: что за деплой?

tomatoes: ну настройка на сервере всего этого

vrabosh: т.е. нет как в пхп , index.php?a='133- error, но работает..

tomatoes: нгинкс + гуникорн + джанго/фласк

tomatoes: доступ именно по файлу не попадалось нигде

vrabosh: джанго, это я запустил и он весит в процессам линукс? или при каждом запросе запускается как в пхп?

vrabosh: типа index.py

tomatoes: висит

vrabosh: вот я про это и говорю, если произайдет внутреняя ошибка, то весь сайт падает?

vrabosh: получается программить на лету не получется?

vrabosh: придется тщательно тестировать.

vrabosh: и кстати если тот чат-бот, через nginx сделать. чтобы каждый раз кэлбэк от вк тогоже запускал скрипт питона, сам питон с нуля запускается долго?

vrabosh: т.е. 100 скриптов в сек запустит?

vrabosh: допустим с import numpy

tomatoes: этим gunicorn (или что-то подобное занимается), создает воркеры и перезапускает в случае ошибок

tomatoes: php-fpm примерно так же помоему работает

vrabosh: апачь)

vrabosh: нгинкс+апачь+пхп использую

tomatoes: апачем давно не пользовался

tomatoes: насчет чатбота не понял

vrabosh: мне интересно, как питон по производительности если его запускать по 100-1000 в сек

vrabosh: пускай скрипт не сложный.. но всеравно на сам запуск сколько он тратит времени

tomatoes: сам скрипт запускается один раз и потом при каждом запросе только функция вызывается

vrabosh: а если я хочу чтоб каждый раз запускал

vrabosh: т.к. если один раз запускается, то я на лету не могу править

tomatoes: запускай)

vrabosh: мне каждую правку надо перезапускать

tomatoes: дев-режим обычно везде есть

tomatoes: чтобы само перезапускалось при изменении файлов

vrabosh: т.е. вк стучится комне 192.111.11.1/bot.py?choto

vrabosh: в таком случае мне не надо парится про много поточность в коде.. а тупо писать сам код простой и удобный

vrabosh: разивая по файлам.. чтото захотел изменить, изменил на самом серевере.. и даже если будет ошибка, то это будет гдето в какомто месте, а не на всем чатботе..

vrabosh: это может быть при особом запросе.. типа "продать вещь"

vrabosh: я посмотрел как народ по современому пишет, это жесть.. сложно.. они запускают скрипт.. он в while куриттся еще асинхроность прикручивают. и если гдето я ошибаюсь. у меня весь бот падает...

vrabosh: а ошибка может быть незаметная, которая и через год вылезит. а я в это время в путешествии без связи.

vrabosh: поэтому интресно, питон он если его каждый раз запускать, он быстрее пхп запускается или хотябы также?

tomatoes: упадёт один запрос только

tomatoes: или я не понимаю :neutral_face:

vrabosh: python a.py args - каждый раз когда пользователь жмет кнопку в чатботе запускается и каждый раз когда шлет сообщение

vrabosh: args - может быть что угодно

vrabosh: при args - допусим 3443242 работает норм.. а при '\2` он выдает ошибку

vrabosh: поэтому я и хочу каждый запрос вызывать python a.py args

vrabosh: это мне организует nginx

vrabosh: вот 1000 раз вызвать python a.py args в сек, это не сложно для питона?

vrabosh: допустим если там будет import numpy, mysql, еще что нить

vrabosh: или он будет страдать при каждом вызове ?

vrabosh: потомучто у меня порой смотрю первый выхов нампи на в юпитере долго идет

tomatoes: не знаю справится ли, но как-то неправильно так делать

vrabosh: пхп так живет

vrabosh: а как правельно?

tomatoes: пробовал laravel или что-то вроде?

vrabosh: я еще нечего не пробовал

vrabosh: просто любопытно стало

vrabosh: а на пхп, я вообще через апачь все делаю, и использую банальный язык.. фор, иф, функция, пдо и все

tomatoes: запускается скрипт/джанга и ставится мол при таком то запросе, вызываешь такую то функцию

vrabosh: я все по файлам разбиваю. каждая логика это отдельный файл. и если я гдето ошибся.. то это только на это влияет, некто это даже не заметит

vrabosh: а если в функции ошиба то что буедт?

tomatoes: и собственно не надо по 100 раз перезапускать, просто вызов функции будет если эксепшон необработанный, то краш, но перезапуском уже супервайзер какой-нибудь занимается (гуникорн например)

tomatoes: по файлам возможно тоже можно сделать, но как-то никогда не интересовался как

vrabosh: пользователь нашел ошибку, и кидает ее на сервер.. это что всем ждать пока перезапуститмся?

tomatoes: помню что у гугла давно FAQ был и в урл было что-то вроде answer.py

tomatoes: нет, настраиваешь несколько воркеров и пока один перезапускается остальные продолжают работать как раньше

vrabosh: а если он 1000 запросов с эксплоитом отправляет?

vrabosh: все воркеты упали и перезагружатся?

tomatoes: да

vrabosh: поэтому это не удобно..

tomatoes: обрабатывай ошибки возможные

tomatoes: проверяй что на входе

vrabosh: это долго..

vrabosh: я написал код, пользователи отестивоали)

tomatoes: это норма

vrabosh: большая часть кода это визуализация..

vrabosh: где на данные не влияет.. и проще написать быстро.. запустил.. игроки тестируют, если допустим в разделе скилов или магазине ошибка, то только там эта ошибка.. а вся игра дальще работает

vrabosh: просто пока я не поправлю, будут магазин с ошибкой.. это не сильно повляет на игру

vrabosh: таким способом можно на лету обновы делать

vrabosh: и у меня на каждое действие свой файл типа куда идет запрос, типа shop.php, skill.php, atack.php, refresh.php итд

tomatoes: раньше часто такое встречалось, потом все перелезли на фреймворки

vrabosh: а они не дают лишнюю нагрузку и читабельность не усложняют?

vrabosh: вот у меня допустим shop.php, там 200 строк кода, где есть покупка, продажа, список вещей.. логика и визуализация сразу..

vrabosh: неужели удобней будет создавать класс shop, отдельно логику писать, потом отдельно визуализацию итд итп п овсем правилам mvc и фрейм ворка?

vrabosh: и потом каким нить способом это все вызывать допустим index.php?a=shop&еще что нить

tomatoes: нагрузку дают, читабельность улучшают

vrabosh: вот я описал.. неужто тебе сложно былобы прочесть мой код?

vrabosh: 200 строк?

vrabosh: где сразу ты и визуализацию видешь и логику

tomatoes: ну 200 то наверное без проблем

vrabosh: так таких файлов допустим 1000 штук и каждый не больше 200строк

vrabosh: 1 файл это по сути класс

vrabosh: причем эти 200строк вся инфа о этом действии

vrabosh: вот допустим я тут в чате отправляю запрос .

vrabosh: и вижу куда он идет.. открываю файл и там простые 50строк.. запись в базу и какая нить обработка предварительная..

vrabosh: не классов, нечего нет лишнего.. чисто то что надо

vrabosh: чистый код

tomatoes: не знаю, тут сложно сравнить

tomatoes: у тебя вся архитектура и что где лежит, что куда идёт уже в голове