Сообщений 20 Оценка 116 Оценить |
Framework Design Guidelines, Second Edition, teaches developers the best practices for designing reusable libraries for the Microsoft .NET Framework. Expanded and updated for .NET 3.5, this book new edition focuses on the design issues that directly affect the programmability of a class library, specifically its publicly accessible APIs.
This book can improve the work of any .NET developer producing code that other developers will use. It includes copious annotations to the guidelines by 36 prominent architects and users of the .NET Framework, which provideproviding a lively discussion of the reasons for the guidelines as well as examples of when to break thosee guidelines.
Microsoft architects Krzysztof Cwalina and Brad Abrams teach framework design from the top down. From their long significant combined experience and deep insight, you will learn:
Guidelines in this book come in four major forms: Do, Consider, Avoid, and Do not. These directives help focus attention on practices that should always be used, those that should generally be used, those that should rarely be used, and those that should never be used. In general, a Do guideline should almost always be followed, a Consider guideline should generally be followed, an Avoid guideline indicates that something is usually not a good idea, and a Do not guideline indicates something you should almost never do. Every guideline includes a discussion of its applicability, and most include a code example to help illuminate the dialogue.
Одним из главных достоинств объектно-ориентированного программирования является возможность повторного использования кода. Выполняя один проект за другим, команда разработчиков накапливает опыт в предметной области и обрастает различными вспомогательными классами, облегчающими решения повседневных задач. И даже, когда код повторно используется всего в нескольких местах, разработчики понимают, что к такому коду предъявляются уже совсем другие требования. Если при разработке приложений основной акцент делается на простоту сопровождения внутренней реализации, то при разработке библиотек он смещается в сторону простоты и удобства использования, даже за счет пренебрежения некоторыми идеями объектно-ориентированного проектирования. Кроме этого, разработка библиотек требует от команды разработчиков совершенно другого подхода ко всему циклу разработки, начиная от анализа требований и составления функциональной спецификации, заканчивая комплексным тестированием. Книга содержит множество правил, рекомендации и предостережений, которые нужно учитывать при создании библиотек, а аннотации таких известных людей, как Джеффри Рихтер, Крис Селлз, Андерс Хейлсберг, Герб Саттер и других, придают некоторую живость обсуждению и помогают лучше понять то, или иное правило.
"Пожалуйста, не придумывайте ничего нового при проектировании библиотек. Создавайте интерфейс своих библиотек настолько неинтересными насколько это возможно. Интересной должна быть функциональность библиотек, а не ее интерфейс"
Chris Sells
Помимо очевидной пользы всем, кто занят в разработке повторно-используемых компонентов, книга будет полезна и простым разработчикам. Важно понимать, что каждый язык или среда разработки обладает собственной субкульторой, следовать которой нужно не только при разработке крупных библиотек, но и при разработке приложений. Согласованное именование, применение устойчивых шаблонов и идиом во всех ваших проектах позволит значительно упростить реализацию и последующее сопровождение. Авторы касаются множества различных вопросов, таких как выбор между свойствами и методами, между базовыми классами и интерфейсами, событиями и методами обратного вызова, рассказывают о проблеме изменения значимых типов и о выборе между разными типами сериализации. Отдельно стоит отметить замечательную главу об исключениях. Хотя этой теме уделяется достаточное внимание в литературе, исключения остаются одной из наиболее сложных и малопонятных тем для большинства разработчиков.
"Издатели говорят, что количество проданных копий книги обратно пропорционально количеству формул в ней. Для разработчика библиотек версия этого закона следующая: количество пользователей, которые будут использовать вашу библиотеку обратно пропорционально количеству операторов new, необходимых в простых сценариях использования"
Krzysztof Cwalina
Книга будет полезна любой команде разработчиков на платформе .Net, не зависимо от опыта и сложности решаемых задач. Даже если в вашей команде есть опытный гуру-разработчик, который знает все эти правила на зубок, книга может послужить хорошим учителем для менее опытных разработчиков. Книга может непосредственно использоваться в качестве корпоративного стандарта разработки или послужить основой для ее создания, а при наличии таких инструментов, как FxCop, эти стандарты могут автоматически проверяться у всех участников проектной команды.
Оценка: Must Have.
Сообщений 20 Оценка 116 Оценить |