Веб сервис лучше разрабатывать с нуля или взять за основу какой-нибудь продукт?
Планируется разработать веб сервис, где клиент заполняет форму, вводя необходимые данные и свой емейл. На последнем шаге оплачивает через робокассу. В админке двум-трем исполнителям распределяются эти заказы. Ну и по нарастающей нужно будет добавлять функционал, который не входит в это мини описание.
Вопрос: что лучше, заказать разработку с нуля на фреймворке или взять за основу какую-нибудь систему с открытым исходным кодом и минимум функционала, например Helpdesk систему?
Лучше на готовой системе — функционал не мудреный, а ввиду дальнейшего увеличения функционала, скорее всего половина его уже будет в готовой системе и все равно все скатится к готовому решению.
Минусующим: зря.
По вопросу понятно, что будет некая помесь проект-менеджера, с гарантийным сервисом и тикетницей как минимум.
Делать с нуля, это значит что большинство чихов, которые уже реализованы в приличном хелпдеске — придется велосипедировать. Ответ в тикет через почту, вложенные комментарии, система прав, диспуты, занесение данных хостинга, аплоад результата, какой-нибудь форум-обсуждалка, контентная часть. Проще взять где все это уже есть и дописать к этому недостающее.
Тем более что большинство готовых систем сейчас и так основаны на фреймворках, поэтому фактически готовая система будет уже беспроблемным решением на многие вопросы которые еще даже не задавались с одной стороны, а с другой стороны не будет мешать реализовывать что-то, что еще не сделано.
Знаете, часто приходится велосипедировать на готовых решениях, а именно к чертям снося всю ненужную мешающую мишуру. До такого состояния, что проще было бы изначально написать с нуля.
Зависит от того является ли эта готовая система модульной и как эта модульность реализована в ней. Если все ОК, как правило расширение функционала сводится к написанию новых модулей системы. Однако, как бы там ни было, своя система все равно понадобится, так как готовые решения тяжелее масштабировать, без серьезных изменений в исходном коде, а это уже не айс. Поэтому я бы посоветовал такую стратегию действий:
1) Разработать 'minimum viable product' на готовом движке для то, что называется 'proof of concept'.
2) Если идея полетела, написать свою систему и осуществить миграцию.
Плюсы такого подхода очевидны:
1) Быстрее и с меньшими затратами стартануть. Если не выстрелит будет не так обидно.
2) Писать заточенную систему уже после того, как ее понимание было сформированно в процессе построения сервиса на готовом движке. Это убережет от многих ошибок в проектировании.