понедельник, 10 января 2011 г.

Мартин Фаулер, Шаблоны корпоративных приложений

Книжка на озоне

С некоторых пор у нас на работе закупают проф. литературу по просьбам программистов, кому что нужно / хочется прочитать. Попала в мои руки и эта книжка. В русском издании 2010 года.

Прочитал. Читал несколько месяцев, с хрипом и одышкой. Однако, после прочтения появилось ощущение, что я немножко лучше понял Дао :). Рекомендую.







Коротко,

Плюсы:

  • Одна из немногих книг по Enterprise разработки, которая не привязана к определенным технологиям, таким как EJB, Corba, Struts, ADO.NET и прочие. Тем самым позволяет концентрироваться на паттернах, а не на идиомах.
  • Хорошая подборка из более чем 40 паттернов. For reference. Описаны многие вещи, которые где-то краем уха слышал, а обобщить/проработать глубоко и системно как-то не получалось. Например - паттерны Active Recods, Table/Row Data Gateway и прочие.
  • Есть интересный материал по концепциям и реализации ORM. Очень полезно как для тех,  кто привык писать все через его величество Hibernate / Apache Cayene / iBatis, так и для тех, кто в силу разных причин использует (или пишет) свой собственный ORM. Вообще говоря, если вы пишете свой ORM, вам надо прочитать этот пост - Неделя борьбы с велосипедизмом :). В часности, описаны различные способы примирить один из столпом ООП -наследование - с реляционной алгеброй. Single table inheritance, class table inheritance и все такое. Я в который раз порадовался, что мы в своем проекте успешно обходимся (уже 7 лет как) без наследования вовсе (в пределах доменной модели).
  • Хорошо описаны паттерны трекинга состояния сеанса и оптимистичных / пессимистичных блокировок.
  • Помимо прочего, между делом часто просто, коротко и доступно описываются такие не всем известные вещи, как thread-local register, separated interface, special case и прочие.
  • Примеры даны как на Java, так и на C#.
  • Автор не преподносит свои идеи как догмы, а напротив, все время философски указывает, что "я скорее склонен делать это так, однако другие решения так же могут работать", "никто не знает вашу задачу лучше вас, поэтому решайте сами", "возможно в течении нескольких ближайших лет все в этой области изменится."
Минусы:

  • Написано довольно сложным языком, "толстовские" длиннющие предложения, обилие метафор и прочее.
  • Написана в 2003 году, соответственно, не описаны современные достижения и технологии в этой сфере (чуть менее чем все), нет примеров того, как те же паттерны ORM используются в современных инструментах и библиотеках.

Комментариев нет:

Отправить комментарий