Общее описание
Книга объёмом чуть более 500 страниц состоит из двух разделов, включающих 18 глав. В ней представлено множество вставок с кодом, диаграммами и схемами. Классических иллюстраций нет. Уровень сложности — что-то между лёгким и средним.
Оглавление
Часть I. Обзор
- Глава 1. Расслоение системы
- Глава 2. Организация бизнес-логики
- Глава 3. Объектные модели и реляционные базы данных
- Глава 4. Представление данных в Web
- Глава 5. Управление параллельными заданиями
- Глава 6. Сеансы и состояния
- Глава 7. Стратегии распределённых вычислений
- Глава 8. Общая картина
Часть II. Типовые решения
- Глава 9. Представление бизнес-логики
- Глава 10. Архитектурные типовые решения источников данных
- Глава 11. Объектно-реляционные типовые решения, предназначенные для моделирования поведения
- Глава 12. Объектно-реляционные типовые решения, предназначенные для моделирования структуры
- Глава 13. Типовые решения объектно-реляционного отображения с использованием метаданных
- Глава 14. Типовые решения, предназначенные для представления данных в Web
- Глава 15. Типовые решения распределённой обработки данных
- Глава 16. Типовые решения для обработки задач автономного параллелизма
- Глава 17. Типовые решения для хранения состояния сеанса
- Глава 18. Базовые типовые решения
Мнение
Сугубо теоретическая книга о программировании, которая местами показалась даже слегка устаревшей. Взял её читать исключительно из-за фамилии автора — Мартин Фаулер уже много лет является популяризатором программирования и опытным программистом.
Книга оставила двоякое впечатление: с одной стороны, здесь разобраны многие популярные паттерны и архитектурные решения, многие из которых десятилетиями не теряют актуальности. С другой стороны, концепции построения современных архитектур за последние годы (а тем более десятилетия) сильно изменились.
Паттерны вроде одиночки, адаптера или слоёной архитектуры с ООП-подходом всё ещё применимы, но современные системы стали более децентрализованными и высоконагруженными. Роль репликаций возросла, кэширование используется повсеместно, а брокеры сообщений стали неотъемлемой частью большинства сложных систем — и всё это практически не рассматривается в книге.
Так что книга с трудом тянет на актуальное руководство по современным приложениям. А учитывая, что сегодня обучающая информация может быть представлена не только в виде сухого текста, пары диаграмм и поясняющего кода, я бы не особо рекомендовал эту книгу к прочтению. Возможно, когда-то она и считалась «классикой» программирования, но сейчас, уверен, есть более современные и менее скучные источники для изучения аналогичного материала.