Полагаю, лучшее объяснение использования фреймворка, которое я могу придумать, - это стандартизировать процесс проектирования и сэкономить много усилий по мере роста базы кода. Не говоря уже о том, что фреймворк может позаботиться о многих работах (что может сэкономить часы кодирования). Фреймворк может дать вам все части, которые вам нужны для построения вашего приложения, вам просто нужно собрать их.
Наилучшие причины использования фреймворка:
Повторное использование кода - если вы попытаетесь следовать дизайну фреймворка, вы сможете сэкономить много времени на программирование. Однако некоторые фреймворки требуют времени для освоения.
Инкапсуляция - Вы можете изменить базовую реализацию различных частей инфраструктуры таким образом, чтобы не требовалось много переписывания кода.
Расширяемость - вы можете расширить код инфраструктуры, добавив необходимые вам функции, и, если вы будете осторожны с дизайном, вы также можете использовать эти функции повторно.
Я уверен, что есть много других веских причин, но я сонный.
РЕДАКТИРОВАТЬ: хорошим примером преимуществ инфраструктуры может быть замена адаптера базы данных на другой, т.е. переключение с mysql на postgresql. Это может быть ужасно с функциональным программированием, но инфраструктура может сделать этот переход очень простым.