Chat:Ru/2020-07-04
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: у тебя вся архитектура и что где лежит, что куда идёт уже в голове