понедельник, 29 июня 2009 г.

Книга “Framework Design Guidelines” 2nd edition by Krzysztof Cwalina and Brad Abrams

Одним из главных достоинств объектно-ориентированного программирования является возможность повторного использования кода. Выполняя один проект за другим, команда разработчиков накапливает опыт в предметной области и обрастает различными вспомогательными классами, облегчающими решения повседневных задач. И даже, когда код повторно используется всего в нескольких местах, разработчики понимают, что к такому коду предъявляются уже совсем другие требования. Если при разработке приложений основной акцент делается на простоту сопровождения внутренней реализации, то при разработке библиотек он смещается в сторону простоты и удобства использования, даже за счет пренебрежения некоторыми идеями объектно-ориентированного проектирования. Кроме этого, разработка библиотек требует от команды разработчиков совершенно другого подхода ко всему циклу разработки, начиная от анализа требований и составления функциональной спецификации, заканчивая комплексным тестированием. Книга содержит множество правил, рекомендации и предостережений, которые нужно учитывать при создании библиотек, а аннотации таких известных людей, как Джеффри Рихтер, Крис Селлз, Андерс Хейлсберг, Герб Саттер и других, придают некоторую живость обсуждению и помогают лучше понять то, или иное правило.

"Пожалуйста, не придумывайте ничего нового при проектировании библиотек. Создавайте интерфейс своих библиотек настолько неинтересными насколько это возможно. Интересной должна быть функциональность библиотек, а не ее интерфейс"

Chris Sells

Помимо очевидной пользы всем, кто занят в разработке повторно-используемых компонентов, книга будет полезна и простым разработчикам. Важно понимать, что каждый язык или среда разработки обладает собственной субкульторой, следовать которой нужно не только при разработке крупных библиотек, но и при разработке приложений. Согласованное именование, применение устойчивых шаблонов и идиом во всех ваших проектах позволит значительно упростить реализацию и последующее сопровождение. Авторы касаются множества различных вопросов, таких как выбор между свойствами и методами, между базовыми классами и интерфейсами, событиями и методами обратного вызова, рассказывают о проблеме изменения значимых типов и о выборе между разными типами сериализации. Отдельно стоит отметить замечательную главу об исключениях. Хотя этой теме уделяется достаточное внимание в литературе, исключения остаются одной из наиболее сложных и малопонятных тем для большинства разработчиков.

"Издатели говорят, что количество проданных копий книги обратно пропорционально количеству формул в ней. Для разработчика библиотек версия этого закона следующая: количество пользователей, которые будут использовать вашу библиотеку обратно пропорционально количеству операторов new, необходимых в простых сценариях использования"

Krzysztof Cwalina

Книга будет полезна любой команде разработчиков на платформе .Net, не зависимо от опыта и сложности решаемых задач. Даже если в вашей команде есть опытный гуру-разработчик, который знает все эти правила на зубок, книга может послужить хорошим учителем для менее опытных разработчиков. Книга может непосредственно использоваться в качестве корпоративного стандарта разработки или послужить основой для ее создания, а при наличии таких инструментов, как FxCop, эти стандарты могут автоматически проверяться у всех участников проектной команды.

Оценка: Must Have.

4 комментария:

  1. Книга «Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition (Microsoft .NET Development Series)» by Krzysztof Cwalina and Brad Abrams

    выходит на русском языке в издательстве Вильямс. Смотрите мой блог-издателя.

    ОтветитьУдалить
  2. Спасибо, Виктор Николаевич.
    Единственное, на что хочется обратить внимание, так это на качество перевода. Судя по переводу названия книги следующим образом: "Принципы разработки инфраструктуры проектирования: соглашения, идиомы и шаблоны для повторного использования библиотек .NET", появляются серьезные опасения за качество перевода, т.к. идея названия передана неверно.
    Некоторое время назад я отправлял на Ваш электронный адрес и на адрес издательства свое резюме на должность технического редактора, но ответа не получил. Сегодня я отправил его снова.
    Мне очень нравятся книги, которые Вы издаете, но качество перевода и количество опечаток несколько остужает этот пыл. Я бы с удовольствием помог бы Вашему издательству в повышение качества издаваемого материала, поэтому прошу рассмотреть мою кандидатуру на должность технического редактора.

    ОтветитьУдалить
  3. Эта книга на русском так и не вышла в свет?

    ОтветитьУдалить
  4. По словам Виктора Штонды эта книга должна выйти в сентябре 2010 (т.е. сейчас) и поступить в продажу в октябре. Так что ждемс...

    З.Ы. Надеюсь название книги таки поправили:)

    ОтветитьУдалить