Книга: Дефрагментация мозга. Софтостроение изнутри
Остановиться и оглянуться
Остановиться и оглянуться
Рассмотренная выше подсистема состоит из минимального набора слоёв трёхзвенной архитектуры на основе веб-служб. Тем не менее даже в таком минимальном варианте обилие деталей, промежуточных и служебных классов, проекций и преобразований должно дать представление о проблеме сложности современного состояния софтостроения.
Одним из способов обхода этой проблемы является описанная технология программной фабрики, несомненно далёкая от совершенства и ограниченная в наборе целевых платформ.
Какова же эффективность?
Если рассмотреть метрики относительно небольшого проекта, то 40 прикладных сущностей в модели, состоящей примерно из 600 строк XML-описаний, порождают:
• около 3 тысяч строк SQL-скриптов для каждой из целевых СУБД;
• порядка 10 тысяч строк домена;
• 1200 строк XML для проекций классов на реляционные структуры (таблицы);
• около 17 тысяч строк веб-служб и интерфейсов.
Таким образом, соотношение числа строк мета-кода описания модели к коду его реализации на конкретных архитектурах и платформах составляет около 600 к 30 тысячам или 1 к 50.
Это означает, что оснащённый средствами автоматизации программист с навыками моделирования на этапе разработки рутинного и специфичного для платформ/архитектур кода производителен примерно так же, как и его 50 коллег, не владеющих технологией генерации кода по моделям. Любое внесение изменений в модель тут же приводит в соответствие все генерируемые слои системы, что ещё более увеличивает разрыв по сравнению с ручными модификациями. Наконец, для генерируемого кода не нужны тесты. Производительность возрастает ещё как минимум вдвое.
Даже если принять во внимание, что доля рутинного и прочего инфраструктурного кода по отношению к прикладному, то есть решающему собственно задачи конечных пользователей, снижается с масштабом системы, есть о чём поразмыслить в спокойной обстановке.
- Краткий словарь для начинающего проектировщика
- Слоистость и уровни
- Многозвенная архитектура
- История нескольких #ifdef
- Ultima-S – КИС из коробки
- Нешаблонное мышление
- Думать головой
- Журнал хозяйственных операций
- UML и птолемеевские системы
- Когда старая школа молода
- «Оптисток», или распределённый анализ данных
- Архитектура сокрытия проблем
- Code revision, или Коза кричала
- Наживулька или гибкость?
- Приключения с TFS
- Программная фабрика: дайте мне модель, и я сдвину Землю
- Лампа, полная джиннов
- Остановиться и оглянуться
- Cherchez le bug, или Программирование по-французски