Разработка программных систем Archives
Красивые архитектуры
Короче говоря, красивые архитектуры делают больше меньшими средствами. Во время чтения этой книги, которую так талантливо собрали и представили Диомидис Спинеллис и Георгиос Гусиос, обращайте внимание на эти принципы и рассматривайте их пра...
Сопротивление энтропии
Красивые архитектуры прокладывают путь наименьшего сопротивления для сопровождения, сохраняющего архитектуру и замедляющего действие закона системной энтропии, который гласит, что стечением времени система становится менее организованной...
Порядок роста
Некогда мы говорили о «порядке» алгоритмов, выражая, скажем, сложность сортировки в виде времени, необходимого для сортировки определенного количества элементов. На эту тему были написаны целые книги. То же относится и к архитектурным решения...
Построение обобщенных решений
Если вы хотите строить хрупкие, негибкие системы, последуйте совету Айвара Якобсона (Ivar Jacobson) - заложите в основу своей архитектуры сценарии использования и реализацию только одной функции (т. е. используйте объекты-«контроллеры»). Напротив, ра...
Минимум механизмов
Лучший способ реализации некой функции зависит от конкретного случая, но красивая архитектура не стремится к «самому лучшему». Например, существует множество способов организации хранения данных и поиска в них, но если система может удовлетв...
Архитектура включает построение
Архитектура должна включать не только систему времени выполнения, но и способ ее построения. Если архитектор уделяет внимание только коду времени выполнения, это верный признак того, что его архитектура постепенно придет в негодность. Красив...
Автоматическое распространение
Один факт в одном месте - звучит, конечно, хорошо, но по соображениям эффективности некоторые данные или аспекты поведения часто дублируются. Для сохранения логической целостности и правильности системы распространение этих фактов должно про...
Один факт в одном месте
Дублирование ведет к ошибкам, поэтому его необходимо избегать. Каждый факт должен быть единым и неделимым и притом независимым от всех остальных фактов. При внесении изменения (а это неизбежно происходит в любой системе) достаточно исправить т...
Сложность наших систем
Проблемы разработки высокопроизводительных, надежных и качественных программных систем оказались слишком сложными для неформальных, несистематических технических решений, которые работали в прошлом в менее требовательных системах. Сложно...