Читаемый код, или Программирование как искусство
Дастин Босуэлл, Тревор Фаучер
Любому программисту доводилось видеть код, который настолько неаккуратен и так пестрит ошибками, что от его чтения начинает болеть голова. За пять лет авторы этой книги проанализировали сотни примеров «плохого» кода (в основном - собственного), пытаясь определить, чем плох тот или иной код и как его можно улучшить. К какому выводу они пришли? Необходимо писать такой код, который читатель сможет понять максимально быстро, причем, даже если этот читатель - сам создатель этого кода.
В данной книге рассматриваются базовые принципы и практические методы, которые можно применять всякий раз при написании кода. В каждой главе на примере несложных образцов кода, написанного на разных языках программирования, изучается отдельный аспект создания кода и демонстрируется, как сделать код простым для понимания.
Издательство: Питер, 2012 г.
ISBN 978-5-459-01188-3, 978-0596802295
Количество страниц: 208.
Содержание книги «Читаемый код, или Программирование как искусство»:
- 13 Предисловие
- 14 О чем эта книга
- 15 Как читать эту книгу
- 15 Использование примеров кода
- 15 Как с нами связаться
- 16 Благодарности
- 17 Об авторах
- 18 От издательства
- 19 Глава 1. Код должен быть простым для понимания
- 20 Что делает код «лучше»?
- 21 Фундаментальная теорема читаемости
- 21 Меньше – значит лучше?
- 22 Противоречит ли время-для-понимания другим целям?
- 22 Самое сложное
- Часть I. Поверхностные улучшения
- 25 Глава 2. Помещаем в имена полезную информацию
- 26 Выбираем конкретные слова
- 28 Избегаем общих имен, например таких, как tmp и retval
- 31 Используйте конкретные имена вместо абстрактных
- 33 Добавление дополнительной информации к имени
- 36 Насколько длинным должно быть имя?
- 38 Использование форматирования имен для передачи их смысла
- 40 Итог
- 41 Глава 3. Имена, которые нельзя понять неправильно
- 42 Пример: Filter() (фильтрация)
- 42 Пример: Clip(text, lenght) (обрезать)
- 43 Применяйте префиксы min и max для (включающих) границ
- 44 Используйте в именах границ слова first и last
- 44 Используйте имена begin и end для включающе-исключающих границ
- 45 Называем булевы переменные
- 45 Оправдываем ожидания пользователей
- 47 Пример: оценка нескольких вариантов названия
- 49 Итог
- 51 Глава 4. Эстетичность
- 52 Почему красота имеет значение?
- 53 Перераспределение разрывов строк сделает код более последовательным и компактным
- 55 Избавляемся от неоднородности с помощью методов
- 57 Выравнивание столбцов
- 58 Выберите определенный порядок и придерживайтесь его
- 58 Объединяем объявления в блоки
- 59 Разбиваем код на абзацы
- 61 Персональный стиль или единообразие?
- 62 Итог
- 63 Глава 5. Комментируем мудро
- 64 Что НЕ нужно комментировать
- 67 Записываем ваши мысли
- 69 Поставьте себя на место читателя
- 74 Преодоление «творческого кризиса»
- 75 Итог
- 77 Глава 6. Комментарии должны быть четкими и компактными
- 78 Старайтесь комментировать компактно
- 78 Избегайте двусмысленных местоимений и указательных слов
- 79 «Полируем» нечеткие предложения
- 79 Четко описываем поведение функции
- 80 Используйте примеры ввода/вывода, иллюстрирующие спорные ситуации
- 81 Описывайте цели вашего кода
- 82 Комментарии, содержащие названия параметров функций
- 83 Употребляйте максимально содержательные слова
- 83 Итог
- Часть II. Упрощение цикла и логики
- 87 Глава 7. Как сделать поток команд управления удобочитаемым
- 88 Порядок аргументов в условных конструкциях
- 89 Порядок блоков if/else
- 91 Условная конструкция ?: (также известная как тернарный оператор)
- 92 Избегайте циклов do/while
- 94 Слишком быстрый возврат из функции
- 94 Пресловутый goto
- 95 Сокращаем количество вложенного кода
- 98 Можете ли вы отследить порядок выполнения вашей программы?
- 99 Итог
- 101 Глава 8. Разбиваем длинные выражения
- 102 Поясняющие переменные
- 102 Итоговые переменные
- 103 Используем законы де Моргана
- 104 Злоупотребление упрощенной логикой
- 104 Пример: боремся со сложной логикой
- 107 Разбиваем огромные утверждения
- 108 Еще один творческий способ упрощения выражений
- 109 Итог
- 111 Глава 9. Переменные и читаемость
- 112 Избавляемся от переменных
- 115 Сокращаем область видимости ваших переменных
- 121 Используйте переменные, меняющие свое значение однократно
- 122 Последний пример
- 124 Итог
- Часть III. Реорганизация кода
- 127 Глава 10. Выделяем побочные подзадачи
- 128 Вводный пример: findClosestLocation()
- 130 Чистый вспомогательный код
- 130 Прочий универсальный код
- 132 Создавайте больше универсального кода
- 133 Функциональность, специфичная для проекта
- 134 Упрощаем существующий интерфейс
- 135 Изменяем интерфейс под собственные нужды
- 136 Все хорошо в меру
- 137 Итог
- 139 Глава 11. Одна задача в любой момент времени
- 141 Задания могут быть маленькими
- 142 Извлекаем значения из объекта
- 146 Более объемный пример
- 149 Итог
- 151 Глава 12. Превращаем мысли в код
- 152 Четко описываем логику
- 153 Библиотеки нам помогут
- 154 Применяем этот метод к более объемным задачам
- 156 Описание решения задачи на русском языке
- 158 Итог
- 161 Глава 13. Пишите меньше кода
- 162 Не беспокойтесь о реализации этой функции – она вам не понадобится
- 162 Критикуйте и разделяйте ваши требования
- 164 Сохраняйте базу кода небольшой
- 165 Старайтесь изучать возможности доступных библиотек
- 166 Пример: использование инструментов UNIX вместо написания кода
- 167 Итог
- Часть IV. Избранные темы
- 171 Глава 14. Тестирование и читаемость
- 172 Создавайте тесты, которые легко читать и обслуживать
- 172 Что не так с этим тестом?
- 173 Приводим тест в читаемый вид
- 174 Создание минимального тестового выражения
- 175 Реализуем пользовательские мини-языки
- 182 Что было не так с тем тестом?
- 183 Разработка, ориентированная на тестирование
- 185 Не увлекайтесь!
- 186 Итог
- 187 Глава 15. Разработка и реализация счетчика минут и часов
- 188 Постановка задачи
- 188 Определение интерфейса класса
- 191 Первый подход: простое решение
- 194 Вторая попытка: реализация конвейерного дизайна
- 197 Третья попытка: дизайн, при котором время делится на блоки
- 202 Сравнение трех решений
- 202 Итог
Инструкция как скачать книгу Дастин Босуэлл, Тревор Фаучер: Читаемый код, или Программирование как искусство в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.