Какой фреймворк выбрать?

Не относящиеся к фреймворку и программированию вопросы
Ответить
vladimir.sazonov1981
Сообщения: 5
Зарегистрирован: 2021.01.10, 07:04

Какой фреймворк выбрать?

Сообщение vladimir.sazonov1981 »

Привет 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'е нет, статистики соответственно тоже.

Господа тимлиды и техлиды, у кого схожие вопросы появляются? Кто что думает?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Какой фреймворк выбрать?

Сообщение samdark »

КПД сильно зависит от того, что вы делаете. На Yii 3 мы попиливаем свои проекты и постоянно что-то недостаточно устраивает, поэтому доделываем по части юзабилити: ошибки подробнее, дефолтное поведение предсказуемей и вот это всё. Что в итоге получится по КПД пока не ясно. Ясно только то, что прям сложные проекты где архитектуру надо строить самому, приятней делать на Yii 3.
Аватара пользователя
ElisDN
Сообщения: 5841
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Какой фреймворк выбрать?

Сообщение ElisDN »

vladimir.sazonov1981 писал(а): 2021.01.10, 20:02 Кто как поступает с заброшенными версиями Symfony/Zend ?
Symfony постепенно обновляем. Наличие четырёх промежуточных версий позволяет это сделать постепенно в отличие от Yii, где фреймворк переписывается целиком каждые 4-6 лет без промежуточных версий.

Чтобы в долгосроке не было проблем со слезанием с умершего Zend/Kohana как раз от фреймворкозависимого кода уходим на PSR-микрофреймворки и зависимость непосредственно от библиотек. Чтобы при необходимости или желании более просто сменить компонент.
vladimir.sazonov1981 писал(а): 2021.01.10, 20:02 На чем писать крупные/энтерпрайзные проекты?
Здесь разница в подходе и результате:
  • В активных инструментах с коротким циклом код всегда свежий и актуальный, но приходится часто обновляться.
  • В инструментах с длинным можно не обновляться, но код устаревший и с грузом поддержки старых технологий.
Поэтому выбор зависит от приоритетов:

Для студии, которая делает заказчикам 80 проектов, удобнее брать долгоподдерживаемые стабильные CMS и фреймворки на типовых Bootstrap + jQuery. Студии слишком сложно каждые полгода все 80 проектов обновлять, так как на любое обновление по проекту в день уйдёт четыре месяца.

А для продуктовой компании, которая делает себе всего 1 проект, уже удобнее брать современные развивающиеся инструменты и подходы с теми же SOLID/GRASP/DRY/DDD с React/Angular и микрофреймворками. Ей нетрудно обновлять свой 1 проект практически в реальном времени хоть каждый месяц.
vladimir.sazonov1981 писал(а): 2021.01.10, 20:02 В ближайшем будущем нужно будет начать пятый большой проект...
Как перечислили выше, если делаете его как студия и не собираетесь для этого проекта выделять отдельную команду, то вам будет опять проще взять что-то более привычное и удобное для вас.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Какой фреймворк выбрать?

Сообщение maleks »

vladimir.sazonov1981 писал(а): 2021.01.10, 20:02 Yii2 позволяет примерно раза в два быстрее создавать/поддерживать сайты на основе Bootstrap3/4 + jQuery чем Laravel
А за счет чего, вы считаете, Yii2 для обычных MPA приложений настолько эффективнее laravel?
Начал смотреть последний, как по мне, те же вещи как в Yii2, только в профиль.
Каких инструментов не удалось подобрать из лары и его расширений для быстрой разработки?
vladimir.sazonov1981 писал(а): 2021.01.10, 20:02 Laravel рассматривать на подобного вида проекты тоже очень сомнительно - одни только частые релизы чего стоят, не говоря уже о завязке на одного человека и его вкусы.
Если смотреть в их доках по обновлению с версии на версию, то там не так уж и много. Если этому можно верить конечно.
vladimir.sazonov1981 писал(а): 2021.01.10, 20:02 Остальные середнячки, в основном CRM'ки для внутреннего пользования фирм с торчащими API наружу для фронтенда и сторонних сервисов.
А на фронте SPA?
Вот как изучил vue , но на практике пока не понадобился, все гадаю, неужели в поддержке легок такой проект, где по сути отдельное приложение на фронте, отдельное на беке. И по каждому нужен разработчик, который разбирается в этой предметной области, ставить задачи, продумывать все, данные, ТЗ и т.д.
Yii2 universal module sceleton - for basic and advanced templates
vladimir.sazonov1981
Сообщения: 5
Зарегистрирован: 2021.01.10, 07:04

