![](https://habrastorage.org/getpro/habr/upload_files/d8d/bd0/048/d8dbd0048eb67c93fea5dd7781137cfe.png)
Сегодня в рубрике снова Роберт Мартин. Он же — «дядюшка Боб». Мы уже отзывались о нём тепло в материале о другой его книге на Хабре, так как при чтении от страниц буквально веет оптимизмом и заботой о людях и идеалах — в виде чистого кода и не только. Мы планируем перечитать всего его книги. На этот раз взяли с полки «Чистую архитектуру».
Роберт Мартин — инженер и программист. Причем кодит он с 12 лет и с тех пор, когда писать код нужно было ещё на бумаге (это не шутка). Как автор он пишет отличные и понятные книги с чистой и лаконичной структурой: никакой воды, немного личных историй, всё по делу, по содержанию и иногда в табличках. Отнюдь не удивительно, что и с архитектурой программного обеспечения у него тоже всё хорошо.
О чем книга
О дизайне и архитектуре. «Одна из целей этой книги — устранить весь этот беспорядок и определить раз и навсегда, что такое дизайн и архитектура . Прежде всего, я утверждаю, что между этими понятиями нет никакой разницы. Вообще никакой», — уточняет Роберт Мартин и раскрывает подробности на простом примере: «Возьмем для примера архитектора, спроектировавшего мой новый дом. Этот дом имеет архитектуру? Конечно! А в чем она выражается? Ну . . . это форма дома, внешний вид, уступы, а также расположение комнат и организация пространства внутри. Но когда я рассматривал чертежи, созданные архитектором, я увидел на них массу деталей. Я увидел расположение всех розеток, выключателей и светильников. Я увидел, какие выключатели будут управлять теми или иными светильниками. Я увидел, где будет находиться узел отопления, а также местоположение и размеры водонагревательного котла и насоса. Я увидел подробное описание, как должны конструироваться стены, крыша и фундамент. Проще говоря, я увидел все мелкие детали, поддерживающие все высокоуровневые решения. Я также увидел, что низкоуровневые детали и высокоуровневые решения вместе составляют дизайн дома. То же относится к архитектуре программного обеспечения. Низкоуровневые детали и высокоуровневая структура являются частями одного целого. Они образуют сплошное полотно, определяющее форму системы. Одно без другого невозможно; нет никакой четкой линии, которая разделяла бы их. Есть просто совокупность решений разного уровня детализации».
Система и правила
Фокус или, иначе говоря, трюк Роберта Мартина заключается в том, что он умеет зрить в корень. Систему знаний и приемов ему удается объяснить через правила и принципы, которых раньше либо не существовало, либо их никто не оглашал. Даже если вы посмотрите оглавление, то заметите, что основы и закономерности он вынес в отдельные главы и блоки. Прямо как в учебнике или мануале.
При этом Роберт Мартин может поспорить со стереотипами. Например, так: «Функциональность или архитектура? Что более ценно? Что важнее — правильная работа системы или простота ее изменения? Если задать этот вопрос руководителю предприятия, он наверняка ответит, что важнее правильная работа. Разработчики часто соглашаются с этим мнением. Но оно ошибочно. Я могу доказать ошибочность этого взгляда простым логическим инструментом исследования экстремумов.
Если правильно работающая программа не допускает возможности ее изменения, она перестанет работать правильно, когда изменятся требования, и вы не сможете заставить ее работать правильно. То есть программа станет бесполезной.
Если программа работает неправильно, но легко поддается изменению, вы сможете заставить работать ее правильно и поддерживать ее работоспособность по мере изменения требований. То есть программа постоянно будет оставаться полезной.
Эти аргументы могут показаться вам неубедительными. В конце концов, нет таких программ, которые нельзя изменить. Однако есть системы, изменить которые практически невозможно, потому что стоимость изменений превысит получаемые выгоды. Многие системы достигают такого состояния в некоторых своих особенностях или конфигурациях».
Здесь хотелось бы обратить внимание на то, что Роберт Мартин рассуждает и с учетом перспектив — окажется ли решение рациональным или нет. Как-то универсально даже получается. Можно применять и не только в IT. То есть это база.
Кому будет интересна эта книга
Как и книга про идеального программиста это чтение о том, как стать профессионалом в своем деле, но всё-таки в области программного обеспечения и конкретно архитектуры ПО. С одной стороны, всё написано лаконично и простым языком, выводы выделены, есть короткие заключения к каждой главе, примеры и иллюстрации — то есть для общего образования можно почитать, даже если тема просто вызывает у вас любопытство. С другой — именно специалистам в своей нише книга может помочь систематизировать и свой личный опыт, проанализировать его, а возможно, покритиковать автора и найти новые объяснения принципам своей работы.
Совет читателю: не ожидайте от книги глубокого погружения в теорию, но рассчитывайте на то, что из фирменного легкого повествования Роберта Мартина вы сможете почерпнуть что-то свое.
Полезное от Онлайн Патент:
Какие выгоды можно получит от регистрации программы для ЭВМ?
Не только айтишники: какие компании могут внести свои программы в Реестр отечественного ПО?
Больше контента о сфере интеллектуальной собственности в нашем Telegram-канале