Стоит ли начинать новый проект на новом стеке технологий?

Добрый день, вскоре начинаем новый проект, начальство не против эксперимента - то есть выбор технологии на чем делать за мной, плюс ещё один человек будет работать над этим проектом и тоже хочет современного и хорошего.
Старый проект (PHP: Kohana, MySQL) - мешанина кода в контроллерах, нет нормальной ORM, объектов, большинство данных передаются в ассоциативных массивах и потом это всё сохранятся через билдер запросов, нет тестов и т.п. То есть тот самый код про который пишут "умение разбираться в чужом коде".
Я сам с радостью начал бы его на Django, т.к. есть знания в теории и языка и фреймворка, но терзают сомнения что тяжеловато будет, особенно двоим.
Разум говорит начинать на Laravel, т.к. по нему полно документации на русском, плюс язык PHP, в котором уже есть наработанный опыт и активное комьюнити.
Понимаю что надо делать на том что лучше всего знаешь, но таким образом ничего нового и не узнать, поэтому и интересно - стоит ли овчинка выделки? Может у кого есть опыт миграции всей командой с одного стека на другой и какие трудности при этом возникали?
  • Вопрос задан
  • 1076 просмотров
Решения вопроса 1
@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.

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

если нет убедительных мотивов менять стек - делайте на том, что знаете,
до определенного предела PHP вполне хватает, а с Django внедрение новых фич упрется в отсутствие опыта

если же начальство и контора от создаваемого особо не зависит ( типа сайт школы) - можно и в изучение нового поиграть
Ответ написан
Комментировать
@Elizavetta
Matroid: gamedev/js-разработка
Если сроки критичны - Laravel, если вам дали картбланш на освоение нового с учетом рисков по времени и возможных багов - Django.
Ответ написан
Комментировать
sim3x
@sim3x
Стоит начать делать на двух технологиях и сравнивать в процессе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы