Мы просто по разному понимаем этот принцип. У вас это по возможности упростить
сложно спректированную систему, у меня - писать изначально просто.
Вот я давл ссылку на хабр, чего не прокомментировли? А ведь именно это я имел ввиду.
Вы проектируете систему так, чтобы потом было можно двумя строчками изменить поведение всей системы. Пишете абстрактные классы, применяете кучу паттернов и так далее.
Ну и соответственно покрываете ситему юнит-тестами. А как иначе, ведь может случиться непоправимое, какой-нибудь баг вылезет на другом конце.
А, да, забыл. В процессе активно используете принцип KISS где можно, а то система может усложниться до неприличия.
Тут важный момент, лирическое отступление. Объем кода не эквивлент сложности. Вы стараетесь избежать большого объема, именно на это и ориентирован один из принципов ООП: избежать повторов.
Ну и хорошо, просто замечтельно. Кто же станет оспаривать плюсы данного подхода.
Только если копнуть поглубже... А ради чего экономить? Не, раньше да, шла борьбаа за каждый байт, когда программы хранились на трехдюймовых дискетах. Сейчас ради чего?
И еще, самые популярные архитектуры на сегодняшний день представляют веб-приложение как цельную программу. Ну любой фреймворк к примеру взять. А ведь по сути для формировния странички работает только часть. А это значит, что такая архитектура для веб не совсем подходяща. И тут дело не в экономии опертивки и не в быстродействии даже. Тут дело именно в простоте.
По сути то, что я делю, очень похоже на ТТУК. Только там не совсем контроллеры. Принцип прост - не система первична, а именно контроллер. Я для себя называаю это модулем, так как он может состоять из нескольких файлов. Но не суть. Система только выбирает модуль, все остальное делется автономно. Никаких моделей, все в контроллере (модуле).
Да, я не боюсь копипасты. На самом деле это проще чем разрабатывать охрененную архитектуру с универсальными классами.
Да, я не боюсь рефакторинга. Потому что
опыт показывает, что глобальные изменения в системе быаают не чаще, чем солнечное затмение. А поправить локальный код куда проще, если там нет ничего лишнего.
Да, я не боюсь пересечения пространств имен. Ибо у меня никогда не работаают два модуля одновременно. Если и есть какие то общие функции или классы, они просто выносятся в библиотеку. Их на самом деле быает не так много. Обычно функции нужны в модуле и только там. Причем я не гнушаюсь писать две почти одинаковые функции в разных модулях, даже с одинаковыми названиями, чтобы небыло той самой связанности. И опять же
по опыту крайне редко приходится что то менять на нескольких страницах.
А вот изменять что-то в универсльном классе так, чтобы не задеть остальные места сложнее. И тут да - нужны юнит-тесты. А мне не нужны, ибо затестить отдельный модуль можно без оглядки на всю систему.
Чет я разошелся. Я понимаю, сейчас полетят какшки. Что это говнокод и никто из тру так давно не пишет.
Просто нужно понять философию и станет легче принять это не как застой. А философия проста. Я не смотрю на веб-приложение, как на операционную систему. А смотрю, как на рабочий стол на своем компе. Там куча ярлыков - ссылок. И кааждая страница - отдельная программа. Операционка только помогает выбрать нужную. И есть конечно общий функционал, допустим по аналогии JAVA или NET. Прогрмма может их использовать, но она от этого смостоятельной быть не перестает.
И по этой схеме ООП вообще отодвигается на задворки за ненадобностью. И мой принцип KISS - избавиться от лишнего функционала (абстракции, нследования и т.д.) и сделать каждый модуль максимльно простым и прозрачным. Конечно не без потерь - увеличивется объем кода.
Однако это мой выбор, я готов принести эту жертву ради простоты самой системы. По мне проще так. Открыл файл, сделал что нужно, закрыл файл. Не метаясь по всей системе в поисках моделей, хелперов и прочая. Шаблоны конечно отдельно, предвосхищя вопрос.
Называть это тупостью или застоем - ну ваше право. Мне на это плевать.
И да, это касется
только моих систем, тех, на которых работаю я и моя команда. Не конвеерная штамповка, а продукты, которые мы уже около пяти лет обслуживем. Что касается конвеера - не имел опыта, у нас не студия и уж тем более не артель. Там скорее всего ваш подход более оправдан. У нас есть конвеер, но он штампует однотипные сайты, там только дизйн меняется.
Так что свои теоретические выкладки оставьте при себе пожлуйста, мне они по барабану. И имхо я высказал исходя из своей позиции, не позиционируя это как панацею. Что-то вам пригрезилось.
PS Попытку троллинга про опыт зачел, комментировть не буду - глупо.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.