Re: Какой фреймворк выбрать?

Сообщение vladimir.sazonov1981 »

ElisDN писал(а): 2021.01.13, 13:20 Symfony постепенно обновляем.
Если начнем сейчас переписывать на Sf5, то как раз закончим к выходу Sf6 и заново по кругу ;) Возможно так и поступим, пока думаем, ищем альтернативу.
ElisDN писал(а): 2021.01.13, 13:20 Наличие четырёх промежуточных версий позволяет это сделать постепенно в отличие от Yii, где фреймворк переписывается целиком каждые 4-6 лет без промежуточных версий.
Yii1.1 вышел где-то в 2010 и будет поддерживаться до 2022, Yii2 вышел 2014 и будет поддерживаться до 2026. 12 лет это солидно, выходят обновления безопасности и совместимости с новыми версиями PHP. Ни Sf, ни Laravel не обладают такими свойствами, по этому показателю они уступают Yii1/2 в разы, это важный момент. Было бы хорошо если разработчики Sf хотя бы лет до 6 увеличили поддержку для LTS-версии. Для бизнеса, да и просто для удобства разработчиков желательно иметь меньше мажорных версий. Меньше мажорных версий = меньше трудозатрат = меньше рисков обновлений и, соответственно, больше выгоды разработчикам/заказчику.
ElisDN писал(а): 2021.01.13, 13:20 Чтобы в долгосроке не было проблем со слезанием с умершего Zend/Kohana как раз от фреймворкозависимого кода уходим на PSR-микрофреймворки и зависимость непосредственно от библиотек. Чтобы при необходимости или желании более просто сменить компонент.
"фреймворконезависимый код" звучит хорошо, как и любая другая "независимость". На деле это часто даёт больше проблем чем пользы. Фреймворки не просто так развились на разных платформах, в том числе и на PHP, они стандартизируют код. Плюс к этому, если мы используем фреймворк, то за основным костяком библиотек следит разработчик фреймворка, тем самым избавляя других от этого, да и возможность подключения/использования сторонних библиотек все равно остается, как и везде. Когда проект создается как "фреймворконезависимый", то со временем он начинает походить на свалку. Это из практики принятых на обслуживание, благо их совсем не много было в последнее время. От этого подхода многие массово мигрировали в середине 2000-х на фреймворки.

Отчего лучше зависеть, от набора отдельных библиотек или фреймворка, тоже вопрос. Фреймворк один, а отдельных библиотек десятки и у каждой свои разработчики/зависимости. Обычно мороки меньше с зависимостью от фреймворка, чем от толпы отдельных сторонних библиотек.
ElisDN писал(а): 2021.01.13, 13:20 Здесь разница в подходе и результате:
  • В активных инструментах с коротким циклом код всегда свежий и актуальный, но приходится часто обновляться.
  • В инструментах с длинным можно не обновляться, но код устаревший и с грузом поддержки старых технологий.
