Я попробую определение, основанное на моем собственном понимании: фреймворк - это набор кода, который абстрагирует подмножество задач, общих для некоторых классов прикладных программ.Намерение состоит в том, чтобы один раз предоставить проверенный и протестированный код, чтобы при разработке приложений не приходилось постоянно переизобретать код для общих задач, выполняемых фреймворком.
В реальной жизни фреймворки часто возникаюткогда программист или команда увлекаются обобщением и перспективой того, что начиналось как единое приложение.Есть честное намерение начать повторное использование кода, но часто оказывается, что такие фреймворки изначально не разработаны с намерением, не имеют согласованного дизайна, отражающего это намерение, и на самом деле являются паршивым кодом, который в итоге не повторяется.используется вообще.Большинство архитекторов, которые считают себя достаточно квалифицированными для создания каркасов, не являются.