Какой фреймворк выбрать?
Добавлено: 2021.01.10, 20:02
Привет Yii-форумчане, есть несколько холиварных вопросов о Yii 2/3 на которые пока не найдены окончательные ответы. Так как это форум о Yii, скорее всего здесь есть люди со схожей ситуацией что и у меня. В веб-студии сейчас на постоянной поддержке почти 80 проектов, из них около 60 на Yii2, остальные на Laravel4/5/6 и Sf 3/4. Из всех поддерживаемых проектов всего 4 являются полноценными энтерпрайзами, 3 из них на Yii2 и 1 на SF3.4. Остальные середнячки, в основном CRM'ки для внутреннего пользования фирм с торчащими API наружу для фронтенда и сторонних сервисов.
Собственно, сами темы/вопросы.
1. На чем писать крупные/энтерпрайзные проекты?
Свои соображения по крупным проектам, вкратце, такие. CMS'ки отваливаются сразу. Самописы тоже, так как за >15 лет коммерческой практики не встретил ни одного нормального, хотя повидал много. Все сборные/супергибкие солянки библиотек похожи на ад и требуют намного больше человеко-часов чем Yii/Symfony/Laravel. Поэтому фреймворки их и выдавили с рынка.
3-и из 4-х наших действующих энтерпрайзов написаны на Yii2, 4-й на Sf3.4. Yii2 будет поддерживаться разработчиками фреймворка до 2026 года, там все хорошо. С Sf3.4 проблемы, в этом году поддержка иссякает и нужно что-то с этим делать.
Кто как поступает с заброшенными версиями Symfony/Zend ? Мы пока думаем.
В ближайшем будущем нужно будет начать пятый большой проект, ТЗ уже оговорено и это точно долгострой. Отсюда возник вопрос на чем его писать.
Yii2 больше не будет развиваться. Yii3 еще толком не готов. Zend отжил своё и отправился к праотцам. Laravel рассматривать на подобного вида проекты тоже очень сомнительно - одни только частые релизы чего стоят, не говоря уже о завязке на одного человека и его вкусы. Система "что хочу, то и ворочу" для Тейлора Отвела выливается во множество часов пустой работы для других людей, умноженных на количество проектов со старыми версиями. С symfony дела в этом плане обстоят чуть лучше, за спиной разработчиков фреймворка есть компания и особых перегибов не допускают. Но разработка на Sf, мягко сказать, не самое приятное занятие. Гигантские конфиги, оверинжиниринг практически повсеместный, аннотации, доктрина и много других минусов + очень маленький срок поддержки версий для энтерпрайзных фреймворков. Нередко можно услышать "Sf это фреймворк для крупных проектов", но это слабо согласуется хотя бы с периодом поддержки в 4 года. Хоть опыт работы с Sf есть еще у двоих разрабов помимо меня, подходы к разработке этого фреймворка дико смущают. На практике мантры адептов Symfony наподобие "solid/grasp/dry/ddd и будет всем счастье" приводит к таким же плачевным результатам, как и "землю крестьянам, а заводы рабочим". Поэтому на Symfony писать не очень хочется.
2. На чем писать средние проекты?
Со средними проектами немного проще. Все текущие проекты спокойно доживают на Yii2. Подозреваю так поступают и в большинстве других веб-студий. С новыми пока вопрос. С коллегами тимлидами/техлидами из разных фирм иногда болтаем об этом. Одни будут пилить "средние" проекты на Yii2 вплоть до конца его поддержки, другие собираются постепенно мигрировать на Laravel/Other... если Yii3 не будет выдавать тот же высокий КПД/удобство как Yii2. Я отношусь ко вторым. Пока Yii3 мы не опробовали на реальных проектах и выводы делать рано, все выглядит сыро. На сайте YiiPowered тоже примеров не много, доступен только один сайт на данный момент.
У огромного количества разработчиков есть внушительный кредит к команде Yii. Отсутствие серьезной ломки API фреймворка + длительные периоды поддержки делают своё дело. Поэтому думаю для многих веб-студий и команд разработки очень интересен вопрос использования Yii3.
Пока Yii2 поддерживается вопрос перехода не стоит остро. Но уже пора задумываться над перестройкой "производственной линии" на другой фреймворк, опять же, если Yii3 будет не так хорош как Yii2 и Yii1 до него. На переход понадобится время, нужно опробовать новый инструмент, выработать "лучшие практики", определиться со стандартами и обучить команду.
Кто-нибудь уже пробовал внедрять Yii3 у себя?
Есть команды мигрировавшие с Yii2 на Laravel/CodeIgniter или на что-то подобное? На много ли повысился/упал КПД в сравнении с Yii2?
По поводу КПД, мы как и многие используем трекеры. Статистика примерно такая.
Yii2 позволяет примерно раза в два быстрее создавать/поддерживать сайты на основе Bootstrap3/4 + jQuery чем Laravel, а о Sf и говорить нечего. В случае с клиентской частью на JS-Vue/Reack/Angular все примерно также как на Laravel 5/6 и Sf4.
Для крупных проектов разница интереснее. При схожих по сложности/объему задачах соотношение Yii2 к Sf3.4 идет 1 к 3, т.е. на доработку Yii2 требуется 1 час, Symfony3.4 3 часа. Крупных проектов на Laravel'е нет, статистики соответственно тоже.
Господа тимлиды и техлиды, у кого схожие вопросы появляются? Кто что думает?
Собственно, сами темы/вопросы.
1. На чем писать крупные/энтерпрайзные проекты?
Свои соображения по крупным проектам, вкратце, такие. CMS'ки отваливаются сразу. Самописы тоже, так как за >15 лет коммерческой практики не встретил ни одного нормального, хотя повидал много. Все сборные/супергибкие солянки библиотек похожи на ад и требуют намного больше человеко-часов чем Yii/Symfony/Laravel. Поэтому фреймворки их и выдавили с рынка.
3-и из 4-х наших действующих энтерпрайзов написаны на Yii2, 4-й на Sf3.4. Yii2 будет поддерживаться разработчиками фреймворка до 2026 года, там все хорошо. С Sf3.4 проблемы, в этом году поддержка иссякает и нужно что-то с этим делать.
Кто как поступает с заброшенными версиями Symfony/Zend ? Мы пока думаем.
В ближайшем будущем нужно будет начать пятый большой проект, ТЗ уже оговорено и это точно долгострой. Отсюда возник вопрос на чем его писать.
Yii2 больше не будет развиваться. Yii3 еще толком не готов. Zend отжил своё и отправился к праотцам. Laravel рассматривать на подобного вида проекты тоже очень сомнительно - одни только частые релизы чего стоят, не говоря уже о завязке на одного человека и его вкусы. Система "что хочу, то и ворочу" для Тейлора Отвела выливается во множество часов пустой работы для других людей, умноженных на количество проектов со старыми версиями. С symfony дела в этом плане обстоят чуть лучше, за спиной разработчиков фреймворка есть компания и особых перегибов не допускают. Но разработка на Sf, мягко сказать, не самое приятное занятие. Гигантские конфиги, оверинжиниринг практически повсеместный, аннотации, доктрина и много других минусов + очень маленький срок поддержки версий для энтерпрайзных фреймворков. Нередко можно услышать "Sf это фреймворк для крупных проектов", но это слабо согласуется хотя бы с периодом поддержки в 4 года. Хоть опыт работы с Sf есть еще у двоих разрабов помимо меня, подходы к разработке этого фреймворка дико смущают. На практике мантры адептов Symfony наподобие "solid/grasp/dry/ddd и будет всем счастье" приводит к таким же плачевным результатам, как и "землю крестьянам, а заводы рабочим". Поэтому на Symfony писать не очень хочется.
2. На чем писать средние проекты?
Со средними проектами немного проще. Все текущие проекты спокойно доживают на Yii2. Подозреваю так поступают и в большинстве других веб-студий. С новыми пока вопрос. С коллегами тимлидами/техлидами из разных фирм иногда болтаем об этом. Одни будут пилить "средние" проекты на Yii2 вплоть до конца его поддержки, другие собираются постепенно мигрировать на Laravel/Other... если Yii3 не будет выдавать тот же высокий КПД/удобство как Yii2. Я отношусь ко вторым. Пока Yii3 мы не опробовали на реальных проектах и выводы делать рано, все выглядит сыро. На сайте YiiPowered тоже примеров не много, доступен только один сайт на данный момент.
У огромного количества разработчиков есть внушительный кредит к команде Yii. Отсутствие серьезной ломки API фреймворка + длительные периоды поддержки делают своё дело. Поэтому думаю для многих веб-студий и команд разработки очень интересен вопрос использования Yii3.
Пока Yii2 поддерживается вопрос перехода не стоит остро. Но уже пора задумываться над перестройкой "производственной линии" на другой фреймворк, опять же, если Yii3 будет не так хорош как Yii2 и Yii1 до него. На переход понадобится время, нужно опробовать новый инструмент, выработать "лучшие практики", определиться со стандартами и обучить команду.
Кто-нибудь уже пробовал внедрять Yii3 у себя?
Есть команды мигрировавшие с Yii2 на Laravel/CodeIgniter или на что-то подобное? На много ли повысился/упал КПД в сравнении с Yii2?
По поводу КПД, мы как и многие используем трекеры. Статистика примерно такая.
Yii2 позволяет примерно раза в два быстрее создавать/поддерживать сайты на основе Bootstrap3/4 + jQuery чем Laravel, а о Sf и говорить нечего. В случае с клиентской частью на JS-Vue/Reack/Angular все примерно также как на Laravel 5/6 и Sf4.
Для крупных проектов разница интереснее. При схожих по сложности/объему задачах соотношение Yii2 к Sf3.4 идет 1 к 3, т.е. на доработку Yii2 требуется 1 час, Symfony3.4 3 часа. Крупных проектов на Laravel'е нет, статистики соответственно тоже.
Господа тимлиды и техлиды, у кого схожие вопросы появляются? Кто что думает?