Каркасы тоже имеют свою стоимость. Хотя они могут абстрагироваться от множества повторяющихся задач, у них есть кривая обучения. Хорошо, что документация обычно очень хорошая. Я приведу в качестве примеров CakePHP и Symfony.
Фрагменты всегда были полезны, но рано или поздно это делает кодовую базу неоднозначной. Требуются умственные способности, чтобы понять различные фрагменты кода тоже. Код получен из разных источников, поэтому центральный источник информации не будет.
Для меня самым большим фактором при выборе между фреймворками и фрагментами кода является мое мастерство и мастерство других людей в команде. Коммуникация является ключом.
Команды, где разработчики могут читать документацию, должны придерживаться фреймворков. Я был в таких командах, и разработчики, как правило, стараются не рисковать. Такая команда имеет тенденцию быстро проходить через стандартизированные задачи, используя API платформы. Однако, когда требуется настройка (поскольку клиенты любят вносить изменения), они, как правило, работают медленнее. Преимущества такой команды в том, что каждый человек потенциально может заменить другого. Однако самым большим недостатком является то, что отсутствие специализации делает людей менее привязанными к своей работе.
Команды, в которых разработчики могут читать сам код, должны использовать фрагменты кода. Я тоже был в таких командах, и разработчики, как правило, знают немного больше. Они действительно быстрые в настройке, но они теряются при выполнении повторяющихся задач. У каждого разработчика есть личность, о которой он, как правило, заботится. Весьма вероятно, что они гордятся своей работой и сделают все, чтобы «выглядеть круто» перед своими сверстниками. Но самый большой недостаток в том, что некоторые разработчики могут быть напыщенными придурками.