Мне тут кинули ссылку на статью в которой автор рассуждает о целесообразности создания фреймворки. В числе прочего там есть сравнение двух подходов к разработке фреймворков от Мартина Фаулера - Foundation Framework и Harvested Framework.
За долгое время работы программистом я создал несколько фреймворков, которые вполне успешно применялись и статья инициировала мысли по этому поводу. Ни один из них не был в том сценарии, о которых говорится в статье, так что это не комментарии, а мысли на тему - вот и делюсь ими в своем блоге.
Существуют модели и области разработки, в которых задачей является разработка более-менее типовых приложений. И там создание фреймворка (специализированного решения), позволяющего реализовывать большинство из возникающих задач путем применения достаточно регламентированных процедур дает ощутимый эффект - за счет того, что при этом можно переложить задачу разработки на гораздо менее квалифицированный персонал. Собственно, именно для этого в свое время писал фреймворки я сам - с их помощью наша компания разрабатывала достаточно типовые проектные решения силами разработчиков ограниченной квалификации. Но это - давно в прошлом, мы сменили подход в сторону привлечения квалифицированных программистов (хотя дата у меня сильно примерная). А квалифицированным программистам фреймворки не нужны, вернее, им нужны другие, расширяемые фреймворки, такие как VS .Net.
Их тоже, в принципе, можно создавать и специализированными, но их создавать много сложнее. По сути, ногие промышленные решения, например 1C-Предприятие или Oracle Retail - это такие специализированные фреймворки, в которых четко проведена граница между тем, куда может лезть внедренец, а где область компании-разработчика. И тут фреймворк нужен как раз для проведения границы.
А еще важную роль играет время жизни и количества проектов. Если бы имеется поток более-менее однотипных проектов со средним сроком от пары месяцев до года, то создание фреймворка обычно существенно облегчает их реализацию. На SoftwarePeople я слышал интересный доклад Александра Горника - их компания делает сайты под промоакции, и основная задача - сделать быстро. Они сделали свой фреймворк под это дело - и сейчас делают заказы за неделю, а то и быстрее (начинали с пары месяцев) - потому что делают преимущественно типовое решение.А вот если каждый проект развивается долго, и новые появляются раз в несколько лет, то фреймворки - они устаревают. над ними начинает довлеть проблема обратной совместимости и многие другие известные проблемы. Кстати, поэтому переход на новую версию SAP, например, превращается в отдельный и не дешевый проект - версии слабо совместимы.
Комментарии
3 дня 54 минуты назад
3 дня 2 часа назад
4 дня 12 часов назад
4 дня 23 часа назад
6 дней 21 час назад
1 неделя 2 дня назад
1 неделя 6 дней назад
2 недели 1 день назад
2 недели 1 день назад
2 недели 1 день назад