Функциональный стиль веб-фреймворков - PullRequest
1 голос
/ 23 апреля 2009

Все веб-фреймворки, которые я видел, в основном следуют парадигме ОО. Существуют ли в Python или Ruby веб-фреймворки, соответствующие стилю FP?

1 Ответ

0 голосов
/ 23 апреля 2009

Как и сам python, вы, вероятно, найдете в Python веб-фреймворки, в которых сочетаются функциональная и объектно-ориентированная парадигмы. Джанго - отличный пример. Django следует дизайну модели-вида-контроллера, который они обозначают как модель-шаблон-вид. Интересно то, что три слоя работают совершенно по-разному.

  • Модель является объектно-ориентированной. Нет необходимости делать это звездным примером всего, что может быть ООП. Вы можете быть очень простыми с вашими моделями: вы называете его, расширяете базовый класс модели и объявляете несколько свойств. Я думаю, что так и должно быть, и мне будет интересно узнать о других средах, которые значительно менее объектно-ориентированы на уровне модели. Ваша база данных нуждается в таблицах объявлений, а ваш сайт должен генерировать строки данных. Это очень похоже на классы и экземпляры, независимо от того, как вы на это смотрите.
  • Шаблон не питон. Он должен выглядеть как HTML, насколько это возможно, с некоторыми красивыми способами вставки данных, которые ему передаются.
  • Вид очень функциональный. Он может быть приведен к парадигме OO, и он может полагаться на модели, чтобы выполнять тяжелую работу, если он этого хочет. Но в основе есть объявления функций, которые выполняют какое-то действие. Эти объявления функций передаются в качестве аргументов функции конфигурации URL.

Мне нравится эта смесь парадигм, потому что я считаю, что она хорошо работает для каждого данного уровня. Некоторые могут назвать это противоречивым; другие могут сказать, что различие между логикой модели и представления должно быть как можно более четким, чтобы подчеркнуть это различие.

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

...