|
Как известно, развитие идет по спирали. Вот и у рубрики
"Некоторые вопросы проектирования", начатой в начале 2001 года, появилось
теперь "второе дыхание". Теперь рубрика будет называться " OOA/OOD, design
patterns, Frameworks и организация процесса разработки".
Несколько философских рассуждений. Человеческой деятельности присуще
такое понятие, как стремление к оптимальности. Это вызвано экономическим развитием и
связано с вопросом стоимости работ. Чем больше оптимизирована работа, тем она
эффективней, меньше ее стоимость. Это ведет к победе в конкурентной борьбе. То же самое
можно проследить и в развитии технологии программирования. Программирование - это тоже
производство. У него тоже есть такое понятие как совокупная стоимость владения (TCO) -
затраты, которые необходимо сделать для производства продукта. Поэтому с самого
зарождения программирования начали появляться технологии по его оптимизации. Сначало
возникло процедурное программирование, библиотеки подпрограмм, затем
объектно-ориентированный анализ и проектирование, появились CASE средства, компоненты. Но
оставался большой пробел. Перед разными программистами вставали одни и те же задачи и
каждый решал их как мог. Не хватало образцов того, как же лучше это делать. Так появились
паттерны проектирования (design patterns) - описание того как можно решать определенную
проблему. Уже не нужно изобретать велосипед и работа программиста и системного
архитектора приобрела новый, более высокий уровень абстракции. Более того, развитие пошло
дальше. Фирмы - производители программного обеспечения, такие как IBM, Microsoft и даже
Open Source проекты, стали предлагать целые каркасы приложений (frameworks). Это набор
готовых классов, шаблонов и правил программирования для определенной области, например,
для создания приложений электронной коммерции (e-commerce). Framework - это своего рода
конструктор Лего - все необходимые кирпичики уже есть, или их легко создать из уже
существующих, и все усилия разработчиков можно сосредоточить на воплощении бизнес логики
приложения - то есть того, собственно, зачем зто приложение и необходимо его
заказчикам.
Параллельно с созданием новых технологий анализа, проектирования и
программирования шел процесс поиска более совершенной схемы организации всего процесса
создания программных продуктов. Была предложена модель СММ, ISO9000, затем пришел RUP
(рациональный унифицированный процесс) и совсем недавно появилось экстремальное
программирование (XP - eXtreme Programming). Во всем мире разработка программ
стандартизована, в любой нормальной софтверной фирме существуют внутрифирменные стандарты
написания программ, ведения документации по проекту, учета версий программ,
автоматизирована сборка проекта и отлавливание ошибок. Автор питает сильный интерес к
описанным вопросам и у него накопилось уже довольно много информации и мыслей по
соответствующим темам. Хотелось бы поделиться. Кажется, что именно этой информации так
нехватает молодым и даже опытным Java программистам. Уже хватит работать кустарными
методами. Пора пользоваться общепринятыми стандартами ведения разработки.
Пишите, делитесь мнением,
Алексей Тюрин,
SUN CERTIFIED PROGRAMMER FOR THE JAVA 2 PLATFORM
PS.
При создании новой версии рубрики были использованы материалы старой
версии, подготовленные Сергеем Астаховым и
Сергем Волотовским, за что им отдельное
спасибо. |