Patterns & Practices Roadshow в Киеве

12 октябрь, 2009 - 13:29Вячеслав Колдовский

16 сентября в Киеве состоялось знаковое для отечественных разработчиков ПО мероприятие – семинар Microsoft Patterns & Practices (P&P), организованный местным представительством корпорации. Подразделение представляли руководители проекта и его отдельных направлений: Дон Смит (Don Smith), Аджой Кришнамурти (Ajoy Krishnamoorthy) и выходец из нашей страны Григорий Мельник

Patterns & Practices Roadshow в Киеве
Дон Смит (Don Smith), руководитель подразделения Patterns & Practices. Девиз блога Дона во многом отражает принятую в его группе модель проектного процесса Оopen Source: «Задание – король, обязательство – королева»

P&P – это сравнительно небольшое подразделение в рамках Microsoft (число персонала около 30 чел.), состоящее в основном из опытных разработчиков, архитекторов и других технических специалистов, основная задача которых заключается в формировании подходов, позволяющих снижать трудоемкость разработки и сопровождения ПО. На начальных этапах деятельности P&P занималось созданием печатных и онлайновых руководств по шаблонам и архитектуре приложений, но впоследствии, следуя запросам пользователей, дополнило их и программным кодом, собранным в открытую библиотеку Enterprise Library (codeplex.com/EntLib). Впрочем, разработка руководств не прекращается и по сей день, в ближайшее время ожидается выход очередной, третьей редакции «Application Architecture Guide» (проект доступен по адресу: codeplex.com/AppArchGuide).

Вообще, ведение документации проекта заслуживает особого внимания. Хотя бы потому, что обычно в мире Оpen Source это самое слабое звено. В P&P организован стандартный для Microsoft процесс документирования – выделенная команда разработчиков документации, непрерывно взаимодействующая с управлением проектом и программистами. Об эффективности такого подхода лучше всего говорит знаменитое качество информационных ресурсов MSDN, в том числе и относящихся к библиотеке EntLib. Кроме того, специалисты по созданию документации являются равноправными участниками всего проектного процесса, и с помощью анализа руководств и описаний библиотеки иногда даже выявляются ошибки в коде.

Учитывая принадлежность подразделения P&P, результаты его деятельности, безусловно, будут интересны разработчикам, использующим инструменты, платформы и технологии Microsoft, да и сама библиотека EntLib функционирует поверх .NET Framework. Однако вопросы архитектуры приложений и применения шаблонов проектирования сами по себе являются достаточно общими и могут рассматриваться вне какой-то конкретной платформы. Именно поэтому ранее упомянутое руководство «Application Architecture Guide» не ограничивается исключительно технологиями Microsoft и может быть использовано при построении как гетерогенных решений, так и без оглядки на продукты редмондской корпорации вообще. К слову, образовательный аспект проекта – предмет особой гордости команды EntLib. Эффективную систему обучения формируют великолепный уровень документации, не только конкретной, сугубо «привязанной» к собственно библиотеке, но и высокоуровневой, ориентированной уже не столько на кодировщиков, сколько на архитекторов приложений и систем, и, конечно, большое и активное сообщество, немалую часть которого составляют профессионалы. Новички, раньше не имевшие представления о высокоуровневых подходах к проектированию, о нюансах объектно-ориентированного дизайна масштабных приложений, втягиваются в среду разработчиков, для которых все это – обыденность. В итоге, за счет роста квалификации программистов, выигрывает сообщество Оpen Source в целом – ведь из самого главного – идей и приемов, поддержанных исходными текстами эталонной реализации, в проекте Patterns & Practices никто не делает никаких тайн.

