to post messages and comments.

← All posts tagged Python

@provaton:

Открыл темку на лоре, но чего-то никто не помогает. На жуйк только надежда осталась.

linux.org.ru

@provaton:

youtube.com

@provaton:

Лайк. opennet.ru

@provaton:

Перевел один из старых больших проектов на python3. Сложности возникли с

1. принт со скобками
2. .encode('hex') для строк
3. не везде были правильно прописанные относительные импорты.

Почти не возникло проблем с юникодными и байтовыми строками.

После недолго греппинга вышеуказанных проблем прогнал тесты — и все вроде взлетело. Легче чем я думал.

@provaton:

Интересно, что после окончательного перехода с Emacs на PyCharm я стал гораздо меньше комплексовать по поводу отсутствия статической типизации в питоне. PyCharm очень качественно отлавливает ошибки, я порой даже теряюсь сразу понять по какому алгоритму он некоторые из них находит. Конечно, до GHC чарму еще далеко, но все же результат ощутим.

@provaton:

Как это?

TypeError: delete() takes at least 4 arguments (4 given)

@provaton:

Вчера ко мне набижало несколько фласковских фанбоев, начавших мне доказывать, что джанго — говно. К сожалению, аргументов они особо не предоставили, кроме рекламных лозунгов взятых с выдачи гугла "flask vs django", но мне все равно хочется ответить на них.

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

1. Джанго древний. Аргумент — супер, особенно от человека который наверняка сидит на Вендовс НТ или Линуксе, которым по 25 лет. Почему они не перейдут на какой-то там Redox — загадка.

Что-то я отвлекся. Последний мажорный релиз джанги — 1-го декабря 2015, последний минорный релиз фласка — 14-го июня 2013-го. Любознательным читателям посоветую сравнить чейнджлоги, особенно обратив внимание на секцию Backwards-incompatible changes в джанговском. Чуваки не стесняясь выпиливают говенный легаси заменяя его современными годными компонентами.

2. Джанго тормозной. Такие аргмуенты основанны на популярных бенчмарках по измерению производительности хелловорлдов. Но хелловорлды в продакшен не идут, туда идет чуть более сложная логика, которая будет тормозить в любом случае больше чем рендер шаблонов, который легко закешировать. А возможности оптимизации приложений в джанго и фласке в целом одинаковы.

3. Джанго жирный и маломодифицируемый, а во фласке сам собираешь стек. Этот аргумент работал бы в случае если компоненты джанговского стека были бы дерьмом, которое нужно обязательно заменить. Но если они успешно решают задачу, то в чем смысл замены? Потратить кучу времени на гуглежку фласковских батареек и интеграцию их в свой проект? А замечательные ситуации типа "обновил фласк-секьюрити — сломался фласк-админ"?

Да, есть определенный процент веб-приложений с нестандартным стеком, для них джанго вряд ли подойдет. Но если стек стандартный — в чем смысл тратить время на его сборку в каждом новом проекте еще и с риском что компоненты не сойдутся версиями? То, что стандартный веб-стек в джанго проходит по всему релиз-циклу в сборе — это скорее достоинство, чем недостаток.

Если смотреть более детально по претензиям к компонентам, то главное что джанговцы сделали архитектуру для смены движка темплейтов и допилили ОРМ до годноты. Все остальное меняется достаточно легко и без специальной поддержки во фреймворке. Динамизм питона и отсутствие магии сами по себе обеспечивают такую возможность.

@provaton:

Посравнивал объективно фласк и джангу, и понял, что в джанге (на момент версии 1.9) мне реально мешают только 2 вещи:

1. urlconf
2. необходимость передавать реквест во все вьюхи параметром

У фласка annoy-list поболее будет, думаю. А джанговским девелоперам респект.

@provaton:

Самый большой недостаток фласка по сравнению с джангой — отсутствие аналога django-rest-framework.

@provaton:

Разрываюсь между pycharm и emacs. В первом классная система подсказок и ворнингов, реально уменьшающее кол-во багов и мощный рефакторинг. Во втором — удобный редактор. Вот бы это все объединить в одно... Мечта несбыточная.

@provaton:

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

@provaton:

Вот не могу понять этот ворнинг — это я тупой, или бага в PyCharm?

@provaton:

Кто-то пробовал peewee? Как оно по сравнению с SQLAlchemy? Как там с миграциями?

@provaton:

Похоже нашел батарейку для задачи из #2787203 github.com

@provaton:

Напишите мне, пожалуйста, в комменты к этому посту все, что вы не любите в питоне. Отступы, селф, ГИЛ, однострочные лямбды — чего еще не хватает?

@provaton:

Почему в питоновских ОРМ так плохо с миграциями? В джанговский их лет 5 прикручивали, в алхимии до сих пор толковой системы нет.

@provaton:

Что-то ни wtforms, ни джанговские формы как-то не сильно удовлетворяют современным реалиям — генерацией и работой с формами с кучей джаваскриптов всяких... Есть еще какие-то альтернативы или надо свое писать?

@provaton:

Интересно, был бы питон лучше, если бы имел по дефолту возможность обращения к элементам словаря, как в джаваскрипте (то есть как dict.element так и dict['element']).

@provaton:

На jinja2 стоит перейти только за то, что там можно передавать аргументы функциям

@provaton:

На лоре сегдоня огромный поток уведомлений по тегу python. К чему бы это?