Элементы стиля программирования, Брайан В. Керниган и П. Дж. Плаугер представляет собой исследование стиля программирования, отстаивающее идею о том, что компьютерные программы должны быть написаны не только так, чтобы удовлетворять "стилю" компилятора или личного программирования, но также для "удобочитаемости" людьми., в частности, инженеры по обслуживанию программного обеспечения, программисты и технические писатели. Первоначально он был опубликован в 1974 году.
В названии и тоне книги явно отдается дань уважения Элементам стиля, написанным Странком и Уайтом и считается практическим шаблоном для обсуждения Эдсгера Дейкстры структурированного программирования. Он оказал большое влияние и породил серию похожих текстов, адаптированных к отдельным языкам, таких как Элементы стиля программирования C, Элементы стиля C #, Элементы стиля Java (TM), Элементы стиля MATLAB и т. Д. 72>
Книга построена на коротких примерах из реальных, опубликованных программ в учебниках программирования. Это приводит к практическому лечению, а не к абстрактному или академическому обсуждению. Этот стиль дипломатичен и, как правило, сочувственен в своей критике, а также откровенно честен - некоторые примеры, в которых он находит недостатки, взяты из собственных работ авторов (один пример во втором издании взят из первого издания).
Содержание
- 1 Уроки
- 2 Прием
- 3 Ссылки
- 4 Внешние ссылки
Уроки
Уроки резюмируются в конце каждого раздела в содержательном максимы, такие как «Пусть машина делает всю грязную работу»:
- Пишите четко - не будьте слишком умными.
- Говорите, что вы имеете в виду, просто и прямо.
- Используйте библиотечные функции, когда это возможно.
- Избегайте слишком большого количества временных переменных.
- Пишите четко - не жертвуйте ясностью ради эффективности.
- Позвольте машине делать грязную работу.
- Замените повторяющиеся выражения вызовами общих функций.
- Используйте скобки, чтобы избежать двусмысленности.
- Выбирайте имена переменных, которые не будут перепутаны.
- Избегайте ненужного ветвей.
- Если логическое выражение сложно понять, попробуйте преобразовать его.
- Выберите представление данных, которое упрощает программу.
- Напишите сначала в удобном для понимания понимать псевдоязык; затем переведите на любой язык, который вам нужен.
- Модульность. Используйте процедуры и функции.
- Полностью избегайте gotos, если вы можете сохранить программу читаемой.
- Не исправляйте плохой код - переписывайте его.
- Напишите и протестируйте большую программу небольшими частями.
- Используйте рекурсивные процедуры для рекурсивно определенных структур данных.
- Проверьте ввод на достоверность и достоверность.
- Убедитесь, что ввод не нарушает пределы программа.
- Завершить ввод по маркеру конца файла, а не по счетчику.
- Определить неверный ввод; восстановите, если возможно.
- Упростите подготовку ввода, а вывод не требует пояснений.
- Используйте единые форматы ввода.
- Упростите ввод для проверки.
- Используйте ввод с самоидентификацией. Разрешить значения по умолчанию. Отображать оба на выходе.
- Убедитесь, что все переменные инициализированы перед использованием.
- Не останавливайтесь на одной ошибке.
- Используйте отладочные компиляторы.
- Остерегайтесь единичных ошибок.
- Позаботьтесь о правильном ответвлении при равенстве.
- Будьте осторожны, если цикл выходит в одно и то же место из середины и снизу.
- Убедитесь, что ваш код «ничего не делает» изящно.
- Тестируйте программы на их граничных значениях.
- Проверьте некоторые ответы вручную.
- 10,0 умножить на 0,1 будет почти никогда не 1.0.
- 7/8 равно нулю, а 7.0 / 8.0 не равно нулю.
- Не сравнивайте числа с плавающей запятой исключительно на равенство.
- Сделайте это прямо перед вы делаете это быстрее.
- Сделайте это отказоустойчивым, прежде чем делать это быстрее.
- Дайте понять, прежде чем делать это быстрее.
- Не жертвуйте ясностью ради мелких повышение эффективности.
- Пусть ваш компилятор выполнит простые оптимизации.
- Не напрягайтесь, чтобы повторно использовать код; вместо этого реорганизуйте.
- Убедитесь, что особые случаи действительно особенные.
- Сохраняйте простоту, чтобы ускорить работу.
- Не копайтесь в коде, чтобы сделать его быстрее - найдите лучший алгоритм.
- Инструментируйте свои программы. Измерьте, прежде чем вносить изменения в эффективность.
- Убедитесь, что комментарии и код согласованы.
- Не повторяйте код с комментариями - учитывайте каждый комментарий.
- Не комментируйте. плохой код - перепишите его.
- Используйте имена переменных, которые что-то значат.
- Используйте метки операторов, которые что-то значат.
- Отформатируйте программу, чтобы читатель ее понял.
- Задокументируйте макеты данных.
- Не комментируйте слишком много
. Современные читатели могут счесть недостатком то, что в его примерах используются старые процедурные языки программирования (Fortran и PL / I ), которые сильно отличаются от популярных сегодня. На момент написания этой книги было изобретено несколько популярных сегодня языков. Однако многие из пунктов книги, которые обычно касаются стилистических и структурных вопросов, выходят за рамки деталей конкретных языков.
Ресепшн
Kilobaud Microcomputing заявил: «Если вы собираетесь писать программы для использования другими людьми, то вам следует прочитать эту книгу. Если вы рассчитываете стать профессиональным программистом, эта книга - обязательное чтение ».
Ссылки
- B. В. Керниган и П. Дж. Плаугер, Элементы стиля программирования, Макгроу-Хилл, Нью-Йорк, 1974. ISBN 0-07-034199-0
- Б. W. Kernighan и PJ Plauger, The Elements of Programming Style 2nd Edition, McGraw Hill, New York, 1978. ISBN 0-07-034207-5
Внешние ссылки