Это бета-версия LiveLib. Сейчас доступна часть функций, остальные из основной версии будут добавляться постепенно.

Рецензия на книгу

Fundamentals of Software Architecture: An Engineering Approach

Нил Форд, Марк Ричардс

0

(0)

  • Аватар пользователя
    asmelik
    20 августа 2025

    Книга полезная, надо брать.

    Перевод хороший. В целом книга произвела позитивное впечатление, но и без ложки дегтя не обошлось.

    В третьей главе допущена грубая ошибка в формуле расчета абстрактности:


    Abstractness is the ratio of abstract artifacts (abstract classes, interfaces, and so on) to concrete artifacts (implementation).

    Это не верно, значение абстрактности должно находиться в интервале от 0 до 1, где 0 означает, что в модуле нет абстрактных артефактов, а 1 означает, что все артефакты модуля абстрактные. Следовательно абстрактность модуля есть отношение количества абстрактных артефактов модуля к общему количеству артефактов в этом модуле.

    В той же главе автор упоминает формулу расчета LCOM, но не утруждает себя её объяснением:


    We wont bother untangling the variables and operators in Equation 3-2 because the following written explanation is clearer.

    Далее идет объяснение собственно метрики, но не формулы. А зачем нужно было рисовать формулу?

    В четвертой главе автор вылил много воды, красочно расписывая множество самых разнообразных архитектурных свойств, но не сделал главного: не описал именно те архитектурные свойства, которые будут использоваться в следующих главах при сравнении архитектурных стилей.

    Структура второй части книги выстроена логично: автор показал преимущества и недостатки различных архитектурных стилей в разрезе выбранных архитектурных свойств, оценивая их по пятибалльной шкале.

    В девятой главе автор классифицирует архитектурные стили на монолитные и распределенные. Однако, в какой Вселенной конвейерная архитектура должна быть исключительно монолитной, а архитектура, управляемая событиями, обязательно распределенной? Например, MapReduce в Hadoop это классическая конвейерная обработка, которая применяется в распределенной среде. А используя ApplicationEvent и ApplicationEventPublisher в Spring Framework, вы можете реализовать EDA в монолитном приложении.

    И напоследок о курьезном, я никак не ожидал в книге, которая называется "Фундаментальный подход к программной архитектуре", встретить инструкцию, как правильно пожимать руки коллегам, и рассуждения о целесообразности объятий (хорошо хоть не поцелуев взасос) при встрече.

    like7 понравилось
    269

Комментарии 0

Ваш комментарий

, чтобы оставить комментарий.