Введение в фреймворки

Если вы программируете на Ruby или каком-то другом языке, вы часто начинаете с пустого файла. Программисты, лучшие из которых достаточно ленивы (в хорошем смысле), устают от написания однотипного кода, который используется для выполнения основных задач в проектах. Тогда они объединяют такой код вместе и называют все это фреймворком.

Помимо того, что они убирают повторяемость кода, фреймворки несут и организационный смысл. Они заставляют вас следовать определенной структуре хранения файлов и кода, которая обеспечивает его высокую модульность и чистоту. Когда вы создаете новое Rails-приложение, вы автоматически получаете десятки папок, уже вписанных в осмысленную иерархию и следующих принципам Model-View-Controller (MVC). И такой подход помогает хранить все на своих полочках.

Зачастую для каждого языка существует несколько фреймворков. К примеру, это Ember, Meteor, Django, Rails, Grok и другие. В Википедии есть сравнительная таблица фреймворков, которая даст вам представление об их количестве. Для Ruby, несмотря на большую популярность Rails, существуют также Sinatra, Padrino и другие.

Напоследок заметим, что обычно (но не всегда) фреймворки - это open-source, и их лицензии позволяют вам модифицировать их, зарабатывать, продавая разработанные с их помощью различные решения и т.д. При этом, вы ничего не должны их создателям. И это очень важное различие между open-source фреймворками и теми, которые созданы на коммерческой основе. Мы узнаем больше о программном обеспечении на базе open-source в следующих уроках.

Пункты для размышления

Постарайтесь ответить на предложенные вопросы. После выполнения задания попробуйте ответить на них ещё раз

  • Что такое фреймворк?
  • Какова разница между языком программирования и фреймворком?
  • У каких языков есть фреймворки?

Задания:

  1. Прочитайте основы в этой короткой статье от WebMonkey.
  2. Посмотрите статью Выбор фреймворка для разработчика (2010) для понимания того, какие факторы принимаются во внимание при выборе.

Дополнительные ресурсы

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

  • StackOverflow: Что такое Framework? Как его можно сопоставить с LAMP?

Поделиться уроком: