Перейти к содержимому

Конструирование системы. Часть 5 — Фреймворки, Библиотеки (Ликбез)

Любое написанное программное обеспечение так или иначе работает с каким — либо оборудованием. Обычно это сводится к наборам каких либо языковых конструкций, которые перетекают между проектами. В зависимости от требований программного обеспечения и области применения, какая либо часть набора может использоваться а другие нет.

Очевидным решением в таком случае было группировать эти независимые куски кода. Эти независимые куски упраздняющие работу с чем либо принято называть/считать библиотеками. Со временем библиотек стало много их интерфейсы стали разниться как между собой , так и с соседними библиотеками.

Всё это стало накладывать некоторые ограничения и сложности в разработке программного обеспечения и стала явной необходимость в появлении дополнительной прослойки, сглаживающей эти недостатки. Так появились фреймворки, которые выполняли роль клея для этих разрозненных библиотек. Программистам стало не обязательным знать внутреннее устройство определённых библиотек, так как выбранный ими фреймворк компенсировал это своим общим апи.

Помимо этого дополнительным бонусом разработчики стали внедрять в свои фреймворки инструменты необходимые для облегчения написания пользовательского кода. В зависимости от платформы исполнения это были определённые наборы паттернов проектирования, склеенные между собой. Собственно подводя итог , можно сказать что:

  • Фреймворк, является частью пакета «быстрой разработки приложений» (Rapid Application Development)
  • Фреймворк, содержит в себе интерфейсы для групп библиотек (для горячей замены с одной на другую)
  • Фреймворк, содержит в себе паттерны проектирования (для начального запуска приложения и задания общего стиля)

Первым пунктом был упомянут RAD, это очень важно, так как сам по себе фреймворк, как и любой другой сторонний код это всего лишь шкатулка пандоры, нуждающаяся в детальном рассмотрении и изучении. Следовательно для того чтобы фреймворком можно было пользоваться и получать от него необходимое, а именно увеличение скорости разработки, у фреймворка должна быть комплектация. Обычно это его описание в виде документации доступных интерфейсов, а так же наборы статей по работе с ним, включая «лёгкий старт» (запуск простого приложения на фреймворке в несколько шагов).

Дополнительно в поставку добавляют заготовки приложений, которые отличаются уровнями вхождения и стеками используемых технологий. При старте нового проекта программисту уже нет необходимости в повторной настройке необходимых подсистем. Также в поставку включают генераторы позволяющие автоматизировать написание какой либо базовой рутины. С помощью генераторов упрощается процесс создания заготовок клиентского кода, который потом необходимо только незначительно подрихтовать под текущие требования.

Подводя итог ликбеза, мы видимо что — сравнивать нечего. Так как фреймворк по своей сути является набором склеенного вместе набора библиотек, а основным отличием становится то, что:

  • программист вызывает код из библиотек
  • фреймворк вызывает код программиста

назад

Опубликовано вОбщее