О популярности библиотеки EntLib говорит тот факт, что в начале сентября преодолен рубеж в 2 млн ее загрузок – это довольно высокий показатель, если принять во внимание, что число всех профессиональных программистов в мире на сегодня оценивается едва ли в 10 раз больше. Помимо прочего, как подтвердили представители P&P, наличие слова Enterprise в названии библиотеки достаточно условно, и нет какого-либо целенаправленного позиционирования ее сугубо в сторону корпоративных проектов, что подтверждает и тенденция последнего времени к все более широкому использованию библиотеки программистами самого различного профиля. Этому способствует также и ее модульная структура, позволяющая задействовать только те компоненты, которые необходимы в конкретных проектах. Текущая версия состоит из девяти блоков, предлагающих типичные решения для таких распространенных задач, как доступ к данным и проверка их корректности, обработка исключительных ситуаций и ведение журнала, реализация криптографических функций и обеспечение безопасности, кэширование, внедрение политик и управление жизненным циклом объектов. Библиотека распространяется по Microsoft Public License (Ms-PL), которая является самой лояльной из лицензий для открытого кода Microsoft и практически не накладывает ограничений на возможности по использованию кода в различных, в том числе и коммерческих, проектах.

Patterns & Practices Roadshow в Киеве
Григорий Мельник: «Enterprise Library стала очень распространенной и достигла признания. В этом нет ничего удивительного, ведь она основывается на многих одобренных разработчиками .NET практиках, поддержанных исходными кодами, тестами и тренировочными материалами – изобилием повторно используемого и пригодного в качестве учебной парты. Как минимум 10% компаний из Fortune 500 применяют нашу библиотеку, и это только те 10%, о которых мы знаем»

Один из интересных докладов был посвящен организации деятельности непосредственно подразделения P&P. Здесь применяются самые инновационные подходы, в том числе гибкие методы управления проектами, а решения создаются исключительно в ответ на запросы пользователей. К примеру, если речь идет о EntLib, то работа над очередной версией начинается с выявления востребованных функций на основе обсуждений на форумах Codeplex.com и некоторых других источников, далее список функций-кандидатов выставляется на голосование, и уже по его результатам принимается окончательное решение с учетом бюджетных и временныóх ограничений. За форумами следит специальная команда, в обязанности которой, помимо поддержки обратной связи, входит также и оперативная помощь пользователям. Разработка ведется двухнедельными итерациями, по завершению которых обновляется код на домашней странице проекта. Такой подход объясняет также, почему EntLib кое в чем дублирует саму .NET Framework – сообщество нередко требует альтернативной реализации ряда функций платформы. И наоборот, по мере развития самой .NET некоторые элементы EntLib становятся излишними – к примеру, очередная, 5-я версия библиотеки будет своеобразной «зачисткой» от устаревших функций. Таким образом, принцип «сообщество формирует требования, команда их реализует» является гарантом высокого качества кода и исключения революционных ситуаций, от которых могут пострадать в первую очередь не разработчики библиотеки, а создатели использующих ее прикладных программ. Но даже при таком достаточно строгом подходе творческий потенциал участников сообщества, не входящих в основную команду разработчиков, фактически ни в чем не ограничивается. Больше того, для развития библиотеки силами сообщества в рамках P&P предусмотрен проект EntLib Contrib – библиотека расширений к EntLib, включающая, например, модули доступа к данным конкретных популярных СУБД (MySQL, SQLite). Саму организацию работы участников проекта EntLib Contrib в какой-то мере можно считать достойным учебником для многих начинающих Оpen Source проектов – здесь используется как достаточно строгое распределение ролей (анонимного и зарегистрированного участников проекта, редактора, разработчика, координатора), так и четко определенная структура возможностей для участника, играющего любую роль на всех этапах проектного процесса.

Подводя итог мероприятия, следует отметить, что, на первый взгляд, создание ПО располагает к тому, чтобы экономить время и ресурсы за счет использования готовых решений, однако на практике разработка весьма часто выполняется по противоположному сценарию, что выливается не только в необоснованные начальные затраты, но и значительно увеличивает стоимость дальнейшего сопровождения проекта, поскольку последняя находится в непосредственной зависимости от объема созданного разработчиками кода. По этой причине, и представители P&P на этом сделали особый акцент, в условиях ухудшающейся экономической ситуации интерес к результатам деятельности их подразделения только повышается. Соответственно, менеджерам проектов и разработчикам, которые все еще не уделяют достаточного внимания использованию шаблонов проектирования, проверенных архитектурных решений и библиотек кода, подобных EntLib, самое время пересмотреть свои подходы.