Примерно так и есть. Только код для крупных проектов, коммерческих, нужно обновлять всегда, это не должно зависеть от выбранного цикла выпуска обновлений фреймворка. Поддержка безопасности обязательна, совместимости с новыми версиями языка - желательна. Если разработчик фреймворка бросил какую-то ветку, как в примере с Sf3.4, то поддержка безопасности остается на студии и нужно что-то с этим делать. Мы же за поддержку деньги берем и отвечаем по договору.
ElisDN писал(а): 2021.01.13, 13:20 Для студии, которая делает заказчикам 80 проектов, удобнее брать долгоподдерживаемые стабильные CMS и фреймворки на типовых Bootstrap + jQuery. Студии слишком сложно каждые полгода все 80 проектов обновлять, так как на любое обновление по проекту в день уйдёт четыре месяца.
В общем да, от специализации студии многое зависит. В нашем случае это Yii2, т.к. в основном CRM'ки пишем/поддерживаем, а CMS'ки для этого хуже подходят.
ElisDN писал(а): 2021.01.13, 13:20 А для продуктовой компании, которая делает себе всего 1 проект, уже удобнее брать современные развивающиеся инструменты и подходы с теми же SOLID/GRASP/DRY/DDD с React/Angular и микрофреймворками. Ей нетрудно обновлять свой 1 проект практически в реальном времени хоть каждый месяц.
Это спорное утверждение. Если проект нужен всего один, то часто обращаются за разработкой и дальнейшей поддержкой к веб-студии. Это попросту дешевле, чем заниматься этим самим. Использование "SOLID/GRASP/DRY/DDD" не связано с количеством разрабатываемых и поддерживаемых проектов. Это вещи технические, если они действительно уместны, то используются, а нет - так нет. Повторюсь, сейчас "SOLID/GRASP/DRY/DDD" часто используется не как инструменты, а как лозунг ведущий к "светлому будущему", который на деле приводит к захламлению проекта.
ElisDN писал(а): 2021.01.13, 13:20 Как перечислили выше, если делаете его как студия и не собираетесь для этого проекта выделять отдельную команду, то вам будет опять проще взять что-то более привычное и удобное для вас.
Команду разработки выделим. После готовности на поддержку у нас останется. На чем писать пока не знаю, честно говоря, я в замешательстве. Если к концу месяца ничего не придумаем, то скорее всего возьмем Sf4.4 с последующим прыжком до Sf5.4. Склоняемся к такому варианту.
Аватара пользователя
ElisDN
Сообщения: 5841
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Какой фреймворк выбрать?

Сообщение ElisDN »

vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Если начнем сейчас переписывать на Sf5, то как раз закончим к выходу Sf6 и заново по кругу ;)
Это и есть разновидность технического долга. Обновлять зависимости и рефакторить проект надо постепенно по чуть-чуть. Тогда страха обновления не будет. Если пишете тесты, конечно же. Если не пишете то да, будет всегда страшно.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Yii1.1 вышел где-то в 2010 и будет поддерживаться до 2022, Yii2 вышел 2014 и будет поддерживаться до 2026. 12 лет это солидно, выходят обновления безопасности и совместимости с новыми версиями PHP. Ни Sf, ни Laravel не обладают такими свойствами, по этому показателю они уступают Yii1/2 в разы, это важный момент.
Про это и говорю. Есть фреймворки быстрого развития (Laravel), есть золотая середина (Symfony) и есть неподвижные (Yii).

Вы фреймворки сравниваете только по сроку поддержки. Я же сравниваю их по другим критериям. Если Yii2 вышел 2014 для PHP 5.4 и за это время ничего не поменял, то для вас это "стабильный поддерживаемый 6 лет фреймворк", а для меня это "устаревший фремфворк из 2014-го на PHP 5.4".
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Для бизнеса, да и просто для удобства разработчиков желательно иметь меньше мажорных версий. Меньше мажорных версий = меньше трудозатрат = меньше рисков обновлений и, соответственно, больше выгоды разработчикам/заказчику.
А потом заказчик внезапно обнаруживает, что на вакансии с Yii1 и Sf2 программисты почему-то не идут. Застой удобен только для ленивого бизнеса, кое-как ведущео поддержку. Если же бизнес развивается, то помимо сроков поддержки появляюются и другие желания.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 "фреймворконезависимый код" звучит хорошо, как и любая другая "независимость". На деле это часто даёт больше проблем чем пользы. Фреймворки не просто так развились на разных платформах, в том числе и на PHP, они стандартизируют код. Плюс к этому, если мы используем фреймворк, то за основным костяком библиотек следит разработчик фреймворка, тем самым избавляя других от этого, да и возможность подключения/использования сторонних библиотек все равно остается, как и везде. Когда проект создается как "фреймворконезависимый", то со временем он начинает походить на свалку. Это из практики принятых на обслуживание, благо их совсем не много было в последнее время.
Это зависит от разработчиков. Если они эникейщики, то лучше взять фреймворк. Если же профи и знают что делают, то лучше кастом.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 От этого подхода многие массово мигрировали в середине 2000-х на фреймворки.
Мигрирровали, мигрировали на так перемигрировали, что потом лили горькие слёзы, как им теперь переписать их громадный проект с Kohana, который целиком умер.

