Когда программист программирует, он начинает разбивать код на модули только потому, что имеет ограничение в своем неокортексе на количество одновременных элементов в памяти. А я ведь когда-то писал на ассемблере, и легкой прогулкой это никак нельзя было назвать, в основном из-за простыней однообразного кода, в котором было легко потеряться.
Из этого ограничения появились концепции ООП. Но с ООП тоже беда. Увеличивается количество уровней абстракции. И тогда в большом проекте удержать всю идею в голове становится невозможно. Функционального подхода к разработке это тоже касается, но в меньшей мере. В Clojure, например, гораздо более выразительно и логично можно бить код на куски.
Для этого есть:
1. Конечно, функции.
2. Неймспейсы.
— —
3. Неймспейсы (читай файлы) легко и непринужденно раскладываются по каталогам.
Таким образом добиться стройности приложения можно ставя себе такие же ограничения как и у нашего неокортекса.
- Не более 7 строк на функцию.
- Не более 7 функций в неймспейсе (модуле).
- Не более 7 модулей в каталоге.
И это сделать легче, чем кажется. В какой-то момент это становится привычкой и второй натурой.
Кстати, если вы дочитали до этого места и вам все еще интересно узнать про Clojure, 2 сентября в Rails Reactor мы делаем Clojure Workshop https://paper.dropbox.com/doc/Kyiv-Clojure-Workshop-3-2.09.17-HLAuCpI8GjWHUtI9ScRy1 приходите.
А вот чем помочь ООП даже не знаю. Господь, жги :)