четверг, 17 сентября 2009 г.

Быстрая разработка, как она есть. Или мифы вокруг RAD, MDA и UML.

Быстрая разработка - мечта всех программистов во всем мире. Сколько было придумано различных технологий, сколько копий было сломано в "крестовых войнах" на тему, кто лучше, кто быстрее и удобнее. Но все решило время. Сейчас мы видим, что остались лишь два направления: профессиональное - деньги, бизнес программирования; и свободное - с открытым исходником, клич протеста и величие единого духа программистов.

Когда в 1998 появилась на свет Delphi весь мир кричал: "RAD, RAD - вот панацея от всех бед". Но, как часто и происходит, новые возможности открыли новые проблемы. Да, то что раньше можно было сделать за неделю, сейчас писалось за день, но возникли новые проблемы. Сложность систем возросла экспоненциально. И проблема показала себя с другой стороны. Теперь один человек не мог понять всей системы, которую сам и разрабатывал. И в результате сопровождение у улучшение превращалось в сплошной кошмар.

Но, программисты не сдавались, и вскоре появилась единая система моделирования UML. И хотя она была не сильно удобна в использовании, но зато унифицировала множество имеющихся тогда форматов моделирования: Buch, OMT, и других. После этого группа Unified Solutions выпустила Rational Rose. Эта среда первая могла создавать код по диаграмме и наоборот, преобразовывать код в диаграмму. И забрезжил свет в конце туннеля. Но не тут то было. Оказалось, что генератор не сильно оптимальный и что обучать новому стилю мышления значительно дольше. Эти ребята хотели сократить процесс обучения и даже создали Rational Unified Process (RUP), но дальше IBM он не пошел. Поскольку был тяжеловесен в использовании и обучении.

MDA - Model Driven Architecture
Как только вышла первая среда с разработкой на основе моделей, гиганты начали соревноваться друг с другом в том, кто быстрее и "круче" создаст механизм проектирования с автогенерацией. Borland выпустила JBuilder, попыталась внедрить ModelMaker в Delphi, но все же остановилась на Together Designer (хотя он и не сильно удобен и написан на яве). Microsoft - та вообще встроила в профессиональную среду механизм разработки по модели. Visual Studio 2003-2008 представляют собой пример планомерного развития этой модели.
Многие мелкие разработчики включились в дело. Так возник HiAsm - среда визуального проектирования, где без единой строчки кода можно создать приложение. Но проблема в том, что они все отошли от классического понятия программирования: реализация алгоритма механизмами вычислительной техники. Я, конечно, понимаю, что кодирование уже отходит на задний план. Появились множество средст автогенерации кода - так называемые "визарды" и "эксперты". Появилось множество фреймворков, как общих - вида Net, VCL, MFC; так и частных - SAP, iFIX и других.
Но сообщество программистов восстало против такого обращения с собой и отказалось принимать технологии, убивающие саму сущность программирования - творчество, ради скорострельной наживы. То, что потом служба поддержки, да и сами программисты будут мучаться с улучшением костного и жестко прошитого кода и архитектурной модели - бизнесменов не волновало. Главное было - снять быстрее деньги.

В результате на горизонте появилось новое движение. Возврат к истокам. Отказ от громоздких фреймворков. Кодирование - как основа всего процесса. Это вышел на сцену XP - eXtremal Programing.

Extremal Programing (XP)
И все бы хорошо - новое детище обеспечивало быструю обратную связь, уменьшало возможности ошибок (благодаря сквозному тестированию - TDD), улучшало архитектуру и постоянно поддерживало ее минимально-сложной и актуальной (Refactoring). Но нашлось и здесь несколько сложных моментов. Пара программистов - это хорошо, но некоторые работают одни, а другим убедить менеджера передать работу одного двоим - стало камнем преткновения. И экстремальное программирование потихоньку сместилось в нишу свободных групп, которые управляются также - свободно и возлагают на каждого ту ответственность, которую они сами хотят взять на себя.

Благодарю Вас за то, что вы со мной.
В следующей статье я поведу разговор о сравнении технологий MDA и XP. Два мощнейших направления разработки - два противоположных взгляда на программирование, жизнь и работу.
И кто же из них победит?

Буду ждать вас через неделю.
С уважением, Владимир.

Комментариев нет: