MSDN Magazine > Home > Issues > 2008 > March >  { End Bracket }: Что такое ALT .NET?
{ 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.
  1. Этот тип разработчиков использует все работающие средства, одновременно выискивая способ усовершенствования. Одной из популярных тем на встрече, посвященной ALT .NET, был вопрос о преодолении разрыва между требованиями, тестированием и кодом. По-прежнему сохраняется то, от чего стоит избавиться при разработке программного обеспечения.
  2. Приходится выйти за пределы господствующего направления, чтобы приобрести лучшее, имеющееся в любом из сообществ: Open Source, Agile, Java, Ruby. Ни Майкрософт, ни сообществу .NET не принадлежит монополия на разработку качественного программного обеспечения. Например, процессы и шаблоны проектирования Agile начинались со Smalltalk. Подобно им, методики и инструменты Inversion of Control воникли в Java. А два фундаментальных принципа Ruby on Rails, «не повторяться» и «соглашение отностительно конфигурации», можно принять для использования в среде .NET.
  3. Он не удовлетворяется существующим положением вещей. Всегда можно достичь большей элегантности, гибкости и более высокого качества. Мы экспериментируем с методиками, чтобы достичь более тесной связи этапов создания кода и тестирования с предметно областью. Например, разработка на основе поведения (BDD — Behavior Driven Development) облагораживает и расширяет возможности разработки на основе тестирования (TDD — Test Driven Development), поскольку задает предполагаемое поведение кода в более доступном для чтения виде, чем при классическом тестировании xUnit. Программирование, ориентированное на язык, обладает потенциалом для повышения абстрактного слоя до уровня логики предметной области.
  4. Он осознает, что инструменты прекрасны, но они обеспечили только существующее положение дел. По настоящему важное значение имеют принципы и знания. Наилучшие инструменты — это те, которые внедряют знания и поддерживают соблюдение принципов (например, 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.

Page view tracker