А так в те годы Composer-а и PSR-ов ещё не было.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Отчего лучше зависеть, от набора отдельных библиотек или фреймворка, тоже вопрос. Фреймворк один, а отдельных библиотек десятки и у каждой свои разработчики/зависимости. Обычно мороки меньше с зависимостью от фреймворка, чем от толпы отдельных сторонних библиотек.
Недавно переписывал свой старый проект с Yii1 на Yii2. Пришлось переписывать абсолютно всё, включая шаблоны и контроллеры. Это заняло три месяца. Почему? Потому что весь код зависел от Yii1 и был записан по его моде из 2011-го.

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

Поэтому чтобы не прыгать с одной моды на другую вычистил из проекта сервис-локатор, перейдя на DI-контенер. Перешёл на Composer-овский автолоадер. Переписал код на реальный PHP 7.4 с типизацией. Внедрил некоторые PSR-ы. Перешёл почти на чистый PHP.

Если я сейчас постепенно шаблонизацию заменю на библиотеку Twig, для БД перейду на Doctrine или CycleORM, почту переведу на SwiftMailer и контроллеры перепишу на PSR-7 или PSR-15, то получу код, способный работать под любым PSR-фреймворком.

А второй проект изначально делаю фреймворконезависимым на PSR-микрофреймворке c Doctrine и Twig и спокойно обновляю каждое утро. Все @deprecated и несовместимости в библиотеках и версиях PHP мгновенно отлавливаются статанализаторами и тестами.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Если разработчик фреймворка бросил какую-то ветку, как в примере с Sf3.4, то поддержка безопасности остается на студии и нужно что-то с этим делать. Мы же за поддержку деньги берем и отвечаем по договору.
Да, именно, что надо делать. Обновлять код и зависимсти. А вы, видимо, хотите за поддержку деньги брать, но ничего не даелать.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Это спорное утверждение. Если проект нужен всего один, то часто обращаются за разработкой и дальнейшей поддержкой к веб-студии. Это попросту дешевле, чем заниматься этим самим.
Пардон, но я ни разу не видел, чтобы Uber/ДодоПицца/Тинькофф/AmoCRM/SkyEng разработку своего проекта в веб-студии заказывали. Почему-то все делают их сами, набирая крутую команду, внедряя разные подходы и переводя на микросервисы.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Повторюсь, сейчас "SOLID/GRASP/DRY/DDD" часто используется не как инструменты, а как лозунг ведущий к "светлому будущему", который на деле приводит к захламлению проекта.
Если человек разбирается, что такое SOLID, GRASP и DDD, то использует это по назначению и кайфует. Если же не разбирается, то имитирует деятельность и приводит к захламлению.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Если к концу месяца ничего не придумаем, то скорее всего возьмем Sf4.4 с последующим прыжком до Sf5.4. Склоняемся к такому варианту.
А какой смысл брать 4.4 и прыгать на 5.4, если можно начать с 5.2 и потом спокойно через 5.3 перейти на 5.4?
vladimir.sazonov1981
Сообщения: 5
Зарегистрирован: 2021.01.10, 07:04

Re: Какой фреймворк выбрать?

Сообщение vladimir.sazonov1981 »

Дмитрий, похоже у вас, как говорится, "бомбануло" )
ElisDN писал(а): 2021.01.13, 20:40 Это и есть разновидность технического долга. Обновлять зависимости и рефакторить проект надо постепенно по чуть-чуть. Тогда страха обновления не будет. Если пишете тесты, конечно же. Если не пишете то да, будет всегда страшно.
Страхов обновления нет, о чем вы? Что касается тестов, пишем там, где это нужно, где не нужно не пишем)

vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Про это и говорю. Есть фреймворки быстрого развития (Laravel), есть золотая середина (Symfony) и есть неподвижные (Yii).
Ситуация немного прояснилась. "Золотая середина" - Sf. Предполагаю Sf это любимый фреймворк и кто его посмеет критиковать враг)
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Вы фреймворки сравниваете только по сроку поддержки. Я же сравниваю их по другим критериям.
Дмитрий, не нужно выдумывать за других аргументы и потом с ними бороться, ок?
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 А потом заказчик внезапно обнаруживает, что на вакансии с Yii1 и Sf2 программисты почему-то не идут. Застой удобен только для ленивого бизнеса, кое-как ведущео поддержку. Если же бизнес развивается, то помимо сроков поддержки появляюются и другие желания.
"застой", "ленивый бизнес", "кое как". Откуда такое? Бизнес не ленится, поддержка идет далеко не "кое-как", да и развитие есть)
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Это зависит от разработчиков. Если они эникейщики, то лучше взять фреймворк. Если же профи и знают что делают, то лучше кастом.
Дмитрий, вы путаете понятие "чудика" и профессионала. "Чудик" выберет самый сложный путь какой только знает, чтобы продемонстрировать что он хоть что-то знает, а профессионал выберет подходящее решение к задаче. Разобрались?) Если кто-то выбирает практичность, то он не "эникейщик", он практичный.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Мигрирровали, мигрировали на так перемигрировали, что потом лили горькие слёзы, как им теперь переписать их громадный проект с Kohana, который целиком умер.
О чем вы?
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 А так в те годы Composer-а и PSR-ов ещё не было.
Да, было такое.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Недавно переписывал свой старый проект с Yii1 на Yii2. Пришлось переписывать абсолютно всё, включая шаблоны и контроллеры. Это заняло три месяца. Почему? Потому что весь код зависел от Yii1 и был записан по его моде из 2011-го.

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

Поэтому чтобы не прыгать с одной моды на другую вычистил из проекта сервис-локатор, перейдя на DI-контенер. Перешёл на Composer-овский автолоадер. Переписал код на реальный PHP 7.4 с типизацией. Внедрил некоторые PSR-ы. Перешёл почти на чистый PHP.

Если я сейчас постепенно шаблонизацию заменю на библиотеку Twig, для БД перейду на Doctrine или CycleORM, почту переведу на SwiftMailer и контроллеры перепишу на PSR-7 или PSR-15, то получу код, способный работать под любым PSR-фреймворком.

А второй проект изначально делаю фреймворконезависимым на PSR-микрофреймворке c Doctrine и Twig и спокойно обновляю каждое утро. Все @deprecated и несовместимости в библиотеках и версиях PHP мгновенно отлавливаются статанализаторами и тестами.
Каждый сходит с ума по-своему, не переживайте.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Да, именно, что надо делать. Обновлять код и зависимсти. А вы, видимо, хотите за поддержку деньги брать, но ничего не даелать.
Опять же, вы видимо не понимаете как работает поддержка сайтов. Клиент выставляет задачу, мы обговариваем примерное количество часов. Решили задачу, клиент видит по трекеру все это и платит по нему же. Если задач не было, то мы и ничего не получаем. Разобрались?)
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Пардон, но я ни разу не видел, чтобы Uber/ДодоПицца/Тинькофф/AmoCRM/SkyEng разработку своего проекта в веб-студии заказывали. Почему-то все делают их сами, набирая крутую команду, внедряя разные подходы и переводя на микросервисы.
Когда откроете свою веб-студию, вам откроется новый взгляд на рынок разработки. Окажется, что это рынок не состоит только из "выстреливших" стартапов, но и из обычных фирм, которых к тому же намного больше.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Если человек разбирается, что такое SOLID, GRASP и DDD, то использует это по назначению и кайфует. Если же не разбирается, то имитирует деятельность и приводит к захламлению.
Наверно вас разозлит эта фраза еще сильнее, но все-таки. "SOLID, GRASP и DDD" - это не какие-то священные понятия, а вполне себе приземленные и довольно простые вещи. Обычно после нескольких лет практики, так было в моем случае, они становятся обыденностью. Предполагаю по написанному выше, что для вас они много значат и сомнение в этих "великих истинах" злит. Для меня это только инструмент, как клавиатура или мышь. Если ТЗ проще реализовать с DDD, например, то использую его, если нет, то без проблем откидываю.

К нам иногда на поддержку попадают проекты от разработчиков которым запудрили мозги этими фразами "SOLID, GRASP и DDD". Это довольно проблемные проекты.
vladimir.sazonov1981
Сообщения: 5
Зарегистрирован: 2021.01.10, 07:04

Re: Какой фреймворк выбрать?

Сообщение vladimir.sazonov1981 »

