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