dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Дмитрий Лапшин

Чужой код: фактор страха

Одна из наших команд недавно начала работу над проектом с классической service-oriented архитектурой (SOA): back-end ядро с выходом на "внешний мир" через Web-сервисы, и раздельные Web- и Windows-клиенты для разных групп пользователей. А поскольку я курирую в компании вопросы, связанные с архитектурой и технологическими решениями, то предложил их program manager'у свою посильную помощь в консультациях по разработке бизнес-требований и архитектуре.

В ходе совещания с представителями команды всплыл интересный факт - хотя проект еще фактически на стадии анализа предметной области и выявления бизнес-требований с бизнес же use cases'ами, уже больше месяца пишется код. Я сначала подумал, что речь идет о прототипировании, что было бы вполне уместно. Но я ошибался - оказалось, что команда  решила не терять времени и свободными ресурсами пока создать вспомогательные каркасы (frameworks) для доступа к данным и организации пользовательского интерфейса.

Разумеется, я посоветовал парням не изобретать велосипед, а воспользоваться готовыми блоками из Enterprise Library, тем более что это бесплатно и поставляется непосредственно Microsoft, а не некоей третьей стороной. Надо отдать должное Solutions Architect команды, который совершенно правильно вспомнил акроним CAB (Composite UI Application Block).

Но вот тут-то и началось самое интересное. Заинтересованность команды быстро сменилась настороженностью - а вдруг тот же CAB окажется недостаточно гибким, а вдруг мы наступим на какие-нибудь грабли и придется разбираться с массой чужого нетривиально написанного кода? И я понимаю их реакцию - головой отвечать за проект им, сроки - не разгуляешься, а опыта в использовании Enterprise Library никакого. Поэтому настаивать я не стал, лишь посоветовав Dev Lead'у детальнее посмотреть на CAB как на решение, созданное профессионалами высокого класса в противовес собственному framework'у, который пишет хоть и толковый, но начинающий программист.

А потом задумался: Замкнутый круг ведь какой-то. Чтобы принять обоснованное решение об использовании Enterprise Library, ее надо достаточно хорошо знать. А для этого нужен практический опыт, который не получишь, не попробовав Enterprise Library на реальном, серьезном проекте.

Выход я пока вижу только один - искать готовые и создавать собственные примеры нетипичных сценариев использования Application Blocks и их тонкой настройки, чтобы архитекторы и Dev Lead'ы могли воочию убедиться - да, это работает, да, это возможно.

Может, кто-то еще поделится какими идеями или опытом внедрения Enterprise Library?

Опубліковані Tuesday, July 31, 2007 11:33 PM від DmytroL

Коментарі

 

Віктор Шатохін сказав:

Дима,

Это нормальная практика и любой здравомыслящий будет опасаться чужого кода. Но в случае с исходниками все немного проще, так как есть возможность изменить поведение под конкретные задачи конкретного проекта. В любом случае, использование того или иного фреймверка накладывает отпечаток на архитектуру. Т.е. нельзя спроектировать систему а потом принять решение об использовании тех или иных библиотек. В любом случае придется рисковать. Но если выбирать, то я бы выбрал готовый велосипед, чем стал бы его изобретать заново.

July 31, 2007 10:00 PM
 

Mike Chaliy сказав:

Цікаво, я вважав що в нас усюди де є можливість використовують Enterprise Library.

До речі, мені здається що принаймні на цей час у CAB занадто мале відношення складності до вигоди. Тобто ось наприклад Enterprise Library воно велике (для невеличких проектів) тут і широкі можливості, і легке користання. А ось CAB надає завсім небагато можливстей, але достатньо складний і накладає необхідність використання визначених архітектурних рішень.

August 1, 2007 8:10 AM
 

DmytroL сказав:

Виктор,

Весь фокус в том, что исходники p&p накладывают определенный, мм..., образовательный ценз, что ли. Среднестатистический программист, которому в конечном итоге с этим придется разбираться, а порой, что греха таить, и технический руководитель проекта не настолько хорошо знает design patterns и современные приемы ООП, чтобы в этих исходниках уверенно ориентироваться.

Так что я еще в полу-шутку, полу-всерьез удивляюсь, как это никто не догадался еще зарабатывать денежки на консультациях по Enterprise Library и сопутствующим application blocks.

August 8, 2007 5:26 AM
 

DmytroL сказав:

Миша,

Поверь, отнюдь не везде. Подробнее - обращайся лично.

А еще надо требуемый уровень качества как-то учесть в твоей формуле. Порой заказчики (мелкий и средний бизнес) хотят дешево и быстро, а даже использование готовых красивых архитектурных решений требует времени и денег на обучение и поддержку.

Это к Microsoft Consulting Services такая "мелюзга" попросту не приходит, я думаю, там речь идет о крупных предприятиях, для которых все это финансово посильно. А вот разного рода outsourcing'овые конторы могут поиметь дивиденды, только если заранее вложатся в повышение архитектурной грамотности своих сотрудников, и будут иметь стабильный поток заказов, чтобы компенсировать более низкую за счет reuse цену на разработку проекта.

August 8, 2007 5:36 AM
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.