maleks писал(а): 2021.01.13, 16:22 А за счет чего, вы считаете, Yii2 для обычных MPA приложений настолько эффективнее laravel?
Это выдержка из Tmetric-статистики. В нашем случае причин несколько и не все они "справедливы" по отношению к Laravel. Из коробки Yii2 мы получаем почти все что нужно для типового проекта, а для Laravel приходится добирать нужное. Gii хорошо делает своё дело, мы его слегка допилили и стало еще лучше, это очень сильно экономит время. Также ActiveForm сильно ускоряет работу. Даже если верстка "замороченная", то верстальщики/фронтэндеры подгоняют её под виджеты Yii2 и работа идет как по маслу. Да и наши Yii-разработчики имеют больше опыта и заготовок, чем наши же Laravel-разработчики, это тоже сказывается.
maleks писал(а): 2021.01.13, 16:22 Начал смотреть последний, как по мне, те же вещи как в Yii2, только в профиль.
Да, так и есть во многих вещах.
maleks писал(а): 2021.01.13, 16:22 Каких инструментов не удалось подобрать из лары и его расширений для быстрой разработки?
В том или ином виде нашлось все. С поиском аналогов у Laravel проблем нет. В виде расширения можно найти любой компонент-аналог от Yii. Разница будет только в степени интеграции этих компонентов в фреймворк и, соответственно, удобством и скоростью разработки.
maleks писал(а): 2021.01.13, 16:22 Если смотреть в их доках по обновлению с версии на версию, то там не так уж и много. Если этому можно верить конечно.
Не могу сказать есть ли неточности в Laravel-апдейтах из документации, нужно смотреть. Обычно изменений не много, но то там метод переименуют, то класс удалят и так набегает. В общем сейчас уже почти ночь и трудно припомнить)
maleks писал(а): 2021.01.13, 16:22 А на фронте SPA?
Не всегда, но есть и SPA.
maleks писал(а): 2021.01.13, 16:22 Вот как изучил vue , но на практике пока не понадобился, все гадаю, неужели в поддержке легок такой проект, где по сути отдельное приложение на фронте, отдельное на беке. И по каждому нужен разработчик, который разбирается в этой предметной области, ставить задачи, продумывать все, данные, ТЗ и т.д.
Vue хорошая вещь, в любом случае не зря учили. Легкость/сложность зависит от опыта разработчиков и слаженности команды. Если есть взаимопонимание между фронтэндером и бэкендером, то дело идет быстро. Обычно все задачи решаются конференциями, так "сверяются часы" и быстрее находятся решения.
Аватара пользователя
ElisDN
Сообщения: 5841
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Какой фреймворк выбрать?

Сообщение ElisDN »

vladimir.sazonov1981 писал(а): 2021.01.13, 21:39 Ситуация немного прояснилась. "Золотая середина" - Sf. Предполагаю Sf это любимый фреймворк и кто его посмеет критиковать враг)
А причём здесь любимый или нелюбимый? Это сравнение по интенсивности изменений, о которой вы сами сказали словами, что в Laravel "одни только частые релизы чего стоят". Вот и говорю, что Laravel обновляется каждый месяц, Yii раз в пять лет. А Symfony по частоте релизов золотая середина между слишком частым Laravel и слишком редким Yii.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Дмитрий, не нужно выдумывать за других аргументы и потом с ними бороться, ок?
Я не придумываю. Во всех ваших сообщениях сравнение только по частоте релизов, срокам официальной поддержки и о скорости написания кода. Ни о чём другом что вам важно вы нам нигде не сказали.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 "застой", "ленивый бизнес", "кое как". Откуда такое? Бизнес не ленится, поддержка идет далеко не "кое-как", да и развитие есть)
Такой "неленивый активный" бизнес, который до сих пор сидит на Sf3 с jQuery.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 А профессионал выберет подходящее решение к задаче. Разобрались?) Если кто-то выбирает практичность, то он не "эникейщик", он практичный.
Про это и пишу, что профи выберет подходящее решение к задаче, а не то, которое ему даёт готовый фреймворк.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 О чем вы?
О том, что все в 2000-ых, как вы говорите, переползли на фреймворки. А сейчас эти старые фреймворки умерли и те программисты не знают, что теперь с делать с их проектами с кучей кода, завязанного на тех фреймворках.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Клиент выставляет задачу, мы обговариваем примерное количество часов. Решили задачу, клиент видит по трекеру все это и платит по нему же. Если задач не было, то мы и ничего не получаем. Разобрались?)
Тогда какие у вас проблемы согласовать с заказчикам и выделить часы для обновления фреймворка примерно раз в полгода?
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Опять же, вы видимо не понимаете как работает поддержка сайтов.
Теперь понял, как поддержка работает. Если клиент задачу не ставит, то самостоятельно руки ни у кого не доходят. Вы и код не рефакторите и с Sf3 до Sf5 не обновляете.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Когда откроете свою веб-студию, вам откроется новый взгляд на рынок разработки. Окажется, что это рынок не состоит только из "выстреливших" стартапов, но и из обычных фирм, которых к тому же намного больше.
Видимо обычные фирмы, про которые вы пишете, не являются продуктовыми компаниями.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Наверно вас разозлит эта фраза еще сильнее, но все-таки. "SOLID, GRASP и DDD" - это не какие-то священные понятия, а вполне себе приземленные и довольно простые вещи. Обычно после нескольких лет практики, так было в моем случае, они становятся обыденностью. Предполагаю по написанному выше, что для вас они много значат и сомнение в этих "великих истинах" злит. Для меня это только инструмент, как клавиатура или мышь. Если ТЗ проще реализовать с DDD, например, то использую его, если нет, то без проблем откидываю.
Дураку понятно, что AxB = BxA. А умный знает, что это лишь частный случай для действительных чисел. Действительно понимающий эти аббревиатуры человек фразу "довольно простые вещи" никогда не скпжет.
vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 К нам иногда на поддержку попадают проекты от разработчиков которым запудрили мозги этими фразами "SOLID, GRASP и DDD". Это довольно проблемные проекты.
Вот именно. Вам попадаются только те, кому мозги запудрили. А проектов, где не запудрили
Последний раз редактировалось ElisDN 2021.01.14, 00:18, всего редактировалось 1 раз.
Аватара пользователя
ElisDN
Сообщения: 5841
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Какой фреймворк выбрать?

