rtutin
@rtutin
Быдлокодер, анархист, аутист

Нужно ли абстрагироваться от фреймворка?

В данный момент испытываю некоторою боль, в связи с тем, что больно уж устарел yii, пора перекатываться на yii2, но для этого придется перекопать все приложение. Ожидаю в скором ту же самую проблему по отношению к Ангуляру, т.к. второй вот-вот станет станет stable.

А если вдруг ваш фреймворк вообще умер, мир идет своим ходом, везде новые фичи, а чтобы их заюзать, нужно как-то встать раком, чтоб все норм стало.

Нормальная ли практика, абстрагироваться от фреймворка? Изолировать все обращения к нему в одном месте и в случае чего, изменить только данное место. По-моему это единственный верный путь, но пока не видел такого нигде и никогда.
  • Вопрос задан
  • 459 просмотров
Пригласить эксперта
Ответы на вопрос 3
@springimport
Коротко: не советую.

Проблема в том что такая абстракция превратится в новый фреймворк, который будет явно лишним. Потом попробуйте его адаптировать к чему-то другому - утилизируете миллион часов. Если еще есть возможность переписать и необходимость, то лучше это делать прямо сейчас.
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
С точки зрения теории - это имеет смысл и некоторые шаблоны проектирования решают именно эту задачу.
Но на практике эти затраты, скорее всего, не отобьются: дешевле переписать всё заново раз в три года (там и инсайты какие-то появятся и технический долг можно будет уменьшить), чем огораживаться от фреймворка таким образом.
Ответ написан
TrogWarZ
@TrogWarZ
web developer
Не вижу смысла настолько абстрагироваться ибо вся бизнес-логика хранится в доменных моделях и использует репозиторий для персистентности. Как следствие, при переезде на новый фреймворк доменные модели можно прямо копипастить (иногда даже вместе с юнит-тестами впридачу) – а именно тут и закопана как раз основная работа приложения.
Конечно, придётся переписать не связанные с бизнесом куски типа роутинга/контроллеров/чего-то-ещё на новые – но ведь ради этих более новых и более удобных кусков и затевается обычно весь переезд.
Пишу только исходя из личной практики и того что видел.

То бишь, сначала следует составить максимально подробное описание – ради чего переезд и какой профит он даст кроме ощущения, что "мы пишем на чём-то новом".

В небольших проектах я наоборот часто сильно завязываюсь на фрейморк (кроме доменных моделей, которые суть POPO) – это позволяет использовать его преимущества на 146% – гораздо эффективнее, чем пилить "свой фреймворк для абстракции над фреймворком".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы