Добавлю и я свои 5 копеек:
1) Движки/фреймворки/CMS и т.п. пишут обычно очень
"ленивые" программисты. Если же ты тащишься от стука клавиатуры, гордишься тем, что можешь кодировать мегабайты кода за месяц, то тебе они просто не нужны
.
2) Движки/фреймворки/CMS и т.п. разрабатываются для конкретных нужд. Разработчики вышеприведенного софта обычно так начинают описывать историю создания своих пакетов:
Я задолбался/
Мне надоело делать [здесь у каждого свое] каждый раз
заново
3) Есть много пакетов, которые не ООП и не используют паттерн MVC. Хорошо это или плохо трудно сказать. Самое главное то, что они, т.е. разработчики, нашли самую подходящую архитектуру софта для решения именно
своих проблем
Из своего опыта могу добавить, что я задолбался писать админки и надумал написать свой движок именно для написания админок. Поскольку в то время я был начинающим веб программистом и очень самоуверенным, то первая версия была ужасной (я это только потом понял) и помогала создавать только самые простые админки. Как только мне надоело писать костыли для своего движка, я начал писать вторую версию движка. Поскольку к этому времени я немножко поумнел и допер до мысли, что нужно выбрать правильную архитектуру движка, то решил просто позаимствовать ее, т.е. архитектуру, из других пакетов. Мне повезло, что я наткнулся на книгу "JavaServer Faces in Action" автора Kito D. Mann. В этой книге я нашел ответы на почти все интересующие меня вопросы по требуемой архитектуре для моего движка.
Из этой книги я узнал:
- каким образом должен обрабатываться веб запрос (The Request Processing Lifecycle)
- какие компоненты/классы мне нужны (JSF fundamentals)
- вариант паттерна MVC именно для веб приложений и как они, т.е. Model – View - Controller взаимодействуют между собой ) (
She’s a Model 2)