вторник, 6 марта 2012 г.

Мэтрам django web разработки посвящается


Я так считаю - любую задачу можно решить на тьюринг полном языке, вопрос в удобстве. Вот одно время программисты писали кругом goto и gosub, а потом пришла к ним мысль, что это не совсем удобно.

Но долгое время в сторону паскаля неслись смешки, и говорили -  нафиг нам ваши break и continue, да я с goto решу выход из цикла на раз, в три раза элегантнее.

А потом как-то обнаружилось, что без goto все таки лучше, а главное нагляднее - не обязательно теперь программу в блок-схемах рисовать, чтобы прикинуть редьку к луку.

Или вот можно писать::

if key in map:
    return map[k]
else:
    return None

А можно элегантнее действовать, можно написать `return map.get(k)`. А говорят еще есть некий монадический Option путь, там вообще трава зеленее. Но `if ... in ...` он проще и понятнее, я if уже двадцать лет знаю и умею, идите нафиг, я еще в великой энциклопедии самого профессора Фортрана читал. Я может потом, как время будет, прочту про хаскель сразу, и не буду писать ни одного `if` при разборе json. Но это конечно как время будет, а то я же человек серьезный, я сайты пишу - много if-ов, некогда мне, некогда.

Или вот про фреймворки все же - вот джанга она столп, а может столб, тут мнения разделились, что в этих ваших интернетах вообще не редкость.

Говорят под нее много приложений, хороших, бери пользуйся. Все написаны метрами, типа меня. Православный goto, if и никакой монадической зауми.

Или вот шаблоны - сказали логики в шаблонах ни-ни, ну вот и ни-ни - логику отображения быстренько размазали по templatetags и тихо там у меня, революционеры гадкие, поди еще и на болотную ходили. И макросы в шаблонах не нужны, и вызов функций с параметрами - от лукавого все это. А что тормозит, то все от свершений.

ORM слабый? Да пишите SQL уже, как все нормальные мужики. И формы наши эталон, CSRF у них талон, идите нафиг.

И вообще, у меня все проекты на бейсике, я его хорошо знаю, еще со школы и зеленоэкранных ямашек.


Но шутки в сторону. Скажите мне замшелые троглодиты из реально нереально серьезной веб разработки, что, экономия на рендере шаблонов это лишнее для проектов с посещаемостью >1000? Более быстрая разработка с более гибким ORM это лишнее? Да вы вообще БД используете, или планируете проект на sqlite запускать в продакшн? Даже обработка URL в Werkzeug быстрее. Можно говорить что где-то это копейки, но когда все копейки собираются во Flask, это уже становится серьезно, мимо проходить уже как-то непрофессионально,
и даже как-то стыдно.

За пределами уютного мирка в злато-зеленых тонах кипит жизнь, возникают новые идеи и инструменты, но всегда есть мэтры, которым некогда улучшать свои навыки - у них 1000 пользователей ждет, когда мэтр напишет все if-ы.

9 комментариев:

Nikolai комментирует...

Потдверждаю, проверял у себя: тот же Breve работает в разы быстрее, чем джанговый темплейт. Весь шаблонизатор -- поделка на поделке, про разделение логики отображения и бизнес-логики там тоже никто не слышал. С удовольствием уйду с джанги как только придумаю замену админке.

Vitaly Omelchuk комментирует...

Не подтверждаю...Вот есть такие программисты - вот мы ща джангу заменим на фласк и все у нас взлетит - а вот и нет. Джанга это и комюнити и порог вхождения и кол-во возможных кандидатов на на место в проекте... Потому шо это называется проект. а не код в себе. Пишите "стартапы" на фласке и грезте надеждами, а когда надо делать дело... У меня проект с очень высокой посещаемостью - писался на джанге, потом много переписано, но джанговские вьюхи, джанговские модели, джанговский урл, джанговский шаблонизатор прекрасно работает и работает быстрее, чем изначально задумывалось создателями фреймворка и большенство из разработчиков и не знают, что пишут они не на джанге и принимаем на работу мы джангистов. Хотя, справедливости ради скажу, что шаблонизатор "внутри" у нас таки жинжа2.
О чем я? Голова и руки пишут качественный код, а не фреймворки...

Михаил Кривушин комментирует...

Виталий, а что вы все таки не подтверждаете? Что если запилить в джангу jinja2, то шаблоны джанги не тормозят?

Про разработчиков на джанго - если разработчик хороший, то он на flask-е будет писать через сутки. Если он дуб, то он мне и на джанго один говнокод только выдаст, с ifами и goto.

resutatsu комментирует...

Виталий, мы тоже заменяли шаблоны на jinja2, ну и что? в итоге большинство сторонних apps завазянных со своими тегами на джанговские шаблоны уже не поставишь.

ну про ОРМ я умолчу.

Andrew Svetlov комментирует...

Мы тоже берем на работу Джангистов — не отказывать же убогим. А потом они на этой Джанге ни строчки не создают.

Mike Yumatov комментирует...

Михаилу Кривушину и Андрею Светлову: «Все придурки ты, я, вот придурок, это моя философия», Бендер

Unknown комментирует...

>И вообще, у меня все проекты на бейсике, я его хорошо знаю, еще со школы и зеленоэкранных ямашек.

-- Ага, а самый главный "тормоз" питонщиков Гвидо ван Россум до сих пор пишет в древнем Емаксе, и забил моду и современность... Таки дела... Надо ему написать, чтобы не отставал от жизни...

> Даже обработка URL в Werkzeug быстрее.

-- Насколько я понял, - это из-за того, что в Джанго один обработчик можно описать несколькими выражениями под одним именем, когда в Werkzeug одно правило представлено только одним выражением, а все параметры, которые отсутствуют в выражении добавляются в Query String (дальнейшее совпадение не ищется). Впрочем, я могу ошибаться, так как исходники Werkzeug не открывал, а такой вывод сделал на основании документации. В Джанго получается гибче.

antono комментирует...

resutatsu печально у вас в джанге все.

Luda Lukashevskaya комментирует...

это мы еще посмотрим кто убогий