Краткое содержание, анализ и герои
Чистая архитектура. Искусство разработки программного обеспечения
Автор Роберт С. Мартин16+2018524 читателей
Год издания2018
Дата написания2017-12-31
ИздательствоИздательский дом "Питер"
ISBN978-5-4461-0772-8, 9780134494166
Язык книгиru
Язык оригиналаen
СерияБиблиотека программиста (Питер)
Возрастное ограничение16+
Темыискусство программированияразработка программного обеспечениятехнология программированияархитектура информационных системтехнологии разработки программного обеспечения
Описание
Книга исследует принципы чистой архитектуры, показывая, как правильное разделение уровней, применение SOLID‑принципов и гибкое принятие решений позволяют снизить затраты на разработку и сопровождение, а также облегчить тестирование и масштабирование как в традиционных, так и в встраиваемых системах.
Главный конфликт / проблема
Как построить архитектуру, которая одновременно обеспечивает гибкость, тестируемость и экономичность, избегая преждевременных решений и антишаблонов, и при этом остаётся адаптируемой к изменениям в требованиях и технологиях.
Ключевые идеи
- Архитектура и дизайн – одно и то же, их решения формируют единую структуру.
- Хорошая архитектура снижает трудозатраты и повышает производительность.
- Все архитектуры следуют тем же правилам, потому что строительные блоки кода неизменны.
- Поведение и структура – две ценности, приоритетом должна быть структура.
- Матрица Эйзенхауэра помогает правильно расставлять приоритеты и избежать битвы за архитектуру.
- Открытость/закрытость обеспечивает расширяемость без влияния изменений.
- Подстановка Лисков гарантирует совместимость подтипов и предотвращает логические ошибки.
- Разделение интерфейсов минимизирует ненужные зависимости и перекомпиляцию.
- Инверсия зависимостей направляет зависимости от абстракций к реализациям.
- Компонентные принципы (REP, CCP, CRP) балансируют повторное использование и изменение.
- Ацикличность зависимостей упрощает сборку и тестирование.
- Устойчивость компонентов определяется метриками Fan‑in/Fan‑out и связана с абстрактностью.
Вывод
Книга приводит вывод, что хорошая архитектура – это открытая, модульная и тестируемая структура, где принципы SOLID, правильное разделение уровней и отложенные решения позволяют снизить затраты на разработку и сопровождение, а также облегчить масштабирование и поддержку как в традиционных, так и в встраиваемых системах.
Кому полезна
- Разработчики программного обеспечения
- Архитекторы систем
- Технические лиды и менеджеры проектов
- Инженеры по встраиваемым системам
- Кто хочет улучшить качество и поддерживаемость кода
Главные темы
- SOLID‑принципы и их применение в архитектуре
- Разделение уровней: код, развертывание, сервисы
- Тест‑драйвенный подход и его влияние на эффективность
- Проблемы преждевременных архитектурных решений в компаниях
- Встраиваемые системы: микропрограммы, HAL, OSAL
- Модульные технологии Java 9 и OSGi
- Антишаблоны портов и адаптеров
- Метрики устойчивости и абстракции
- Практика отложенного принятия решений
- Компилятор как инструмент соблюдения архитектуры
Персонажи
- Роберт Мартин — Опытный разработчик, который сформулировал основные принципы чистой архитектуры. Объясняет принципы разделения микропрограмм и программного обеспечения, приводит практические примеры.
- User — Класс, который взаимодействует с объектами Rectangle и Square, демонстрируя нарушение LSP.
- Bob — Именованный водитель, чей URI служит примером несовместного интерфейса.
- Инженер‑системотехник — Обеспечивает детали оборудования, но его знания часто становятся «справочником» для кода.
Цитаты
- «Архитектура — это набор верных решений, которые хотелось бы принять на ранних этапах работы над проектом, но которые не более вероятны, чем другие.»
- «Если вы думаете, что хорошая архитектура стоит дорого, попробуйте плохую архитектуру.»
- «Принцип открытости/закрытости — одна из движущих сил в архитектуре систем»
- «Принцип подстановки Барбары Лисков может и должен распространяться до уровня архитектуры»
- Проблема разделения на службы — дороговизна, и в отношении разработки, и в отношении системных ресурсов.
- Проведя границу между бизнес‑правилами и базой данных, мы смогли задержать и отложить принятие решений, и это сэкономило нам немало времени и нервов.
- «Не позволяйте всему вашему коду превращаться в микропрограммы — это вредно для долгосрочного здоровья вашего продукта.»
- «Чистая встраиваемая архитектура — архитектура, поддерживающая тестирование.»
- Окружной антишаблон портов и адаптеров
- Дьявол кроется в деталях реализации.
Вам также может понравиться
{"page":{"canonicalUrl":"https://bookra.app/books/1iTqsK7p","pageTitle":"Чистая архитектура. Искусство разработки программного обеспечения (Роберт С. Мартин) — краткое содержание, анализ и герои","metaDescription":"Разбор книги «Чистая архитектура. Искусство разработки программного обеспечения»: краткое содержание, главные мысли, конфликт, темы, персонажи, цитаты и ответы на вопросы.","headingTitle":"«Чистая архитектура. Искусство разработки программного обеспечения»","headingSubtitle":"Роберт С. Мартин, Александр Н. Киселев","structuredData":[{"@context":"https://schema.org","@type":"BreadcrumbList","@id":"https://bookra.app/books/1iTqsK7p#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"BookRa","item":"https://bookra.app/"},{"@type":"ListItem","position":2,"name":"зарубежная компьютерная литература","item":"https://bookra.app/genre/5221"},{"@type":"ListItem","position":3,"name":"Чистая архитектура. Искусство разработки программного обеспечения","item":"https://bookra.app/books/1iTqsK7p"}]},{"@context":"https://schema.org","@type":"WebPage","@id":"https://bookra.app/books/1iTqsK7p","url":"https://bookra.app/books/1iTqsK7p","name":"«Чистая архитектура. Искусство разработки программного обеспечения»","description":"Разбор книги «Чистая архитектура. Искусство разработки программного обеспечения»: краткое содержание, главные мысли, конфликт, темы, персонажи, цитаты и ответы на вопросы.","breadcrumb":{"@id":"https://bookra.app/books/1iTqsK7p#breadcrumb"},"mainEntity":{"@id":"https://bookra.app/books/1iTqsK7p#work"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/91ae629a-dbb8-11e8-ae59-0cc47a5f3f85/thumbs/1200.webp"}},{"@context":"https://schema.org","@type":"Book","@id":"https://bookra.app/books/1iTqsK7p#work","name":"Чистая архитектура. Искусство разработки программного обеспечения","url":"https://bookra.app/books/1iTqsK7p","description":"Книга исследует принципы чистой архитектуры, показывая, как правильное разделение уровней, применение SOLID‑принципов и гибкое принятие решений позволяют снизить затраты на разработку и сопровождение, а также облегчить тестирование и масштабирование как в традиционных, так и в встраиваемых системах.","image":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/91ae629a-dbb8-11e8-ae59-0cc47a5f3f85/thumbs/1200.webp","inLanguage":"ru","genre":["зарубежная компьютерная литература","программирование"],"keywords":"искусство программирования, разработка программного обеспечения, технология программирования, архитектура информационных систем, технологии разработки программного обеспечения","sameAs":["https://litres.ru/book/robert-s-martin/chistaya-arhitektura-iskusstvo-razrabotki-programmnogo-obe-39113892/"],"author":[{"@type":"Person","@id":"https://bookra.app/author/68468ed7-bb65-11e2-ac71-002590591ea6#person","name":"Роберт С. Мартин","url":"https://bookra.app/author/68468ed7-bb65-11e2-ac71-002590591ea6"}],"about":[{"@type":"Thing","name":"зарубежная компьютерная литература"},{"@type":"Thing","name":"программирование"},{"@type":"Thing","name":"искусство программирования"},{"@type":"Thing","name":"разработка программного обеспечения"},{"@type":"Thing","name":"технология программирования"},{"@type":"Thing","name":"архитектура информационных систем"},{"@type":"Thing","name":"технологии разработки программного обеспечения"},{"@type":"Thing","name":"чтение онлайн"},{"@type":"Thing","name":"саммари"},{"@type":"Thing","name":"AI-разбор"},{"@type":"Thing","name":"персонажи"},{"@type":"Thing","name":"цитаты"}],"workExample":{"@type":"Book","@id":"https://bookra.app/books/1iTqsK7p#edition","url":"https://bookra.app/books/1iTqsK7p","bookFormat":"https://schema.org/EBook","inLanguage":"ru","isbn":"978-5-4461-0772-8, 9780134494166","datePublished":"2018","publisher":{"@type":"Organization","name":"Издательский дом \"Питер\""},"sameAs":["https://litres.ru/book/robert-s-martin/chistaya-arhitektura-iskusstvo-razrabotki-programmnogo-obe-39113892/"],"isAccessibleForFree":false}}],"book":{"idCatalog":232903,"shortId":"1iTqsK7p","title":"Чистая архитектура. Искусство разработки программного обеспечения","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/91ae629a-dbb8-11e8-ae59-0cc47a5f3f85/thumbs/1200.webp","annotationText":"«Идеальный программист» и «Чистый код» – легендарные бестселлеры Роберта Мартина – рассказывают, как достичь высот профессионализма. «Чистая архитектура» продолжает эту тему, но не предлагает несколько вариантов в стиле «решай сам», а объясняет, что именно следует делать, по какой причине и почему именно такое решение станет принципиально важным для вашего успеха. Роберт Мартин дает прямые и лаконичные ответы на ключевые вопросы архитектуры и дизайна. «Чистую архитектуру» обязаны прочитать разработчики всех уровней, системные аналитики, архитекторы и каждый программист, который желает подняться по карьерной лестнице или хотя бы повлиять на людей, которые занимаются данной работой. [\"a4.pdf\", \"ios.ePub\"] [\"В форматах:\", \"и\", \"представлены файлы от издательства.\"]","catalogType":"LITRES","catalogTypeLabel":"Книга в каталоге","authorLine":"Роберт С. Мартин, Александр Н. Киселев","authors":[{"id":"68468ed7-bb65-11e2-ac71-002590591ea6","displayName":"Роберт С. Мартин","protectedUrl":"/author/68468ed7-bb65-11e2-ac71-002590591ea6","wikipediaUrl":null,"wikidataUrl":null},{"id":"78d38e8b-4396-11e2-a644-002590591ea6","displayName":"Александр Н. Киселев","protectedUrl":"/author/78d38e8b-4396-11e2-a644-002590591ea6","wikipediaUrl":null,"wikidataUrl":null}],"genres":[{"id":5221,"title":"зарубежная компьютерная литература","token":null,"publicUrl":"https://bookra.app/genre/5221"},{"id":5272,"title":"программирование","token":null,"publicUrl":"https://bookra.app/genre/5272"}],"keywords":["искусство программирования","разработка программного обеспечения","технология программирования","архитектура информационных систем","технологии разработки программного обеспечения"],"facts":[{"key":"datePublished","label":"Год издания","value":"2018"},{"key":"dateWritten","label":"Дата написания","value":"2017-12-31"},{"key":"publisher","label":"Издательство","value":"Издательский дом \"Питер\""},{"key":"isbn","label":"ISBN","value":"978-5-4461-0772-8, 9780134494166"},{"key":"bookLanguage","label":"Язык книги","value":"ru"},{"key":"sourceLanguage","label":"Язык оригинала","value":"en"},{"key":"series","label":"Серия","value":"Библиотека программиста (Питер)"},{"key":"adult","label":"Возрастное ограничение","value":"16+"}],"seoSections":[{"key":"summaryShort","title":"Описание","body":"Книга исследует принципы чистой архитектуры, показывая, как правильное разделение уровней, применение SOLID‑принципов и гибкое принятие решений позволяют снизить затраты на разработку и сопровождение, а также облегчить тестирование и масштабирование как в традиционных, так и в встраиваемых системах."},{"key":"conflict","title":"Главный конфликт / проблема","body":"Как построить архитектуру, которая одновременно обеспечивает гибкость, тестируемость и экономичность, избегая преждевременных решений и антишаблонов, и при этом остаётся адаптируемой к изменениям в требованиях и технологиях."},{"key":"keyIdeas","title":"Ключевые идеи","body":["Архитектура и дизайн – одно и то же, их решения формируют единую структуру.","Хорошая архитектура снижает трудозатраты и повышает производительность.","Все архитектуры следуют тем же правилам, потому что строительные блоки кода неизменны.","Поведение и структура – две ценности, приоритетом должна быть структура.","Матрица Эйзенхауэра помогает правильно расставлять приоритеты и избежать битвы за архитектуру.","Открытость/закрытость обеспечивает расширяемость без влияния изменений.","Подстановка Лисков гарантирует совместимость подтипов и предотвращает логические ошибки.","Разделение интерфейсов минимизирует ненужные зависимости и перекомпиляцию.","Инверсия зависимостей направляет зависимости от абстракций к реализациям.","Компонентные принципы (REP, CCP, CRP) балансируют повторное использование и изменение.","Ацикличность зависимостей упрощает сборку и тестирование.","Устойчивость компонентов определяется метриками Fan‑in/Fan‑out и связана с абстрактностью."]},{"key":"conclusion","title":"Вывод","body":"Книга приводит вывод, что хорошая архитектура – это открытая, модульная и тестируемая структура, где принципы SOLID, правильное разделение уровней и отложенные решения позволяют снизить затраты на разработку и сопровождение, а также облегчить масштабирование и поддержку как в традиционных, так и в встраиваемых системах."},{"key":"audience","title":"Кому полезна","body":["Разработчики программного обеспечения","Архитекторы систем","Технические лиды и менеджеры проектов","Инженеры по встраиваемым системам","Кто хочет улучшить качество и поддерживаемость кода"]},{"key":"topics","title":"Главные темы","body":["SOLID‑принципы и их применение в архитектуре","Разделение уровней: код, развертывание, сервисы","Тест‑драйвенный подход и его влияние на эффективность","Проблемы преждевременных архитектурных решений в компаниях","Встраиваемые системы: микропрограммы, HAL, OSAL","Модульные технологии Java 9 и OSGi","Антишаблоны портов и адаптеров","Метрики устойчивости и абстракции","Практика отложенного принятия решений","Компилятор как инструмент соблюдения архитектуры"]},{"key":"characters","title":"Персонажи","body":["Роберт Мартин — Опытный разработчик, который сформулировал основные принципы чистой архитектуры. Объясняет принципы разделения микропрограмм и программного обеспечения, приводит практические примеры.","User — Класс, который взаимодействует с объектами Rectangle и Square, демонстрируя нарушение LSP.","Bob — Именованный водитель, чей URI служит примером несовместного интерфейса.","Инженер‑системотехник — Обеспечивает детали оборудования, но его знания часто становятся «справочником» для кода."]},{"key":"quotes","title":"Цитаты","body":["«Архитектура — это набор верных решений, которые хотелось бы принять на ранних этапах работы над проектом, но которые не более вероятны, чем другие.»","«Если вы думаете, что хорошая архитектура стоит дорого, попробуйте плохую архитектуру.»","«Принцип открытости/закрытости — одна из движущих сил в архитектуре систем»","«Принцип подстановки Барбары Лисков может и должен распространяться до уровня архитектуры»","Проблема разделения на службы — дороговизна, и в отношении разработки, и в отношении системных ресурсов.","Проведя границу между бизнес‑правилами и базой данных, мы смогли задержать и отложить принятие решений, и это сэкономило нам немало времени и нервов.","«Не позволяйте всему вашему коду превращаться в микропрограммы — это вредно для долгосрочного здоровья вашего продукта.»","«Чистая встраиваемая архитектура — архитектура, поддерживающая тестирование.»","Окружной антишаблон портов и адаптеров","Дьявол кроется в деталях реализации."]}],"authorSummary":null,"hasArtifacts":true,"canReadInApp":false,"readUrl":"https://web.bookra.app/?startapp=b_232903","artifactsUrl":"https://web.bookra.app/?startapp=b_232903","readCtaLabel":"Читать онлайн","artifactsCtaLabel":"AI-разбор","appReadLinks":null,"appAnalysisLinks":{"tg":"https://t.me/bookra_lib_bot/BookRa?startapp=b_232903","vk":"https://vk.com/app54470698#startapp=b_232903","max":"https://max.ru/id7751370047_bot?startapp=b_232903","web":"https://web.bookra.app/?startapp=b_232903"},"guestReaderUrl":null,"authorCtaLabel":"Все книги автора","authorProtectedUrl":"/author/68468ed7-bb65-11e2-ac71-002590591ea6","readersCount":524,"adultLabel":"16+","yearLabel":"2018","datePublished":"2018","publisherLabel":"Издательский дом \"Питер\"","isbn":"978-5-4461-0772-8, 9780134494166","oclc":null,"lccn":null,"partnerUrl":"https://litres.ru/book/robert-s-martin/chistaya-arhitektura-iskusstvo-razrabotki-programmnogo-obe-39113892/","accessNote":"Карточка книги и AI-разбор откроются на защищенных страницах BookRa после входа."},"reader":null,"similarBooks":[{"idCatalog":114825,"shortId":"1r3C1OlD","title":"Идеальный программист. Как стать профессионалом разработки ПО","authorLine":"Роберт С. Мартин, Е. А. Матвеев","primaryAuthorId":"68468ed7-bb65-11e2-ac71-002590591ea6","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/7f0d28d9-7729-11e5-b6ff-002590591ed2/thumbs/400.webp","publicUrl":"https://bookra.app/books/1r3C1OlD"},{"idCatalog":33965,"shortId":"0eeRKssp","title":"Экстремальное программирование. Разработка через тестирование","authorLine":"П. Анджан, Кент Бек","primaryAuthorId":"551abace-120e-11e4-824d-0025905a06ea","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/86e07f7f-5b3f-102b-94c2-fc330996d25d/thumbs/400.webp","publicUrl":"https://bookra.app/books/0eeRKssp"},{"idCatalog":171688,"shortId":"2wtFbrjW","title":"Пользовательские истории. Искусство гибкой разработки ПО","authorLine":"Джефф Паттон, О. Потапова","primaryAuthorId":"8c57eedb-13c6-11e7-b6fa-00259059d1c2","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/d0f132f4-5207-11e7-b2fb-0cc47a52085c/thumbs/400.webp","publicUrl":"https://bookra.app/books/2wtFbrjW"},{"idCatalog":534407,"shortId":"0OYyKuG5","title":"Гибкие навыки. Исчерпывающее руководство по прокачке себя для начинающих разработчиков","authorLine":"Михаил Анатольевич Райтман, БОМБОРА, Джон Сонмез","primaryAuthorId":"3cc7c38b-3de2-11e0-8c7e-ec5afce481d9","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/0c664662-614c-11ee-8496-0cc47af30fe4/thumbs/400.webp","publicUrl":"https://bookra.app/books/0OYyKuG5"},{"idCatalog":106406,"shortId":"0eeuBNKq","title":"Программист-фанатик","authorLine":"Чед Фаулер, И. Рузмайкина","primaryAuthorId":"2569c767-b1fc-11e4-b5d9-0025905a06ea","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/d8779521-ecaf-11e4-8b80-0025905a069a/thumbs/400.webp","publicUrl":"https://bookra.app/books/0eeuBNKq"},{"idCatalog":91973,"shortId":"3uJTN4JL","title":"Как тестируют в Google","authorLine":"Джефф Каролло, Джеймс А. Уиттакер, Джейсон Арбон, Юлия Нечаева, Алена Васюхина","primaryAuthorId":"6e4f15ac-7f37-11e3-a294-0025905a06ea","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/1491d3f9-be70-11e3-b422-0025905a069a/thumbs/400.webp","publicUrl":"https://bookra.app/books/3uJTN4JL"},{"idCatalog":175293,"shortId":"3BSMywyF","title":"Impact mapping: Как повысить эффективность программных продуктов и проектов по их разработке","authorLine":"Альпина Паблишер, Гойко Аджич, Алексей Олейник","primaryAuthorId":"479b8c95-e05d-11ee-8496-0cc47af30fe4","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/818617c1-6980-11e7-9a04-0cc47a52085c/thumbs/400.webp","publicUrl":"https://bookra.app/books/3BSMywyF"},{"idCatalog":562350,"shortId":"3k4p57oG","title":"Гейм-дизайн: как создаются игры","authorLine":"Майкл Киллик, Д. Брайт","primaryAuthorId":"9889962e-d68a-11ee-8496-0cc47af30fe4","coverUrl":"https://storage.yandexcloud.net/bookra-catalog-litres-public/content/9fffd0d3-d68a-11ee-8496-0cc47af30fe4/thumbs/400.webp","publicUrl":"https://bookra.app/books/3k4p57oG"}],"similarBooksPagination":{"page":1,"pageSize":12,"totalItems":8,"totalPages":1,"hasPrev":false,"hasNext":false}},"notFound":false}