Искусство архитектуры Archives
Логическая целостность
Вся система была целостной. Каждое решение на каждом уровне принималось в контексте общей архитектуры. Разработчики сознательно действовали так с самого начала, чтобы весь создаваемый код полностью соответствовал архитектуре и всему остальн...
История продолжается
Оборудование После того как группа сформировала исходную версию архитектуры, проект Архитектурного городка продолжал развиваться по правилам методологии ХР. Проектирование и написание кода осуществлялось либо в парах, либо проходило тщате...
Пользовательский интерфейс
Особое внимание в ходе проектирования было уделено «сердцу» системы: аудиоблоку. В сущности, это была внутренняя субархитектура всей системы. Чтобы определить ее, мы проанализировали потоки данных через серию компонентов и пришли к конвейерн...
Первые шаги в Архитектурный городок
На ранней стадии проектирования были определены основные области функциональности (базовый аудиоблок, управление содержанием и пользовательский интерфейс/управление). Мы проанализировали место каждой из них в системе и сформировали начальн...
Linux и С++
Linux и С++ были выбраны на ранней стадии планирования, и это решение повлияло на формирование группы. С самого начала проект имел четко определенные цели: конкретный первый продукт и перспективный план будущей функциональности, которая должна бы...
Открытка из Мегаполиса
Какой урок можно извлечь из этой истории? Плохая архитектура может иметь глубокие, серьезные последствия. К чему привело отсутствие пре-дусмотрительности и архитектурного проектирования в Мегаполисе? • Некачественный продукт с редким выпус...
Где он теперь?
Архитектура Мегаполиса была почти безнадежной - поверьте, мы потратили достаточно много времени в попытках исправить ее. Объем работы по переработке, рефакторингу и исправлению проблем в структуре кода был непомерно высоким. Переписывать сис...
Четкие требования
Археологические исследования выявили важную причину, из-за которой Мегаполис получился таким запутанным: в самом начале проекта группа не знала, что она строит. Компания имела представление о том, какой рынок она хочет захватить, но не знала, к...
Внешняя поддержка
Был разработан внешний протокол, который позволял другим устройствам управлять Мегаполисом в удаленном режиме. Протокол представлял собой тонкую прослойку над внутренней структурой продукта; соответственно он был вычурным, малопонятным и п...
Внешние проблемы
Проблемы Мегаполиса вышли за пределы кодовой базы и начали сеять хаос в компании. Основные неприятности получила группа разработки, но загнивание архитектуры также отразилось на службе поддержки и на пользователях продукта. Группа разработк...