Читаемый код, или Программирование как искусство Читаемый код, или Программирование как искусство Любому программисту доводилось видеть код, который настолько неаккуратен и так пестрит ошибками, что от его чтения начинает болеть голова. За пять лет авторы этой книги проанализировали сотни примеров \"плохого\" кода (в основном - собственного), пытаясь определить, чем плох тот или иной код и как его можно улучшить. К какому выводу они пришли? Необходимо писать такой код, который читатель сможет понять максимально быстро, причем, даже если этот читатель - сам создатель этого кода. В данной книге рассматриваются базовые принципы и практические методы, которые можно применять всякий раз при написании кода. В каждой главе на примере несложных образцов кода, написанного на разных языках программирования, изучается отдельный аспект создания кода и демонстрируется, как сделать код простым для понимания. Питер 978-5-459-01188-3
393 руб.
Russian
Каталог товаров

Читаемый код, или Программирование как искусство

Временно отсутствует
?
  • Описание
  • Характеристики
  • Отзывы о товаре
  • Отзывы ReadRate
Любому программисту доводилось видеть код, который настолько неаккуратен и так пестрит ошибками, что от его чтения начинает болеть голова. За пять лет авторы этой книги проанализировали сотни примеров "плохого" кода (в основном - собственного), пытаясь определить, чем плох тот или иной код и как его можно улучшить. К какому выводу они пришли? Необходимо писать такой код, который читатель сможет понять максимально быстро, причем, даже если этот читатель - сам создатель этого кода. В данной книге рассматриваются базовые принципы и практические методы, которые можно применять всякий раз при написании кода. В каждой главе на примере несложных образцов кода, написанного на разных языках программирования, изучается отдельный аспект создания кода и демонстрируется, как сделать код простым для понимания.

Оставить заявку на описание
?
Содержание
Предисловие
О чем эта книга
Как читать эту книгу
Использование примеров кода
Как с нами связаться
Благодарности
Об авторах
От издательства
Глава 1. Код должен быть простым для понимания
Что делает код "лучше"?
Фундаментальная теорема читаемости
Меньше - значит лучше?
Противоречит ли время-для-понимания другим
целям?
Самое сложное
Часть I. Поверхностные улучшения
Глава 2. Помещаем в имена полезную информацию
Выбираем конкретные слова
Избегаем общих имен, например таких, как tmp и
retval
Используйте конкретные имена вместо
абстрактных
Добавление дополнительной информации к имени
Насколько длинным должно быть имя?
Использование форматирования имен для передачи
их смысла
Итог
Глава 3. Имена, которые нельзя понять
неправильно
Пример: Filter() (фильтрация)
Пример: Clip(text, lenght) (обрезать)
Применяйте префиксы min и max для (включающих)
границ
Используйте в именах границ слова first и last
Используйте имена begin и end для
включающе-исключающих границ
Называем булевы переменные
Оправдываем ожидания пользователей
Пример: оценка нескольких вариантов названия
Итог
Глава 4. Эстетичность
Почему красота имеет значение?
Перераспределение разрывов строк сделает код
более последовательным и компактным
Избавляемся от неоднородности с помощью
методов
Выравнивание столбцов
Выберите определенный порядок и
придерживайтесь его
Объединяем объявления в блоки
Разбиваем код на абзацы
Персональный стиль или единообразие?
Итог
Глава 5. Комментируем мудро
Что НЕ нужно комментировать
Записываем ваши мысли
Поставьте себя на место читателя
Преодоление "творческого кризиса"
Итог
Глава 6. Комментарии должны быть четкими и
компактными
Старайтесь комментировать компактно
Избегайте двусмысленных местоимений и
указательных слов
"Полируем" нечеткие предложения
Четко описываем поведение функции
Используйте примеры ввода/вывода,
иллюстрирующие спорные ситуации
Описывайте цели вашего кода
Комментарии, содержащие названия параметров
функций
Употребляйте максимально содержательные слова
Итог
Часть II. Упрощение цикла и логики
Глава 7. Как сделать поток команд управления
удобочитаемым
Порядок аргументов в условных конструкциях
Порядок блоков if/else
Условная конструкция ?: (также известная как
тернарный оператор)
Избегайте циклов do/while
Слишком быстрый возврат из функции
Пресловутый goto
Сокращаем количество вложенного кода
Можете ли вы отследить порядок выполнения
вашей программы?
Итог
Глава 8. Разбиваем длинные выражения
Поясняющие переменные
Итоговые переменные
Используем законы де Моргана
Злоупотребление упрощенной логикой
Пример: боремся со сложной логикой
Разбиваем огромные утверждения
Еще один творческий способ упрощения выражений
Итог
Глава 9. Переменные и читаемость
Избавляемся от переменных
Сокращаем область видимости ваших переменных
Используйте переменные, меняющие свое значение
однократно
Последний пример
Итог
Часть III. Реорганизация кода
Глава 10. Выделяем побочные подзадачи
Вводный пример: fndClosestLocation()
Чистый вспомогательный код
Прочий универсальный код
Создавайте больше универсального кода
Функциональность, специфичная для проекта
Упрощаем существующий интерфейс
Изменяем интерфейс под собственные нужды
Все хорошо в меру
Итог
Глава 11. Одна задача в любой момент времени
Задания могут быть маленькими
Извлекаем значения из объекта
Более объемный пример
Итог
Глава 12. Превращаем мысли в код
Четко описываем логику
Библиотеки нам помогут
Применяем этот метод к более объемным задачам
Описание решения задачи на русском языке
Итог
Глава 13. Пишите меньше кода
Не беспокойтесь о реализации этой функции - она
вам не понадобится
Критикуйте и разделяйте ваши требования
Сохраняйте базу кода небольшой
Старайтесь изучать возможности доступных
библиотек
Пример: использование инструментов UNIX вместо
написания кода
Итог
Часть IV. Избранные темы
Глава 14. Тестирование и читаемость
Создавайте тесты, которые легко читать и
обслуживать
Что не так с этим тестом?
Приводим тест в читаемый вид
Создание минимального тестового выражения
Реализуем пользовательские мини-языки
Что было не так с тем тестом?
Разработка, ориентированная на тестирование
Не увлекайтесь!
Итог
Глава 15. Разработка и реализация счетчика минут
и часов
Постановка задачи
Определение интерфейса класса
Первый подход: простое решение
Вторая попытка: реализация конвейерного дизайна
Третья попытка: дизайн, при котором время
делится на блоки
Сравнение трех решений
Итог
Штрихкод:   9785459011883
Аудитория:   Для специалистов
Бумага:   Офсет
Масса:   262 г
Размеры:   235x 165x 11 мм
Оформление:   Частичная лакировка
Тираж:   2 000
Литературная форма:   Практическое руководство
Сведения об издании:   Переводное издание
Тип иллюстраций:   Черно-белые
Художник-иллюстратор:   Адуевская Л.
Переводчик:   Сивченко О.
Составитель:   Каляева Е.
Отзывы
Найти пункт
 Выбрать станцию:
жирным выделены станции, где есть пункты самовывоза
Выбрать пункт:
Поиск по названию улиц:
Подписка 
Введите Reader's код или e-mail
Периодичность
При каждом поступлении товара
Не чаще 1 раза в неделю
Не чаще 1 раза в месяц
Мы перезвоним

Возникли сложности с дозвоном? Оформите заявку, и в течение часа мы перезвоним Вам сами!

Captcha
Обновить
Сообщение об ошибке

Обрамите звездочками (*) место ошибки или опишите саму ошибку.

Скриншот ошибки:

Введите код:*

Captcha
Обновить