хе-хе... а чет даже не вчитался. проверил, что инструкция работает и норм.... пасиб
хм... подумаю (точнее в случае этого модуля: заставлю)
Имхо, тут изначально не корректное сравнение: тут получается под капотом аж целых три:
- php vs python
- асинхронное решение или нет
- cms vs фреймворк
Ну, а почему нет? Из "на поверхности".
У ноды, в плане отдачи есть свои преимущества.
При работе в команде удобное разделение фронтов и бекендеров.
Это есть в PHP. Но всегда ли он справляется? для примера из того что мне ИИ написал "Аналог static в PHP. Данные, записанные на уровне модуля, живут весь жизненный цикл процесса" в этом случае GS ни как не поможет. Т.е. я ту фразу писал уже с учетом GS. т.е. я именно о том что тут необходимо и подходить к разработке с учетом этого и разработчик должен понимать где GS сработает, а где нет.
Это все понятно. Да и это только, что на "поверхности".
А я думаю нет. Вообще, на мой взгляд, если я правильно понял тему, ты просто стал "заложником" своей эволюции :)
Поясню опять же на Битрикс. (покажу несколько утрировано - специально, чтоб акцентировать) Частенько участвовал в холиварах на его тему. и вот вывод сделал для себя. Есть разработчики: когда то прищли в вуб джунами, им попалась какая то CMS, на которой они как то выполняли задачи. И, естественно, если что то работало медленно - то это cms хреновая. Но все же этот джун растет и уходит в более продвинутую команду где уже ларавел/симфа и где все говорят что цмс зло (хотя в истоках были объективные причины по которым команда на лару перешла). вот в этой конторе происходит основное становление как программиста. Время идет и вот программист ушел в какой то продукт где RPS 100k это норма. О той cms уже смутные воспоминания. С другой стороны для него становится нормой большие числа rps. Сложные задачи и т.д и т.п.
И вот тут он по каким то причинам начинает оценивать ту самую цмс из прошлого.... Инстинктивно начинает примерять ее на свои текущие задачи (в т.ч. РПС 50k)..... Но есть большое НО:
1 В его текущем проекте любая cms не покрыла бы и 10% необходимого функционала (даже если забить на производительность). т.е. в принципе не подходит
2 Уверен подавляющее большинство сайтов с такими рпс ни когда не сталкиваются
3 Знания. Возможно если бы он на данном этапе своего развития глубоко вник в ту самую цмс из прошлого, у него бы картинка сильно изменилась (да понятно что не на все 100%: универсальность всегда дорогая).
Вот я с такими сталкивался. Да видно что спец офигенно грамотный и часто явно грамотнее меня. Но когда начинает говорить о цмс с которой я работаю ежедневно - ну я вижу что он ее не знает достаточно для оценок :)
Ответвление от челенджа :)
Решил я попробовать использование агентов. И для этого "теста" решил добавить усложнение взять фреймворк которые ИИ не знают. т.е. как раз вот мой. И попробовать написать к нему модуль. При этом условие: я не должен вообще ни строчки написать в нем.
В качестве функционала простейшее: генерировать аватар по нику.
Сначала взял GigaCode - он лихо начал, и быстро написал код. Я в нем видел ошибки, но такие что не сложно было бы исправить... Но вот дальше его переклинило два дня он мне выносил фоном мозг. и я просто плюнул. Был похож на вечно торопящегося джуна бросающегося переписать все каждый раз заново и забывая что делал...
Взял агента от яши. Этот уже шел медленно но очень кропотливо подходил. Постоянно возвращался к анализу фреймоврка (я ему, как и первому, сказал склонировать репозиторий фреймворка во временный каталог), и не просто перечитывал файлы но и порой использовал рефлексию для анализа. после создания очередного класса чекал синтаксис. В общем планомерно фоном сделал. (За день, но тут надо понимать, что он постоянно просил подтверждение действия, а я работал т.е. были и простои пока я увижу). В итоге сделал. И я его также попросил прикрутить стат анализ и анализ стиля кода - прогнать проверки и исправить. так же написать тесты, gitattributes и конфиг для докера (чтобы можно было использовать не только как модуль, но и как готовый сервис), а так же настроил и использовал тулзу версионирования. так же он делал своевременно коммиты ... в общем справился.
Из проблем: несколько раз в php код вставлял json (думаю это бага плагина vscode) и два раза дублировал строки когда в composer.json добавлял скрипты
Результат здесь в доке есть описание как попробовать сервис через докер :)
Ну и далее технический момент который привносит в проект использование FrankenPHP, RoadRunner и, полагаю судя по принципу, FastAPI - появлется вопросы к которым надо ответственнее относится. Я про те же утечки памяти, т.е. надо внимательнее к коду относиться, причем некоторые вещи на уровне понимания должны быть, т.к. отладить их сложнее.
Про фаст апи сам я не знаю, потому спросил у ИИ:
Так же дополню.
Для начала по самим языкам. Тут чисто по памяти в этом году видел несколько бенчей которые показали что PHP8.* быстрее чем Питон
Тыц 1 Тыц 2
Далее FastApi не совсем корректно сравнивать с CMS
Тогда надо например брать RoadRunner + фреймворк какой либо . Как вариант Laravel Octane.
Так же есть FrankenPHP. А еще есть kPHP.
Ну а далее (скажу честно лень было гуглить спросил у ИИ расклад)
кроме случаев когда сказали сделать на вп/опенкарте/цс карте/мадженто/инстант И так далее
Я например много "перевел" на опенкарт
Полагаю таки историй сильно меньше. Т.е. тут либо исполнитель страдает отсутствием заказов (в то что есть исполнители-одиночки, кто владеет всеми cms на абсолютно одинаковом глубоком уровне я не очень верю) - т.е. круг сужается. Да, конечно, можно освоить под проект (я даже плюсы под проект как то освоил), но это такие разовые частные случаи.