Сообщение ElisDN »

vladimir.sazonov1981 писал(а): 2021.01.13, 18:24 Каждый сходит с ума по-своему, не переживайте.
Интересная беседа. Спросили, какой фреймворк выбрать. Вам ответили, что Yii устарел, Symfony более удобный по релизам. Что если нужен больший контроль, то удобнее микрофреймворк. Что желательно делать менее зависимый от фреймворка код, чтобы не страдать потом при обновлениях.

А вы всех чокнутыми и сумасшедшими считаете, которые обижают ваш любимый Yii.

Ну раз не хотите наши ответы слушать, то с какой целью тему с вопросом создавали?
vladimir.sazonov1981
Сообщения: 5
Зарегистрирован: 2021.01.10, 07:04

Re: Какой фреймворк выбрать?

Сообщение vladimir.sazonov1981 »

ElisDN писал(а): 2021.01.13, 23:49 А причём здесь любимый или нелюбимый?
Видно что это больная тема для вас, как я написал по поводу Sf "что-то не то", вас понесло.
ElisDN писал(а): 2021.01.13, 23:49 Я не придумываю.
Несколько раз ткнул носом выше в придумки, что еще тут написать.
ElisDN писал(а): 2021.01.13, 23:49 Такой "неленивый активный" бизнес, который до сих пор сидит на Sf3 с jQuery.
jQuery это один из инструментов которым мы пользуемся и он хорош. Проект с Sf3 начинали не мы, его первые разработчики были любителями SOLID'a и пихали все что знали в него, чем значительно затруднили дальнейшую работу. Думаю вы догадываетесь что случилось дальше, они ретировались и оставили заказчика с CRM один на один.
ElisDN писал(а): 2021.01.13, 23:49 Теперь понял, как поддержка работает. Если клиент задачу не ставит, то самостоятельно руки ни у кого не доходят. Вы и код не рефакторите и с Sf3 до Sf5 не обновляете.
Поддержка состоит из 2-х основных компонентов, первый - доработка нового функционала и правки багов, второй - сервисных работ, т.е. обновлений фреймворка, библиотек и т.д. Об этом сообщается клиенту и с ним все согласуется. Такие вещи нужно бы знать. Вы точно практикуете?
ElisDN писал(а): 2021.01.13, 23:49 Видимо обычные фирмы, про которые вы пишете, не являются продуктовыми компаниями.
Похоже у вас отсутствует серьезный опыт в этой сфере. Когда он у вас появится, обсудим, а так дело пустое.
ElisDN писал(а): 2021.01.13, 23:49 Дураку понятно, что AxB = BxA. А умный знает, что это лишь частный случай для действительных чисел. Действительно понимающий эти аббревиатуры человек фразу "довольно простые вещи" никогда не скпжет.
"Действительно понимающий" будет на них молиться что ли. В них нет ничего сверхсложного.
ElisDN писал(а): 2021.01.13, 23:49 Вот именно. Вам попадаются только те, кому мозги запудрили. А проектов, где не запудрили
?
ElisDN писал(а): 2021.01.13, 23:49 Интересная беседа. Спросили, какой фреймворк выбрать. Вам ответили, что Yii устарел, Symfony более удобный по релизам. Что если нужен больший контроль, то удобнее микрофреймворк. Что желательно делать менее зависимый от фреймворка код, чтобы не страдать потом при обновлениях.
Перечитайте спокойно написанное мной.
ElisDN писал(а): 2021.01.13, 23:49 А вы всех чокнутыми и сумасшедшими считаете, которые обижают ваш любимый Yii.
Опять передергиваете, что за манера такая. Во-первых про "чокнутых" вы сами написали, "чудик" - это человек с какой-нибудь зацикленностью. "Все" здесь не при чем. Мне в жизни разные люди встречались "и чудиков" единицы, но они крикливы. Пример подобных людей - фанатики Линукса. Тот же Линукс сам по себе хорошая вещь для своих задач, но если вы попытаетесь указать на её минусы, то такой человек начинает "чудить". Я об этом писал. Во-вторых, откуда информация про "любимый Yii". Это просто один из инструментов, со своими минусами и плюсами. И у меня нет любимого фреймворка, есть пулл которым пользуюсь и все)
ElisDN писал(а): 2021.01.13, 23:49 Ну раз не хотите наши ответы слушать, то с какой целью тему с вопросом создавали?
Если бы не хотел слушать, то тему бы явно не создавал и не писал бы развернутые ответы. "не хотите наши ответы слушать" - не нужно обобщать и выставлять свои ответы за "все". Я ответил на ваше сообщение и указал на те моменты с которыми не согласен.
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Re: Какой фреймворк выбрать?

