[{"data":1,"prerenderedAt":61},["ShallowReactive",2],{"$fm3jmDCUCqYp6TUCVZL7pwSHldaovC8jYW8vzt8EiFgE":3},{"article":4,"relatedArticles":39,"tagCounts":59},{"slug":5,"content":6,"headings":7,"notes":31,"groupedNotes":32,"title":33,"date":34,"description":35,"tags":36,"author":38},"martin-robert-c-clean-code-a-handbook-of-agile-software","\u003Ch4 id=\"1-общее-описание\">1. Общее описание\u003C\u002Fh4>\n\u003Cp>Книга представляет собой \u003Cstrong>практическое руководство по «ремеслу» (craftsmanship) разработки программного обеспечения\u003C\u002Fstrong> в рамках Agile-подхода. Она посвящена искусству написания качественного кода, который легко читать, поддерживать и изменять. По своему типу это \u003Cstrong>гибрид самоучителя и справочника\u003C\u002Fstrong>: автор предлагает как пошаговые разборы примеров (например, рефакторинг системы аренды видео), так и теоретические выкладки принципов. Текст рассчитан на \u003Cstrong>профессиональных программистов\u003C\u002Fstrong>, которые стремятся перейти от простого написания работающего кода к уровню мастера. Освоив материал, читатель научится отличать «чистый» код от «грязного», овладеет навыками рефакторинга и поймет, как применять дисциплины тестирования для создания надежных систем.\u003C\u002Fp>\n\u003Ch4 id=\"2-структура-и-карта-охвата\">2. Структура и карта охвата\u003C\u002Fh4>\n\u003Cp>Книга разделена на четыре логические части, выстроенные от микро-уровня кода к макро-уровню организации систем:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Часть I: Код.\u003C\u002Fstrong> Подробно разбираются низкоуровневые практики: именование, структура функций, форматирование, обработка ошибок и работа с ИИ.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Часть II: Дизайн.\u003C\u002Fstrong> Переход к правилам объектно-ориентированного проектирования, принципам SOLID и вопросам многопоточности.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Часть III: Архитектура.\u003C\u002Fstrong> Охватывает темы границ системы, независимости компонентов и концепцию «Чистой архитектуры».\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Часть IV: Профессионализм.\u003C\u002Fstrong> Этика, дисциплина оценки (estimation) и командная работа.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Порядок глав обусловлен принципом \u003Cstrong>постепенного повышения уровня абстракции\u003C\u002Fstrong>. За скобками остаются детали конкретных фреймворков, так как автор призывает делать архитектуру независимой от них.\u003C\u002Fp>\n\u003Ch4 id=\"3-описание-разделов\">3. Описание разделов\u003C\u002Fh4>\n\u003Ch5 id=\"часть-i-код-главы-117\">Часть I: Код (Главы 1–17)\u003C\u002Fh5>\n\u003Cp>В этом разделе осваиваются базовые кирпичики чистого кода.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Основы и именование:\u003C\u002Fstrong> Правильные имена должны раскрывать намерения автора без комментариев. Код должен читаться как хорошо написанная проза.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Функции и классы:\u003C\u002Fstrong> Главное правило — функции должны быть \u003Cstrong>крошечными\u003C\u002Fstrong> (буквально несколько строк) и делать \u003Cstrong>только одну вещь\u003C\u002Fstrong>. Вводится «правило спуска» (Stepdown Rule): код должен читаться сверху вниз, где каждая функция ведет к следующему уровню абстракции. Классы также должны иметь одну ответственность (SRP).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Комментарии и форматирование:\u003C\u002Fstrong> Комментарии рассматриваются как «признак неудачи» выразить мысль в самом коде. Форматирование — это средство коммуникации, оно важнее, чем «просто работающий код», так как влияет на поддерживаемость.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Дисциплины тестирования:\u003C\u002Fstrong> Подробно разбираются TDD (разработка через тестирование), TCR (Test &#x26;&#x26; Commit || Revert) и метод небольших пакетов (Small Bundles). Тесты — это не только способ проверки, но и низкоуровневая документация системы.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ИИ и LLM:\u003C\u002Fstrong> Новая глава для второго издания, обсуждающая «программирование промптами» и то, почему владение навыками чистого кода критически важно для контроля кода, генерируемого ИИ.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch5 id=\"часть-ii-дизайн-главы-1822\">Часть II: Дизайн (Главы 18–22)\u003C\u002Fh5>\n\u003Cp>Раздел посвящен организации связей между модулями.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Простой дизайн и SOLID:\u003C\u002Fstrong> Четыре правила простого дизайна Кента Бека (тесты, ясность, отсутствие дубликатов, минимализм). Подробно разбираются пять принципов SOLID, которые позволяют создавать гибкие и устойчивые к изменениям структуры.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Многопоточность (Concurrency):\u003C\u002Fstrong> Описываются сложности параллельного выполнения и принципы защиты (ограничение области данных, использование копий).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Непрерывный дизайн:\u003C\u002Fstrong> Идея того, что дизайн — это не фаза, а постоянный процесс улучшения кода при добавлении каждого нового поведения.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch5 id=\"часть-iii-архитектура-главы-2327\">Часть III: Архитектура (Главы 23–27)\u003C\u002Fh5>\n\u003Cp>Здесь изучается «форма» системы.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Независимость и границы:\u003C\u002Fstrong> Хорошая архитектура позволяет откладывать решения о базе данных, веб-серверах и фреймворках на как можно более поздний срок. Вводится понятие «плагинной архитектуры», где БД и UI являются лишь деталями, подключаемыми к ядру бизнес-правил.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Чистая архитектура (Clean Architecture):\u003C\u002Fstrong> Концепция концентрических кругов, где зависимости всегда направлены внутрь, к высшим политикам (Entity и Use Cases), защищая их от изменений во внешних механизмах (БД, веб).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch5 id=\"часть-iv-ремесло-и-этика-главы-2837\">Часть IV: Ремесло и Этика (Главы 28–37)\u003C\u002Fh5>\n\u003Cp>Заключительная часть фокусируется на личности программиста.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Клятва и ответственность:\u003C\u002Fstrong> Программисты «правят миром», и их ошибки могут стоить жизней. Предлагается «Клятва программиста» из 10 пунктов, включая обещание не производить вредоносный код и всегда предоставлять доказательство его работоспособности.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Продуктивность и командная работа:\u003C\u002Fstrong> Как управлять временем (метод Помодоро), избегать «состояния потока» (которое может вредить качеству) и работать сообща через парное или моб-программирование.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Оценка и обучение:\u003C\u002Fstrong> Использование статистических методов (PERT) для честной оценки сроков. Акцент на том, что профессионал обязан учиться всю жизнь и брать ответственность за свою карьеру на себя.\u003C\u002Fli>\n\u003C\u002Ful>",[8,12,15,18,22,25,28],{"id":9,"text":10,"depth":11},"1-общее-описание","1. Общее описание",3,{"id":13,"text":14,"depth":11},"2-структура-и-карта-охвата","2. Структура и карта охвата",{"id":16,"text":17,"depth":11},"3-описание-разделов","3. Описание разделов",{"id":19,"text":20,"depth":21},"часть-i-код-главы-117","Часть I: Код (Главы 1–17)",4,{"id":23,"text":24,"depth":21},"часть-ii-дизайн-главы-1822","Часть II: Дизайн (Главы 18–22)",{"id":26,"text":27,"depth":21},"часть-iii-архитектура-главы-2327","Часть III: Архитектура (Главы 23–27)",{"id":29,"text":30,"depth":21},"часть-iv-ремесло-и-этика-главы-2837","Часть IV: Ремесло и Этика (Главы 28–37)",[],{},"Clean Code: A Handbook of Agile Software Craftsmanship (2025)","2026-07-16","Практическое руководство по ремеслу разработки: читаемый код, рефакторинг и дисциплины тестирования в Agile-среде.",[37],"Программирование","Martin, Robert C.",[40,47,53],{"slug":41,"title":42,"description":43,"date":44,"author":45,"tags":46},"brooks-frederick-p-jr-the-mythical-man-month-essays-on","The Mythical Man-Month: Essays on Software Engineering (1995)","Классика управления разработкой — мифический человеко-месяц, хирургические бригады, концептуальная целостность и отсутствие серебряной пули.","2026-07-22","Brooks, Frederick P., Jr.",[37],{"slug":48,"title":49,"description":50,"date":44,"author":51,"tags":52},"mdn-contributors-css-performance-optimization-2025","CSS performance optimization (2025)","Оптимизация CSS для быстрого рендера — блокировка отрисовки, reflow, анимации на GPU, шрифты и CSS Containment.","MDN Contributors",[37],{"slug":54,"title":55,"description":56,"date":44,"author":57,"tags":58},"simpson-kyle-you-don-t-know-js-async-performance-2015","You Don't Know JS: Async &#x26; Performance (2015)","Асинхронность и производительность в JavaScript — событийный цикл, промисы, генераторы, Web Workers и практики бенчмаркинга.","Simpson, Kyle",[37],{"Программирование":60},9,1785324880328]