TGViewer
Книжный куб Книжный куб @book_cube · 15.8K subscribers
Post #1374 1.6K
Patterns of Enterprise Application Architecture (Шаблоны корпоративных приложений)

Классическая книга начала века (2002 год) от Мартина Фаулера, которую есть смысл почитать и в наши дни:) Она появилась через 8 лет после книги "Design Patterns" и обобщила подход к паттернам на уровень архитектуры целых приложений. Сама книга про паттерны корпоративных приложений состоит из двух частей: the narratives и the patterns.

1. The Narratives - здесь рассматриваются общие темы
- Layering - здесь авторы рассказывают про разделение на уровнни для борьбы со сложностью программного обеспечения. Основная суть в том, чтобы каждый уровень предоставлял определенную абстракцию посредством интерфейса и уровни взаимодействовали друг с другом через эти интерфейсы. Тут как обычно идет отсылка к сетевой модели OSI и TCP/IP. Здесь же автор рассказывает про 3 принципиальных уровня в корпоративных приложениях: data source, domain, presentation.
- Organizing Domain Logic - здесь автор рассказывает про организацию доменной логики и спойлерит 3 паттерна из второй части: transaction script, domain model, table module. Дальше он их сравнивает между собой и показывает границы применимости. Дальше он рассказывает про service layer, который часто размещают поверх domain model или table module. Дальше уровень представления взаимодействует с доменным уровнем через этот service layer
- Mapping to Relational Databases - здесь речь идет про то, как быть с данными. И на сцену выходят паттерны навроде table data gateway, active record и data mapper. Здесь же обсуждаются вопросы как маппить структуры из реляционных баз данных на модель классов и объектов внутри приложения и как быть конкретно с наследованием
- Web Presentation - здесь автор рассказывает про паттерн MVC (model-view-controller), который был когда-то популярен. Сейчас эта глава выглядит как раритет:)
- Concurrency - краткий рассказ про проблемы конкурентности, execution context, изоляцию и иммутабельность, оптимистичные и пессимистичные блокировки, дедлоки, а также транзакции (и конечно же ACID).
- Session State - здесь речь идет про хранение сессионного состояния на сервере
- Distribution Strategies - про распределенные объекты (distributed object system), которые почили в бозе вместе с CORBA:) Но тут есть актуальные мысли про DTO (data transfer objects) и lazy load.
- Putting It All Together - авторы рассказывают как использовать все описанное выше: стартовать с domain layer, переходить к data source layer и дальше двигаться в сторону presentation layer. Дальше они говорят про конкретные технологии, навроде, J2EE и это звучит приветом из прошлого.

Продолжение в следующем посте.
  • ❤ 10
  • 👍 6
  • 🔥 1
More from @book_cube
  1. Oct 14, 2026Post #5067
  2. Oct 14, 2026Обновление по сегодняшнему прямому эфиру с Павлом Голубевым, Principal FDE Manager в Micro…
  3. Oct 14, 2026AI и платформа данных — материалы выпуска №37 Research Insights Made Simple (Рубрика #Data…
  4. Oct 13, 2026Материалы выпуска 3 AImigo S1E9: границы автономности (Рубрика #AI4SDLC) Собрал материалы…
  5. Oct 13, 2026Заходите на прямой эфир с разбором сентябрьской статьи про проектирование обвязки агентов,…
  6. Oct 13, 2026Factory: инженеры становятся менеджерами — а кто тогда остаётся инженером, способным прове…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →