Искал я на днях простой питоновский веб-тулкит для мелкой хреновины, состоящей буквально из пары динамический страничек (ну чуть побольше, но не суть). Посмотрел django, pylons — и решил, что не мое. Я, конечно, понимаю, что эм-вэ-цэ, глобально, надежно и все дела, но когда инсталляция гудбай-круэл-ворлд.хтмл занимает больше времени, чем инсталляция сериоус-бизнес-субд — я впадаю в меланхолию и вообще.
И тут вспомнил я, что всем известный Mamut называл примерно такую штуку, которая мне нужна — микрофреймворком. Штука называлась бип-бип (да, так и называлась — (quote beep-beep), а не была запикана модератором), состояла чуть менее, чем из "обработчика урлов" и шаблонизатора, была астенична и прекрасна как Грув из VH D: B. Еще потом я вспомнил, что очень похожим образом юзал веб-феймворк из plt-scheme. Там все веб-приложение (морда к xml-rpc-сервису) состояло из одного файла вместе с шаблонами (ибо html в виде sexp) и было еще более прекрасно. И тут я погуглил про микрофреймворки на питоне. Вы не поверите — тысячи их. Такое ощущение, что просто каждый второй пользователь гитхаба посчитал своим долгом накодить сотню-другую строк и обозвать ее микрофреймворком.
Сначала я выпил пива, потом остановился на web.py, а потом мою душу поглотила тьма сомнения.
Ну вот это я такое веб-бъдло, юзаю всякую хрень и т.п. А серьезный пипл в своем сериоус-бизнесе — он "микрофреймворки" юзает? Есть ли в коммерческой разработке профит от быстро-просто-понятно — или-таки в этом случае оплот красноглазия уступает место глобальному и надежному? Rsdn, просвети, а?
Здравствуйте, Mr.Cat, Вы писали:
MC>Искал я на днях простой питоновский веб-тулкит для мелкой хреновины, состоящей буквально из пары динамический страничек (ну чуть побольше, но не суть). Посмотрел django, pylons — и решил, что не мое. Я, конечно, понимаю, что эм-вэ-цэ, глобально, надежно и все дела, но когда инсталляция гудбай-круэл-ворлд.хтмл занимает больше времени, чем инсталляция сериоус-бизнес-субд — я впадаю в меланхолию и вообще.
А в чём проблемы с инсталяцией джанго?
apt-get install python-django
./django-admin.py startapp XXX
А дальше уже код аппликухи (ну плюс настройка базы, если надо). Используя фичи по вкусу.
В чём прелесть "микро"? В размере?
Здравствуйте, Курилка, Вы писали: К>А в чём проблемы с инсталяцией джанго?
Нет, проблем нет. Единственное, что меня смутило — это количество страниц мануалов, которые нужно воскурить, чтобы поднять на джанге нужное мне простенькое приложение, по сравнению с тем же web.py.
Вот посему и спрашиваю, микрофреймворки — это удел ленивого веб-бъдла или-таки старательные и умные веб-разработчики тоже ими пользуются?
Здравствуйте, Mr.Cat, Вы писали:
MC>Сначала я выпил пива, потом остановился на web.py, а потом мою душу поглотила тьма сомнения. MC>Ну вот это я такое веб-бъдло, юзаю всякую хрень и т.п. А серьезный пипл в своем сериоус-бизнесе — он "микрофреймворки" юзает? Есть ли в коммерческой разработке профит от быстро-просто-понятно — или-таки в этом случае оплот красноглазия уступает место глобальному и надежному? Rsdn, просвети, а?
Я думал по старой привычке взять минимальный фреймворк и закастомизировать его. Но.... Посмотрел сколько это будет работы и решил, что лучше взять Django и не париться.
Тем более, что по tutorial'у у меня первый "goodbye-world" заработал через две минуты.
Здравствуйте, Cyberax, Вы писали:
C>Я думал по старой привычке взять минимальный фреймворк и закастомизировать его. Но.... Посмотрел сколько это будет работы и решил, что лучше взять Django и не париться.
C>Тем более, что по tutorial'у у меня первый "goodbye-world" заработал через две минуты.
Ты вроде несколько месяцев назад про джангу спрашивал, какие теперь выводы после опыта использования, если не секрет?
Меня вот смущает в основном package hell при деплойменте "There should be one-- and preferably only one --obvious way to do it." из PEP-20 нифига не соблюдается в данном случае имхо.
А, собственно — если web.py подходит, и решает проблему, то какая разница "а как это делают другие"?
Я, например, нахожу web.py — великолепным в своем роде микропроизведением искусства. Он делает ровно то что надо, не больше и не меньше: нормалный роутинг УРЛов, wsgi-обертка, микро ОРМ (ну или нечто похожее), шаблонизатор (можно прикрутить свой любой).
Если нужен серьезный проект — тогда стоит смотреть в сторону Джанги, Гирь, Пилонов и т.п. Там оправданы сложные ОРМы, внутренние системы отправки сообщений, крутые и классные шаблонизаторы и прочие навороты.
А web.py — маленький, шустренький и удобненький. И хорош для маленьких страничек. И главное — что все его исходники можно окинуть взглядом, пропатчить и вообще как угодно вывернуть.
Здравствуйте, Курилка, Вы писали:
C>>Тем более, что по tutorial'у у меня первый "goodbye-world" заработал через две минуты. К>Ты вроде несколько месяцев назад про джангу спрашивал, какие теперь выводы после опыта использования, если не секрет?
Не секрет. Django — вполне добротный framework, хорошо приспособлен для "стандартных" сайтов. Программист средней квалификации устойчиво выдаёт в день по несколько страниц-форм, покрытых тестами.
Сам Django вполне соответствует agile-парадигме — там неплохая система тестирования, хороший и простой ORM (достаточно мощный), удобная админка и куча всяких тулзов. В общем, писать одно удовольствие — большинство стандартных задач уже решены.
Минусы:
1) Сильная интегрированность всего. Скажем, SqlAlchemy ты в Django не прикрутишь.
2) Местами есть архитектурные косяки (типа выдачи html'я для админки из недр кода ORM). Жить не мешают особо, но всё-таки...
3) Админка не очень хорошо расширяема.
4) Нет встроенной системы миграции схемы базы. Хотя http://south.aeracode.org/ вполне себе ничего.
5) Нет встроенной интеграции с AJAX'овыми библиотеками. Хотя http://code.google.com/p/pyjamas/ интегрируется очень красиво.
К>Меня вот смущает в основном package hell при деплойменте "There should be one-- and preferably only one --obvious way to do it." из PEP-20 нифига не соблюдается в данном случае имхо.
Эээ... Что именно не так? В Django достаточно просто вроде всё деплоится. При желании даже egg'и собираются (http://code.google.com/p/django-reusableapps/).
Здравствуйте, Курилка, Вы писали:
C>>Тем более, что по tutorial'у у меня первый "goodbye-world" заработал через две минуты. К>Ты вроде несколько месяцев назад про джангу спрашивал, какие теперь выводы после опыта использования, если не секрет?
Забыл ещё сказать, что в Django очень классно сделана поддержка локализации.
Здравствуйте, Cyberax, Вы писали:
C>Минусы: C>1) Сильная интегрированность всего. Скажем, SqlAlchemy ты в Django не прикрутишь. C>2) Местами есть архитектурные косяки (типа выдачи html'я для админки из недр кода ORM). Жить не мешают особо, но всё-таки...
а можно чуть подробней? C>3) Админка не очень хорошо расширяема. C>4) Нет встроенной системы миграции схемы базы. Хотя http://south.aeracode.org/ вполне себе ничего.
да ничего, в 0.6 тем более проблемы с callable пофиксили C>5) Нет встроенной интеграции с AJAX'овыми библиотеками. Хотя http://code.google.com/p/pyjamas/ интегрируется очень красиво.
Пока по старинке "ручками" аякс прикручивал К>>Меня вот смущает в основном package hell при деплойменте "There should be one-- and preferably only one --obvious way to do it." из PEP-20 нифига не соблюдается в данном случае имхо. C>Эээ... Что именно не так? В Django достаточно просто вроде всё деплоится. При желании даже egg'и собираются (http://code.google.com/p/django-reusableapps/).
Дак не сама джанга, там не было вопросов. У меня основные проблемы с PIL вылезли, который то совсем не ставится, то некорректно компилируется. И вообще зоопарк получается, когда есть как минимум setuptools vs. distuils, а кроме них ещё какой-нибудь yum/apt-get из системы.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Курилка, Вы писали:
C>>>Тем более, что по tutorial'у у меня первый "goodbye-world" заработал через две минуты. К>>Ты вроде несколько месяцев назад про джангу спрашивал, какие теперь выводы после опыта использования, если не секрет? C>Забыл ещё сказать, что в Django очень классно сделана поддержка локализации.
А я там по глупости нарвался на разницу, что есть в самой джанге conf/locale, а в приложениях просто locale
Здравствуйте, Курилка, Вы писали:
C>>1) Сильная интегрированность всего. Скажем, SqlAlchemy ты в Django не прикрутишь. C>>2) Местами есть архитектурные косяки (типа выдачи html'я для админки из недр кода ORM). Жить не мешают особо, но всё-таки... К>а можно чуть подробней? http://adam.gomaa.us/blog/2007/aug/26/the-django-orm-problem/ — кстати, в 1.1 они это таки поправили
C>>4) Нет встроенной системы миграции схемы базы. Хотя http://south.aeracode.org/ вполне себе ничего. К>да ничего, в 0.6 тем более проблемы с callable пофиксили
Там пока раздражает то, что sqlite (а мы её in-memory версию для тестов используем) нормально не поддерживается.
C>>5) Нет встроенной интеграции с AJAX'овыми библиотеками. Хотя http://code.google.com/p/pyjamas/ интегрируется очень красиво. К>Пока по старинке "ручками" аякс прикручивал
Ну так да.
C>>Эээ... Что именно не так? В Django достаточно просто вроде всё деплоится. При желании даже egg'и собираются (http://code.google.com/p/django-reusableapps/). К>Дак не сама джанга, там не было вопросов. У меня основные проблемы с PIL вылезли, который то совсем не ставится, то некорректно компилируется. И вообще зоопарк получается, когда есть как минимум setuptools vs. distuils, а кроме них ещё какой-нибудь yum/apt-get из системы.
Есть такое. Я себе за правило взял не использовать библиотеки из дистрибутивов, за исключением системных. Иначе в случае с Debian'ом к концу жизни дистрибутива приходится работать с версиями примерно трёхлетней давности.
"Mr.Cat" <64543@users.rsdn.ru> writes:
> Сначала я выпил пива, потом остановился на web.py, а потом мою душу поглотила тьма сомнения. > Ну вот это я такое веб-бъдло, юзаю всякую хрень и т.п. А серьезный пипл в > своем сериоус-бизнесе — он "микрофреймворки" юзает? Есть ли в > коммерческой разработке профит от быстро-просто-понятно — или-таки в этом > случае оплот красноглазия уступает место глобальному и надежному? Rsdn, > просвети, а?
MC> К>А в чём проблемы с инсталяцией джанго?
MC> Нет, проблем нет. Единственное, что меня смутило — это количество страниц мануалов, которые нужно воскурить, чтобы поднять на джанге нужное мне простенькое приложение, по сравнению с тем же web.py.
На самом деле достаточно туториала на три страницы
MC> Вот посему и спрашиваю, микрофреймворки — это удел ленивого веб-бъдла или-таки старательные и умные веб-разработчики тоже ими пользуются?
Здравствуйте, cleg, Вы писали: C>Я, например, нахожу web.py — великолепным в своем роде микропроизведением искусства
Всеми руками поддерживаю. Чем больше имею с ним дело, тем больше убеждаюсь в том, что он ПРЕКРАСЕН.
Здравствуйте, DemAS, Вы писали: DAS> CherryPy — это микрофреймфорк?
Ммм, незнаю (не пользовал). Я не понимаю, по какому принципу авторы (или пользователи) импользуют приставку "микро-". Но вот web.py — куда ни глянь — везде он может понемногу. И шаблонизатор там есть, и обертка над БД, и обертка над html-формами. Но все какое-то крошечное и совершенно неэнтерпрайзное — как будто специально писалось под одно-два-три несложных веб-приложения.