FastNetMon

Tuesday 10 March 2009

Я, наверное, влюбился ... в Pylons :)

Прошу любить и жаловать http://www.pylonshq.com !
Пожалуй, один из десятков (а-то и сотен) фреймворков для веб разработки, который меня устраивает, как с точки зрения его пользователя (очень удобный способ установки библиотек в некую виртульную среду, вместо извращений с системными либами), так и с точки зрения программиста (тут имеется в виду архитектура фреймворка и его внутреннее устройство).

Что нам предоставляет эта прелесть? Ну, во-первых, ставший уже привычным MVC, т.е. весь проект представляет из себя трехслойный пирог, состоящий из Контроллеров, Модели и Вьюхи (кстати, общепринятого перевода View в данном контексте я не встречал, может подскажете?).

В отличие от вещей по типу Rails тут Вьюх аж три на выбор - выбирай любую, просто замечательный подход. В модели в качестве ORM используется SQLAlchemy - пожалуй, лучший ORM для динамического языка в мире :) Причем, спешу заметить, что Алчеми очень уместно использует особенности синтаксиса Питона и поэтому смотрится как "влитой", хотя очень часто ORM маппинги смотрятся просто жутко в коде.

Но наиболее интересен тот факт, что мне, наверное, впервые удалось написать приложение, использующее СУБД, ни разу не задумавшись о самой СУБД (прошу прощения за каламбур). Кстати говоря, если интересно, то использовал я SQLite (хотя в случае с MySQL потребовалось бы самому создать базу и выдать полномочия, что также нельзя называть затруднительным).

Об архитектуре. Pylons построен из отдельных кирпичиков, где каждый кирпичик представляет собой довольно мощный проект, который никакого прямого отношения с Pylons не имеет (сравните это с подходом в Rails, где всё собрано из "самопальных либ").

Раз уж я начал ругать Rails, то стоит, наверное, поругать и любимый мной Catalyst (ну как вы могли догадаться, любить я его меньше от этого не стану) - в частности Алчеми, на мой взгляд, обходит DBIx на голову, а по скорости работы встроенный http сервер пастер обходит почти любой httpd бэкэнд Каталиста, так что его можно использовать (только не очень долго...) бэз фронтэнда.

Ну и ещё немножко о модульном устройстве. Тут опять можно поругать Каталист, для установки которого надо вытянуть порядочную кучу библиотек с CPAN`а, тут же всё ставится за минуты :)

Кстати, как я понял, аналог CPAN для Python обитает по адресу http://pypi.python.org/pypi

3 comments :

  1. TurboGears (http://turbogears.org/) не смотрел? Очень в духе Pylons, только с админкой и прочими красивостями. А версия 2 вообще будет на этих самых Pylons :)

    ReplyDelete
  2. По поводу ORM, - ну в ДЯПах оно всегда довольно "влито" смотрится... В тех же рельсах к примеру широко используется "method missing", когда по вызову метода find_by_id, автоматически генерится метод ищущий по "id"...По поводу "задуматься о СУБД", - ну к этому ORM и стремится )
    А что за 3 типа Вьюх ? (никогда не слышал другого произношения этого слова, незнаю как красиво перевести)

    ReplyDelete
  3. Три типа шаблонизаторов, играющих роль вьюхи.

    ReplyDelete

Note: only a member of this blog may post a comment.