Форум сайта python.su
Всем привет,
Не знаю с чего начать, наверное все-таки с описания проекта. Если коротко, то это сервис рекомендации досуга, если чуть-чуть подробнее, то это мини соц. сеть использующая алгоритмы коллаборативной фильтрации для построения рекомендаций.
Теперь о себе: опыт в вебе чуть меньше пяти лет, большую часть времени на PHP, последние полтора года занимался разработкой на Rails. В Python я можно сказать новичек, в колледже (5 лет назад) был неплохой опыт работы с Turbogears 1 и все.
Проект по моим меркам сложный и факт того, что это первый проект которым я руковожу (типа тимлид), только делает его сложнее в моих глазах. На мне выбор всего, что только может зависеть от тимлида. Погуглив, решил использовать Python, т.к. большинство примеров коллаборативной фильтрации я видел именно на нем. Да и еще хорошая память осталась о языке, со времен знакомста с ним. Но вот с выбором фреймворка все не так гладко, кругом холивары. Поэтому ставить вопрос “какой фреймворк лучше?” я не буду, просто раскажу о своем опыте работы с джангой, на основании которого, возможно, мне кое-что посоветуете.
В первую очередь за советом в выборе фреймворка я обратился не в онлайн, а к своему знакомому. По моим меркам очень сильный Python-программист, он посоветовал Django. Сижу на джанге третью неделю и мне почему-то не нравится. Мне не нравится ORM, не нравится отсутсвие миграций и не нравится документация, хотя не раз читал, что у джанги с документацией все впорядке. Документация у рельс, по моему мнению, намного лучше. Зато мне нравятся шаблонизатор и, особенно, админка, но в ней еще разбираться и разбираться.
Мой друг сказал (и не раз скажут в этом посте ), что я просто джангу не понял и скорее всего прав, но все-таки, она пока меня только отталкивает, в Rails я втянулся легко и с удовольствием. Что можете сказать по поводу других фреймворков?
Второй вопрос: делал ли кто-нибудь рекомендательный сервис и какой фреймворк при этом использовал?
Ну и… прав ли я, что ушел с Ruby на Python? просто у меня сложилось мнение, что для этой задачи пайтон лучше подходит.
Для меня наверное важнее всего удобство работы с БД (ORM, миграции и т.д.), хорошая, реально хорошая документация (пофиг на русском или английском).
Всем спаибо!
Офлайн
Дедлайны есть?
Офлайн
Джанго не юзаю, но сложилось мнение что она не для больших проектов, якобы в итоге переписывается 95% джанги под себя. Те же “коментарии” выкидывают сразу. Остаются роуты, шаблонизатор и т.п. - основные вещи которые есть во всех фреймворках.
KsimMiloffНеобязательно все делать на одном языке, сайт можно на одном, а “математику” на другом.
т.к. большинство примеров коллаборативной фильтрации я видел именно на нем.
Офлайн
для быстрой разработки, имхо, джанго самое то. но он настолько мощный комбайн, что всех возможностей не юзаю.
лично сейчас, после 1-2 года разработок на джанго, задумываюсь о переходе на другой фреймворк, возможно Flask.
кстати. можно и на чистом питоне, естественно заранее продумав архитектуру проекта. иначе потом поддерживать и масштабировать проблематично.
с точки зрения масштабируемости, в фреймворках архитектура уже продумана.
Офлайн
bismigalisесть, 5 месяцев
Дедлайны есть?
o7412369815963Мне тоже показалось, что переделывать надо слишком много. Мне нужна удобная ОРМ и миграции. Читал, что в джанге можно поменять ОРМ и прикрутить менеджер миграций. Но зачем? Помоему лучше выбрать фреймворк, где такие вещи идут из коробки.
Джанго не юзаю, но сложилось мнение что она не для больших проектов, якобы в итоге переписывается 95% джанги под себя. Те же “коментарии” выкидывают сразу. Остаются роуты, шаблонизатор и т.п. - основные вещи которые есть во всех фреймворках.
o7412369815963Это я знаю, может быть так и будет, но по-моему это все усложняет. Если никто, в ближайшее время, не разрушит мое представление о пайтоне как о языке наиболее подходящим для этой (математической) задачи, то будет всего один язык.
Необязательно все делать на одном языке, сайт можно на одном, а “математику” на другом.
ilnurо каких возможностях речь? Я описал возможности, которых мне в джанге нехватает
для быстрой разработки, имхо, джанго самое то. но он настолько мощный комбайн, что всех возможностей не юзаю…
ilnurЯ бы рад, но мои знания чистого питона явно недостаточны. Конечно я имею представление, писал скрипты на интерес, но это было давно.
… кстати. можно и на чистом питоне, естественно заранее продумав архитектуру проекта. иначе потом поддерживать и масштабировать проблематично. с точки зрения масштабируемости, в фреймворках архитектура уже продумана.
Офлайн
KsimMiloffБД какую будете юзать? MongoDB рассматривали?
Для меня наверное важнее всего удобство работы с БД
Офлайн
KsimMiloffтак только в джанге свой ORM, с другими фреймворками придется юзать отдельный ORM. Самый знаменитый это SQLAlchemy, ее автор делает также либу для миграций Alembic.
Мне нужна удобная ОРМ и миграции. Читал, что в джанге можно поменять ОРМ и прикрутить менеджер миграций. Но зачем? Помоему лучше выбрать фреймворк, где такие вещи идут из коробки.
Отредактировано bismigalis (Ноя. 21, 2013 09:39:36)
Офлайн
юзал как то алембик с алхимией. заинтересовала такая связка. показалась попроще и удобней джанговского орма и соуфа.
Офлайн
o74123698159631 С монго не работал, но хочу, поэтому очень даже вероятно…
БД какую будете юзать? MongoDB рассматривали?
Что будет на клиенте, в диапазоне от статических страниц до full ajax?
Я бы заюзал: bottle.py, mongodb, angular, sphinx search. + node.js/tornadoweb для авторизации.
Отредактировано KsimMiloff (Ноя. 21, 2013 11:59:48)
Офлайн
Если был опыт работы с TurboGears и нравится sqlalchemy, то почему бы не TurboGears 2?
ORM - sqlalchemy, миграции - Alembic, шаблоны по умолчанию(Genshi), переключаете на Jinja2, это те же шаблоны Django только лучше. С документацией, правда, хуже чем у джанги, но она есть.
Офлайн