Сообщение kwasti »

Мой основной язык разработки это C++,C#.
На PHP перешел не так давно, хотя в программировании более 30лет
Для любой компании, занимающейся разработкой, не важно для себя или для продажи, одним из важных и критичных критериев является быстрая и легкая заменимость разработчика. Не важно какой длительности поддержка фреймворка, его возможности и т.д. если новому сотруднику придется разбираться в коде месяцами с проектом. Ни одного заказчика не будут волновать ваши проблемы, что ваш тимлид покинул проект, а остальные не в состоянии его заменить.
Отсюда и стоит начинать плясать. Конкретно Yii2 мне и понравился из-за этого: простая и понятная структура, следование паттерну MVC, отсутствие строгих рамок при разработке и т.д. На него я переходил не умея программировать на php.
Что греха таить, я и сейчас с нуля не смогу написать полноценный сайт на php.
Рассматривал laravel, symfony, но по разным причинам они показались не слишком дружественными для новичка в PHP. Но я немного отвлекся.

У вас я думаю опыта с разными фреймворками больше и выбирать вам будет проще если задать правильные вопросы.
Поэтому я на вашем месте составил список критериев влияющих в первую очередь на бизнес, назначил бы вес влияния на бизнес, а дальше провел бы сравнение.

Прочитал про некоторую полемику про обновления, и хочу не согласиться ни с одним из авторов.
1. Частые обновления для проектов является злом. Любой проект имеет собственный код и затраты времени на исправления кода после обновления - это огромная проблема (спросите любого 1С-ника, мне их всегда жалко)
2. Отсутствие обновлений - это тоже зло, в этой ситуации проект морально устаревает в течении нескольких лет. (тут согласен с Дмитрием)
3. В некоторых ситуациях обновления вообще не желательны, т.к. их применение может привести к полному краху проекта(фактически переписывать с нуля). В этом отношении Yii проигрывает сильно (правда не щупал Yii3 есть ли хоть какая то совместимость).
И я вас понимаю, имея 80 проектов, искать тот продукт, который можно было бы поддерживать десятилетиями.

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

Я сам сейчас думаю какой фреймворк в компании выбрать в качестве основного для фронтенда, хорошо пока хватает jquery, но требования и хотелки растут и его становится мало.
Ответить