Ответы пользователя по тегу Django
  • Стоит ли начинать новый проект на новом стеке технологий?

    @LeonidShifrin
    Разработчик, Wolfram Research Inc. PhD, Physics
    Disclaimer: у меня нет опыта командной работы именно в Python / Django. Но есть опыт одиночной работы в этом стеке, и опыт командной работы в других технологиях (J2EE).

    При следующих условиях:
    • Есть опыт в веб - разработке
    • Команда маленькая (2-3 человека) и уже слаженная
    • Приличный английский (чтобы не было сложностей с чтением документации)
    • Знание Python (хотя бы на промежуточном уровне)
    • Понимание принципов ООП и базовых структур данных
    • Имеется достаточное время на разработку, включая время требуемое на обучение технологии и приобретение начального опыта
    • И главное, большое желание осваивать новое, и понимание, что это может потребовать работы сверхурочно, по крайней мере вначале


    я бы попробовал. Для сколько-нибудь сложного проекта, Django в долговременной перспективе даст большие преимущества. Вашей компании в итоге проект весьма вероятно обойдется дешевле по ряду причин:

    • Легче найти компетентных разработчиков - пусть их меньше в Python, но средний уровень у них будет выше, чем в Php. Весьма вероятно также, что потребуется меньше разработчиков в команду.
    • Код гораздо лучше масштабируется, за счет средств как Python, так и Django
    • При правильной работе и развитии проекта, меньше шансов что он превратится в неподдерживаемую кашу. С кодом легче будет работать, отлаживать, добавлять новый функционал
    • Весьма вероятно, что багов и прочих косяков будет существенно меньше


    Вы тоже получите немало - сможете в рабочие часы вырасти как разработчик, и освоить современный язык / фреймворк / стек.

    Бояться разных проблем и граблей я бы не стал. Сейчас на Stack Overflow можно найти ответ практически на любой вопрос или возникшую проблему. Опыт быстро наберете в процессе, если работать на совесть. Есть прекрасные книги, где обсуждаются лучшие практики, тонкие места, и др. По личному опыту могу сказать - когда "наберете скорость", даже в одиночку можно работать в Python / Django очень быстро. У меня, правда, был уже большой опыт в других языках (в том числе функциональных), это сильно помогало с архитектурой. Я не сомневаюсь, что в Python при желании можно писать такой же код, как и в Php. Поэтому одним из самых больших препятствий может стать необходимость менять стиль мышления и отказываться от шаблонов, привычных по Php.

    Именно поэтому, в частности, требуется достаточное время, по крайней мере для начальной фазы проекта. Если у начальства есть понимание, что переход на новую технологию сопряжен с дополнительными затратами времени, и вначале могут быть сбои и ошибки, то я бы особо не раздумывал. Если же проект должен быть сделан в кратчайшие сроки и сразу начисто (т.е. у него не будет фазы "бета" или прототипа), то тогда да, нужно подумать. В общем, все сводится к тому, будет ли проект достаточно сложным по функционалу, настроено ли начальство на стратегию или на тактику, и настроены ли Вы и Ваша команда на весьма серьезные усилия, или нет.
    Ответ написан
    8 комментариев