чистый код книга pdf
Чистый код. Создание, анализ и рефакторинг
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение».
Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги – концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.
Примечание верстальщика: книга содержит большой объем исходников (code), так что не рекомендуется применять скрипты «Генеральная уборка», «Обработка кавычек» и т. д.
«В 1951 году в японской промышленности появилась методология повышения качества, называвшаяся TPM (Total Productive Maintenance). Она была ориентирована прежде всего на сопровождение, а не на производство. Доктрина TPM базировалась на так называемых «принципах 5S». В сущности, принципы 5S представляют собой набор житейских правил. Кстати говоря, они также заложены в основу методологии Lean — другого модного течения на западной сцене, набирающего обороты и в программных кругах. Как указывает Дядюшка Боб в своем введении, хорошая практика программирования требует таких качеств, как сосредоточенность, присутствие духа и мышление. Проблемы не всегда решаются простым действием, максимальной загрузкой оборудования для производства в оптимальном темпе. Философия 5S состоит из следующих концепций:»
Чистый код: создание, анализ и рефакторинг
Скачать книгу
О книге «Чистый код: создание, анализ и рефакторинг»
В программировании много тонкостей, и, если не учесть некоторые моменты, код может не работать. Однако часто встречаются случаи, что код рабочий, но не слишком «чистый», плохо написанный. В книге «Чистый код: создание, анализ и рефакторинг» Мартин Роберт учит работать с кодом и рассказывает, какие изменения внести, если код нужно доработать. Можно, конечно, и не вносить никаких изменений, но тогда на поддержку кода потребуется гораздо больше ресурсов.
Это учебник для тех программистов, которые хотят стать настоящими профессионалами, а не представителями среднего и низшего уровней. Код здесь рассматривается с разных сторон, изучается так, как только возможно. Автор рассказывает о важных принципах, даёт советы, как написать чистый код. Он приводит большое количество примеров. Затем он предлагает разные сценарии с нарастающей сложностью. Есть упражнения, в которых нужно очистить код или отредактировать так, чтобы при работе возникало меньше проблем. В завершении книги автор говорит обобщённо обо всех правилах и о мышлении, которое должно быть у программиста во время написания и чистки кода.
Книга научит отличать хорошие и плохие коды, изменять их в лучшую сторону. Читатели смогут узнать много нового. Большое количество понятных примеров делают книгу доступной даже для новичков. Всё это легко применимо на практике, как при работе с языком Java, так и при работе с другими языками программирования.
На нашем сайте вы можете скачать книгу «Чистый код: создание, анализ и рефакторинг» Мартин Роберт бесплатно и без регистрации в формате pdf, читать книгу онлайн или купить книгу в интернет-магазине.
Чистый код, создание, анализ и рефакторинг, библиотека программиста, Мартин Р., 2013
Чистый код, создание, анализ и рефакторинг, библиотека программиста, Мартин Р., 2013.
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода. 12+ (Для детей старше 12 лет. В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
Да будет код.
Возможно, кто-то скажет, что книга о коде отстала от времени — код сейчас уже не так актуален; вместо него внимание следует направить на модели и требования. Нам даже доводилось слышать мнение, что код как таковой скоро перестанет существовать. Что скоро весь код будет генерироваться, а не писаться вручную. Что программисты станут попросту не нужны, потому что бизнесмены будут генерировать программы по спецификациям. Ерунда! Код никогда не исчезнет, потому что код представляет подробности требований. На определенном уровне эти подробности невозможно игнорировать или абстрагировать; их приходится определять. А когда требования определяются настолько подробно, чтобы они могли быть выполнены компьютером, это и есть программирование. А их определение есть код.
Содержание.
Предисловие.
Введение.
Глава 1. Чистый код.
Глава 2. Содержательные имена (Тим Оттингер).
Глава 3. Функции.
Глава 4. Комментарии.
Глава 5. Форматирование.
Глава 6. Объекты и структуры данных.
Глава 7. Обработка ошибок (Майк Физерс).
Глава 8. Границы (Джеймс Тренинг).
Глава 9. Модульные тесты.
Глава 10. Классы (совместно с Джеффом Лангром).
Глава 11. Системы (Кевин Дин Уомплер).
Глава 12. Формирование архитектуры.
Глава 13. Многопоточность (Бретт Л. Шухерт).
Глава 14. Последовательное очищение.
Глава 15. Внутреннее строение JUnit.
Глава 16. Переработка SerialDate.
Глава 17. Запахи и эвристические правила.
Приложение А. Многопоточность II.
Приложение Б. org.jfree.date.SerialDate.
Приложение В. Перекрестные ссылки.
Эпилог.
Алфавитный указатель.
Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу
Чистый код. Мартин Р.
Плохой код может работать, но он будет мешать развитию проекта и компании-разработчика, требуя дополнительные ресурсы на поддержку и «укрощение». Каким же должен быть код? Эта книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. Сначала вы познакомитесь с принципами, паттернами и приемами написания чистого кода. Затем приступите к практическим сценариям с нарастающей сложностью — упражнениям по чистке кода или преобразованию проблемного кода в менее проблемный. И только после этого перейдете к самому важному — концентрированному выражению сути этой книги — набору эвристических правил и «запахов кода». Именно эта база знаний описывает путь мышления в процессе чтения, написания и чистки кода.
Содержание
Предисловие 14
Введение 20
Глава 1. Чистый код 23
Да будет код 24
Плохой код 25
Расплата за хаос 26
Грандиозная переработка 26
Отношение 27
Основной парадокс 28
Искусство чистого кода? 28
Что такое «чистый код»? 29
Мы — авторы 36
Правило бойскаута 37
Предыстория и принципы 37
Заключение 38
Литература 38
Глава 2. Содержательные имена (Тим Оттингер) 39
Имена должны передавать намерения программиста 40
Избегайте дезинформации 41
Используйте осмысленные различия 42
Используйте удобопроизносимые имена 44
Выбирайте имена, удобные для поиска 45
Избегайте схем кодирования имен 45
Венгерская запись 46
Префиксы членов классов 46
Интерфейсы и реализации 47
Избегайте мысленных преобразований 47
Имена классов 48
Имена методов 48
Избегайте остроумия 48
Выберите одно слово для каждой концепции 49
Воздержитесь от каламбуров 49
Используйте имена из пространства решения 50
Используйте имена из пространства задачи 50
Добавьте содержательный контекст 51
Не добавляйте избыточный контекст 53
Несколько слов напоследок 53
Глава 3. Функции 55
Компактность! 58
Блоки и отступы 59
Правило одной операции 59
Секции в функциях 60
Один уровень абстракции на функцию 61
Чтение кода сверху вниз: правило понижения 61
Команды switch 62
Используйте содержательные имена 64
Аргументы функций 64
Стандартные унарные формы 65
Аргументы-флаги 66
Бинарные функции 66
Тернарные функции 67
Объекты как аргументы 68
Списки аргументов 68
Глаголы и ключевые слова 68
Избавьтесь от побочных эффектов 69
Выходные аргументы 70
Разделение команд и запросов 70
Используйте исключения вместо возвращения кодов ошибок 71
Изолируйте блоки try/catch 72
Обработка ошибок как одна операция 72
Магнит зависимостей Error.java 73
Не повторяйтесь 73
Структурное программирование 74
Как научиться писать такие функции? 74
Завершение 75
Литература 78
Глава 4. Комментарии 79
Комментарии не компенсируют плохого кода 81
Объясните свои намерения в коде 81
Хорошие комментарии 81
Юридические комментарии 82
Информативные комментарии 82
Представление намерений 82
Прояснение 83
Предупреждения о последствиях 84
Комментарии TODO 85
Усиление 85
Комментарии Javadoc в общедоступных API 86
Плохие комментарии 86
Бормотание 86
Избыточные комментарии 87
Недостоверные комментарии 89
Обязательные комментарии 90
Журнальные комментарии 90
Шум 91
Опасный шум 93
Не используйте комментарии там, где можно использовать функцию или переменную 93
Позиционные маркеры 94
Комментарии за закрывающей фигурной скобкой 94
Ссылки на авторов 95
Закомментированный код 95
Комментарии HTML 96
Нелокальная информация 96
Слишком много информации 97
Неочевидные комментарии 97
Заголовки функций 97
Заголовки Javadoc во внутреннем коде 98
Пример 98
Литература 101
Глава 5. Форматирование 102
Цель форматирования 103
Вертикальное форматирование 103
Газетная метафора 104
Вертикальное разделение концепций 105
Вертикальное сжатие 106
Вертикальные расстояния 107
Вертикальное упорядочение 112
Горизонтальное форматирование 112
Горизонтальное разделение и сжатие 113
Горизонтальное выравнивание 114
Отступы 116
Вырожденные области видимости 117
Правила форматирования в группах 118
Правила форматирования от дядюшки Боба 118
Глава 6. Объекты и структуры данных 121
Абстракция данных 121
Антисимметрия данных/объектов 123
Закон Деметры 126
Крушение поезда 126
Гибриды 127
Скрытие структуры 127
Объекты передачи данных 128
Активные записи 129
Заключение 130
Литература 130
Глава 7. Обработка ошибок (Майк Физерс) 131
Используйте исключения вместо кодов ошибок 132
Начните с написания команды try-catch-finally 133
Используйте непроверяемые исключения 135
Передавайте контекст с исключениями 136
Определяйте классы исключений в контексте потребностей
вызывающей стороны 136
Определите нормальный путь выполнения 138
Не возвращайте null 139
Не передавайте null 140
Заключение 141
Литература 141
Глава 8. Границы (Джеймс Тренинг) 142
Использование стороннего кода 143
Исследование и анализ границ 145
Изучение log4j 145
Учебные тесты: выгоднее, чем бесплатно 147
Использование несуществующего кода 148
Чистые границы 149
Литература 149
Глава 9. Модульные тесты 150
Три закона TTD 151
О чистоте тестов 152
Тесты как средство обеспечения изменений 153
Чистые тесты 154
Предметно-ориентированный язык тестирования 157
Двойной стандарт 157
Одна проверка на тест 159
Одна концепция на тест 161
EI.R.S.T 162
Заключение 163
Литература 163
Глава 10. Классы (совместно с Джеффом Лангром) 164
Строение класса 164
Инкапсуляция 165
Классы должны быть компактными! 165
Принцип единой ответственности (SRP) 167
Связность 169
Поддержание связности приводит к уменьшению классов 170
Структурирование с учетом изменений 176
Изоляция изменений 179
Литература 180
Глава 11. Системы (Кевин Дин Уомплер) 181
Как бы вы строили город? 182
Отделение конструирования системы от ее использования 182
Отделение main 184
Фабрики 184
Внедрение зависимостей 185
Масштабирование 186
Поперечные области ответственности 189
Посредники 190
АОП-инфраструктуры на «чистом» Java 192
Аспекты AspectJ 195
Испытание системной архитектуры 196
Оптимизация принятия решений 197
Применяйте стандарты разумно, когда они приносят очевидную пользу 197
Системам необходимы предметно-ориентированные языки 198
Заключение 199
Литература 199
Глава 12. Формирование архитектуры 200
Четыре правила 200
Правило № 1: выполнение всех тестов 201
Правила № 2-4: переработка кода 201
Отсутствие дублирования 202
Выразительность 204
Минимум классов и методов 206
Заключение 206
Литература 206
Глава 13. Многопоточность (Бретт Л. Шухерт) 207
Глава 14. Последовательное очищение 225
Реализация Args 226
Как я это сделал? 233
Args: черновик 233
На этом я остановился 245
О постепенном усовершенствовании 246
Аргументы String 248
Заключение 286
Глава 15. Внутреннее строение JUnit 287
Инфраструктура J Unit 288
Заключение 302
Глава 16. Переработка SerialDate 303
Прежде всего — заставить работать 304
. Потом очистить код 306
Заключение 320
Литература 321
Глава 17. Запахи и эвристические правила 322
Приложение А. Многопоточность II 357
Пример приложения «клиент/сервер» 357
Знайте свои библиотеки 367
Зависимости между методами могут нарушить работу многопоточного кода 370
Повышение производительности 375
Взаимная блокировка 377
Тестирование многопоточного кода 381
Средства тестирования многопоточного кода 384
Полные примеры кода 385
Приложение Б. org.jfree.date.SerialDate 390
Приложение В. Перекрестные ссылки 455
Эпилог 458
Алфавитный указатель 459
Чистый код, создание, анализ и рефакторинг, библиотека программиста, Мартин Р., 2010
Чистый код, создание, анализ и рефакторинг, библиотека программиста, Мартин Р., 2010.
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на ею поддержку и «укрощение». та книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.
Да будет код.
Возможно, кто-то скажет, что книга о коде отстала от времени — код сейчас уже не так актуален; вместо него внимание следует направить на модели и требования. Нам даже доводилось слышать мнение, что код как таковой скоро перестанет существовать. Что скоро весь код будет генерироваться, а не писаться вручную. Что программисты станут попросту не нужны, потому что бизнесмены будут генерировать программы по спецификациям. Ерунда! Код никогда не исчезнет, потому что код представляет подробности требований. На определенном уровне эти подробности невозможно игнорировать или абстрагировать; их приходится определять. А когда требования определяются настолько подробно, чтобы они могли быть выполнены компьютером, это и есть программирование. А их определение есть код.
Содержание.
Предисловие.
Введение.
Глава 1. Чистый код.
Глава 2. Содержательные имена (Тим Оттингер).
Глава 3. Функции.
Глава 4. Комментарии.
Глава 5. Форматирование.
Глава 6. Объекты и структуры данных.
Глава 7. Обработка ошибок (Майк Физерс).
Глава 8. Границы (Джеймс Тренинг).
Глава 9. Модульные тесты
Глава 10. Классы (совместно с Джеффом Лангром).
Глава 11. Системы (Кевин Дин Уомплер).
Глава 12. Формирование архитектуры.
Глава 13. Многопоточность (Бретт Л. Шухерт).
Глава 14. Последовательное очищение.,
Глава 15. Внутреннее строение JUnit
Глава 16. Переработка SerialDate.
Глава 17. Запахи и эвристические правила.
Приложение А. Многопоточность II.
Приложение Б. org.jfree.date.SerialDate.
Приложение В. Перекрестные ссылки.
Эпилог.
Алфавитный указатель.
Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу