Мы находимся в процессе планирования переписывания одного из наших основных приложений. Это веб-интерфейс, и мы заперты в PHP. Однако это не сайт Web 2.0. Это ближе к корпоративному приложению.
Это ни в коем случае не просто. Есть как минимум 2 основных интерфейса (я думаю, что есть 4, но это другая тема). Он должен быть как настраиваемым, так и настраиваемым. Я ожидаю от 50 до 200 установок в год, поэтому простота обслуживания является серьезной проблемой.
Итак, проблема в архитектуре. Сначала я хочу сделать формальную архитектуру высокого уровня. Прежде всего. После этого мы либо выберем подходящий фреймворк (тот, который соответствует архитектуре), либо выберем один близкий и используем его как набор библиотек. Я чувствую, что эта методология будет гарантировать работоспособность системы в долгосрочной перспективе (поскольку рассматривается как минимум полная архитектура)
Однако остальная часть команды хочет сначала выбрать структуру (они хотят использовать YII) и полностью пропустить архитектуру высокого уровня. Их аргумент заключается в том, что фреймворк первым сделал архитектуру высокого уровня и позволяет вам «просто начать кодирование».
По сути, я думаю, что это все равно что поставить телегу перед лошадью или построить свой дом без фундамента на вершине грязевой ямы. Я знаю, что эта точка зрения популярна в дни быстрой разработки приложений после ROR, так как больше можно сделать быстрее. Но я действительно боюсь, что для критически важного основного приложения оно в лучшем случае недальновидно (а в худшем случае небрежно).
Я действительно боюсь, что мы идем по неверному пути.
Менеджмент считает меня старшим разработчиком. Так что технически я могу отменить большинство других. Но я не выше их, поэтому на практике это было бы плохо. Следует отметить, что существует серьезный языковой барьер (они говорят по-польски, я говорю по-английски).
И я должен отметить, что мне действительно не нравятся большинство сред RAD PHP. Не потому, что они плохие, а потому, что они (ИМХО) навязывают менталитет, что архитектура не важна, поскольку они делают это для вас. Не говоря уже о том, что они, как правило, хотят, чтобы вы работали по-своему (Rails славится этим), а не как способ, который имеет смысл для данного проекта. Поэтому я обычно использую фреймворк только как набор библиотек. Использование классов, когда они имеют смысл, и создание собственных, когда этого требуют требования проекта.
Итак, мои вопросы таковы:
- Прав ли я в своей заботе? Или они правы, и я просто чрезмерно реагирую?
- Если я прав, есть ли совет, как справиться с ситуацией?
- Как я могу получить команду на свою сторону без мятежа?