Рецензии на книгу
"Шаблоны корпоративных приложений (Signature Series)"
24.01.2006
RSDN.RU
Николай Гребенщиков
http://www.rsdn.ru/res/book/prog/architect.xml
Вот он гуру. Гуру объектно-ориентированного программирования. Мартин Фаулер один из моих любимых писателей, которые работают в области информационных технологий и программирования. Чего только стоят его книги посвященные UML и рефакторингу! Данная книга посвящена особенностям архитектур корпоративных приложений. Автор выставляет на суд читателя свой опыт и опыт других программистов в создании бизнес-систем. В книге описываются основные типовые архитектурные проблемы, способ решения которых оказывает значительное влияние на дальнейшую разработку системы. В круг таких проблем стоит отнести следующие: декомпозиция системы, отображение объектной архитектуры в реляционные базы данных, управление параллельными заданиями и организация распределенных вычислений. Мне нравятся книги посвященные паттернам (типовым решениям). Чтение такой книги сродни беседе с коллегой за бутылочкой пива в непринужденной обстановке. Когда вы можете обменяться мнениями на предмет, как кто решает те или иные проблемы, возникающие в процессе разработки. Читая "Архитектуру корпоративных программных приложений", я порой то восклицал от удивления красоты решения или пролистывал страницу за страницей, сознавая, что использую такие же решения практически каждый день. Правда, иногда хотелось даже возразить Мартину: "Я делаю это по-другому, и мое решение ничуть не хуже!".
Книги Мартина Фаулера, и данная книга в частности, отличаются невообразимой простотой изложения. И не только изложения. После прочтения материала все время возвращаешься к мысли, что объектно-ориентированный анализ и проектирование оказываются проще, чем кажутся со стороны.
25.07.2005
Николай Гребенщиков
Николай Гребенщиков
http://www.grebenshikov.ru/written.phtml?a=1&id=111
Вот он гуру. Гуру объектно-ориентированного программирования. Мартин Фаулер один из моих любимых писателей, которые работают в области информационных технологий и программирования. Чего только стоят его книги посвященные UML и рефакторингу? Данная книга посвящена особенностям архитектур корпоративных приложений. Автор выставляет на суд читателя свой опыт и опыт других программистов в создании бизнес-систем. В книге описываются основные типовые архитектурные проблемы, способ решения которых оказывает значительное влияние на дальнейшую разработку системы. В круг таких проблем стоит отнести следующие: декомпозиция системы, отображение объектной архитектуры в реляционные базы данных, управление параллельными заданиями и организация распределенных вычислений. Мне нравятся книги посвященные паттернам (типовым решениям). Чтение такой книги сродни беседе с коллегой за бутылочкой пива в непринужденной обстановке. Когда вы можете обменяться мнениями на предмет, как кто решает те или иные проблемы, возникающие в процессе разработки. Читая «Архитектуру корпоративных программных приложений», я порой то восклицал от удивления красоты решения или пролистывал страницу за страницей, сознавая, что использую такие же решения практически каждый день. Правда, иногда хотелось даже возразить Мартину: «Я делаю это по-другому, и мое решение ничуть не хуже!».
Книги Мартина Фаулера, и данная книга в частности, отличаются невообразимой простотой изложения. И не только изложения. После прочтения материала все время возвращаешься к мысли, что объектно-ориентированный анализ и проектирование оказываются проще, чем кажутся со стороны.
06.10.2004
Открытые системы (портал)
Г.И. Рузайкин
http://www.osp.ru/os/2004/05/062.htm
Появление книги Мартина Фаулера, названной в переводе «Архитектура корпоративных программных приложений», следует выделить, как заметное событие в мире литературы по программированию.
Представляя данную работу, следует обратить внимание на то, что, хотя в заголовке оригинала книги акцент сделан на слове patterns, при переводе оно опущено, а ведь около двух третей объема посвящено именно им. Поэтому читатель, идентифицирующий книгу по заглавию, может быть дезориентирован. Как пишет автор: «В книге делается попытка представить подобные проектные подходы в виде типовых решений (patterns)», — которые, в первую очередь, касаются разработки корпоративных приложений, причем большинство описаний типовых решений сопровождается примерами кода. Вот как автор обозначает основные темы книги: «расслоение» приложений по уровням; структурирование логики предметной области; разработка пользовательского Web-интерфейса; связывание модулей, размещаемых в памяти (в частности, объектов), с реляционной СУБД; принципы распределения программных компонентов и данных».
Книга предназначена для тех, кто проектирует и создает архитектуру корпоративных приложений, а также стремится «улучшить качество принимаемых стратегических решений». Фаулер представил материал своей работы в виде двух частей: обзора, где излагает свои установки, и описания типовых решений, в которой приводится опыт проектировщика. Для оформления книги использован язык XML и связанные с ним технологии и инструменты: редактор TextPad, шаблоны определения типа документа DTD (Document Type Definition), для генерации HTML-страниц язык XSLT, а для построения диаграмм — Visio, пополненный UML-шаблонами.
На протяжении обеих частей книги автор с разных сторон рассматривает понятие «корпоративное приложение» — программное обеспечение с набором характерных черт. Так, например, к корпоративным приложениям «относятся бухгалтерский учет, ведение медицинских карт пациентов, экономическое прогнозирование, анализ кредитной истории клиентов банка и т. п.», но ими «не являются средства обработки текстов, регулирования расходов топлива в автомобильном двигателе, управления лифтами и оборудованием телефонных станций» и многое другое.
Придерживаясь при разработке корпоративных приложений их соотнесения к различным слоям (по предназначению), автор сделал акцент на архитектуре из трех слоев: представление (presentation), например, услуги, отображение данных, обслуживание запросов HTTP и т.п.; домен (domain) или предметная область, бизнес-логика и источник данных (data source). При рассмотрении структуры логики предметной области приложения в книге рассматриваются три типовых решения: сценарий транзакции, модель предметной области и модуль таблицы. Роль слоя источника данных состоит в обеспечении взаимодействия приложения с компонентами инфраструктуры, главным при этом является база данных. Отдельная глава книги посвящена представлению данных в Сети.
Особая роль корпоративного приложения в управлении параллельными заданиями также стала предметом внимания автора. Обзор этого круга вопросов завершается рассмотрением различий не только между системными и бизнес-транзакциями, но и сеансами с сохранением промежуточного состояния и «без состояния», а также необходимости учета стратегии распределенных вычислений.
Пожалуй, наиболее интересной в первой части книги является восьмая глава, в которой автор рассматривает представление о КП с точки зрения увязывания при проектировании действий в слое представления и шагов по описанию предметной области, подключению к источнику данных. Разумеется, полезны авторские комментарии, хотя и беглые, по выбору программной платформы и инструментов, а также сравнения с другими моделями слоев для корпоративных приложений.
Часть вторая включает материалы о типовых решениях — в них читатель найдет и конкретные результаты, в том числе содержащие примеры кодов. Здесь имеются решения по представлению бизнес-логики, архитектурные для источников данных, объектно-реляционные для моделирования поведения и структуры, а также типовые решения с использованием метаданных.
Завершая представление этой интересной и полезной книги, хочу обратить внимание на недостатки. Автор представил корпоративные приложения в рамках весьма распространенной концепции промежуточного программного обеспечения. Но весьма трудно найти верный взгляд на систему в целом и, тем более, пытаться ею управлять если не ясны связи с рабочими местами, если нет модели системы. Кроме этого, использование термина «вычисления» при игнорировании алгоритмических и вычислительных аспектов трудно признать состоятельным. И дело не в том, что это предмет другой книги — читателю полезно понимать, как будут взаимодействовать его корпоративные приложения с программным обеспечением рабочих мест и как выстраивать управление вычислениями, которое не будет эффективным, если ограничиться лишь настройками корпоративных приложений. Ну и, разумеется, знание системной модели — а не только бизнес-логики — может в значительной мере влиять на корпоративные приложения.