{ End Bracket }
Что такое ALT .NET?
Джереми Д. Миллер (Jeremy D. Miller)
В прошлом году Дэвид Лэриби (David Laribee) изобрел термин «ALT .NET» для описания возникающего в большом мире Microsoft® .NET Framework сообщества единомышленников, объединенных ощущением неудовлетворенности от того, что культура Майкрософт, относящаяся к инструментарию, руководствам и среде .NET, в целом не отражает и не поддерживает важный набор основных ценностей. В октябре 2007 года около ста человек съехались в Остин, штат Техас, на первое мероприятие, посвященное ALT .NET Open Spaces. Это событие превратило смутные обсуждения на блогах в нечто более осязаемое и стало толчком к формированию настоящего сообщества.
Итак, что такое ALT .NET? И как это отличается от уже знакомой среды .NET, которую мы любим? И что это за ценности, которых, по мнению многих из нас, нам не достает? Какие альтернативные инструменты, методики и практики поддерживают участники сообщества ALT .NET? Обратимся сначала к исходным принципам разработчика ALT .NET.
- Этот тип разработчиков использует все работающие средства, одновременно выискивая способ усовершенствования. Одной из популярных тем на встрече, посвященной ALT .NET, был вопрос о преодолении разрыва между требованиями, тестированием и кодом. По-прежнему сохраняется то, от чего стоит избавиться при разработке программного обеспечения.
- Приходится выйти за пределы господствующего направления, чтобы приобрести лучшее, имеющееся в любом из сообществ: Open Source, Agile, Java, Ruby. Ни Майкрософт, ни сообществу .NET не принадлежит монополия на разработку качественного программного обеспечения. Например, процессы и шаблоны проектирования Agile начинались со Smalltalk. Подобно им, методики и инструменты Inversion of Control воникли в Java. А два фундаментальных принципа Ruby on Rails, «не повторяться» и «соглашение отностительно конфигурации», можно принять для использования в среде .NET.
- Он не удовлетворяется существующим положением вещей. Всегда можно достичь большей элегантности, гибкости и более высокого качества. Мы экспериментируем с методиками, чтобы достичь более тесной связи этапов создания кода и тестирования с предметно областью. Например, разработка на основе поведения (BDD — Behavior Driven Development) облагораживает и расширяет возможности разработки на основе тестирования (TDD — Test Driven Development), поскольку задает предполагаемое поведение кода в более доступном для чтения виде, чем при классическом тестировании xUnit. Программирование, ориентированное на язык, обладает потенциалом для повышения абстрактного слоя до уровня логики предметной области.
- Он осознает, что инструменты прекрасны, но они обеспечили только существующее положение дел. По настоящему важное значение имеют принципы и знания. Наилучшие инструменты — это те, которые внедряют знания и поддерживают соблюдение принципов (например, ReSharper). Более того, вы понимаете, что устойчивость решения и возможность его поддерживать являются наиболее важными качествами. В основе удобного для поддержки кода лежи хороший проект. Хороший проект является результатом искусного применения навыков в проектировании. Сообщество .NET слишком много внимания уделяло подробному изучению API и инфраструктуры, и недостаточно — базовым принципам создания проекта и кода.
Поднятие знамени ALT .NET отчасти было спровоцировано демонстрацией бета-версии новой инфраструктуры Entity Framework в марте 2007 года. Я, как и несколько других, был разочарован некоторыми элементами Entity Framework, в особенности отсутствием «Persistence Ignorance» (неведение относительно усилий по обеспечению устойчивости) и жесткой привязкой к базе данных. В тот момент Entity Framework не выглядела подходящей для TDD, проектирования, основанного на предметной области (Domain Driven Design), или непрерывного проектирования (Continuous Design) — все эти возможности я считаю крайне значимыми для разработки, обеспечивающей удобное сопровождение.
С другой стороны, новая инфраструктура Model View Controller (MVC) Framework для разработки в среде ASP.NET производит сильное впечатление, поскольку явно поддерживает и обеспечивает те ценные возможности, которые я нахожу важными для успешной разработки программного обеспечения. В MVC Framework четко отражена значимость удобного сопровождения и тестирования. Акцент сделан на разделении обязанностей (Separation of Concerns) и возможности тестирования в процессе проектирования инфраструктуры.
Лего быть циничным или безразличным отностительно состояния дел с разработкой. Однако, вместо того, чтобы ныть оттого, что Джонни не умеет кодировать и жаловаться на то, как трудно найти хороших разработчиков, нам, возможно, стоит признать нашу главную проблему: мы совершенно не умеем воспитывать сильных разработчиков.
Многие разработчики были бы счастливы использовать Объектно-реляционные сопоставления и TDD, если бы они знали, с чего начать. Точно так же, те, кто уже применяет эти методики, хотел бы делать это более успешно, общаясь с коллегами в этой области. Моя основная надежда, связанная с движением ALT .NET, состоит в том, что оно создаст сообщество, которое окажет помощь обеим группам, и все они станут сильными разработчиками. С этой целью только что был открыт веб-узел Altnetpedia для бизнес-решений. Для начала там помещен список источников для изучения способов применения этих методик в среде .NET. Доска объявлений altnetconf (tech.groups.yahoo.com/group/altdotnet) уже существует и завоевывает популярность как место, где профессионалы .NET обсуждают вопросы разработки. Заходите!
Джереми Д. Миллер (Jeremy D. Miller) работает менеджером по разработке Bayern Software в Остине, штат Техас. Его блог находится по адресу
codebetter.com/blogs/jeremy.miller.