Серйозна книга з архітектури програмного забезпечення.
Допомагає зрозуміти що власне є архітектурою, містить корисні відомості про типові архітектурні рішення, розглядає з архітектурної точки зору деякі проекти і технології (наприклад, J2EE). Книга розрахована на середній і високий рівень програміста.
Книга читається важкувато, але містить багато цікавих ідей.
Наприклад, автори виділяють такі атрибути якості будь-якого програмного забезпечення:
- готовність (властивість працювати без відключень тривалий час);
- модифікованість (легкість внесення змін);
- продуктивність;
- безпека (захист від злому);
- контролепридатність (легкість тестування);
- практичність,
і стверджують, що досягнення максимальних параметрів за всіма якостями неможливе або занадто дорого і пропонують метод аналізу потреб і досягнення потрібних рівнів якостей у кожному проекті.
Книга містить дуже цікаві типові сценарії (тактики) для досягнення якості ПЗ. Наприклад, за якістю «готовність» можна виділити три групи тактик:
1. виявлення несправностей;
2. відновлення після несправностей;
3. запобігання несправностям.
Перша група містить такі тактики: Ping/echo пакети, Heartbeat, винятки.
Цікаво, але «практичність ПЗ» у книзі цілком формалізована і визначається наступними сторонами якості:
- вивчення можливостей системи;
- ефективне використання системи;
- мінімізація наслідків помилок;
- адаптація системи до потреб користувача;
- довіра і задоволення користувача.
По суті автори пропонують дуже добре продумані і апробовані набори універсальних рішень (програмних або апаратно-програмних) або ідей.
Просто вподобані цитати з книги:
"Будь-яка архітектура прдполагает поділ всіх можливих змін на три категорії: локальні, нелокальні та архітектурні ".
«Одні й ті ж завдання архітектура повинна виконувати одними і тими ж способами».