Элементы стиля программирования
Эта статья может чрезмерно полагаться на источники, слишком тесно связанные с предметом , что потенциально препятствует тому, чтобы статья была проверяемой и нейтральной . ( февраль 2015 г. ) |
Автор | Брайан В. Керниган и Пи Джей Плаугер |
---|---|
Опубликовано | МакГроу-Хилл |
Дата публикации | 1978 |
Страницы | 168 страниц |
ISBN | 978-0070342071 |
«Элементы стиля программирования» , написанные Брайаном Керниганом и П.Дж. Плаугером , представляют собой исследование стиля программирования , отстаивающее идею о том, что компьютерные программы должны быть написаны не только для удовлетворения «стиля» компилятора или личного программирования, но также и для «читабельности». людьми, особенно инженерами по сопровождению программного обеспечения , программистами и техническими писателями . Первоначально оно было опубликовано в 1974 году.
В названии и тоне книга явно отдает дань уважения « Элементам стиля » Странка и Уайта и считается практическим образцом, продвигающим дискуссии Эдсгера Дейкстры по структурированному программированию . Он оказал влияние и породил серию подобных текстов, адаптированных для отдельных языков, таких как «Элементы стиля программирования C» , «Элементы стиля C#» , «Элементы стиля Java (TM)» , «Элементы стиля MATLAB » и т. д.
Книга построена на коротких примерах из реальных программ, опубликованных в учебниках по программированию. Это приводит к практическому рассмотрению, а не к абстрактной или академической дискуссии. Стиль критики дипломатический и в целом сочувственный, а также беззастенчиво честный - некоторые примеры, к которым он придирается, взяты из собственных работ авторов (один пример во втором издании взят из первого издания).
Уроки
[ редактировать ]Его уроки суммированы в конце каждого раздела в виде содержательных принципов , таких как «Позволь машине сделать грязную работу»:
- Пишите четко – не будьте слишком умными.
- Скажите, что вы имеете в виду, просто и прямо.
- Используйте библиотечные функции, когда это возможно.
- Избегайте слишком большого количества временных переменных.
- Пишите четко – не жертвуйте ясностью ради эффективности.
- Позвольте машине делать грязную работу.
- Замените повторяющиеся выражения вызовами общих функций.
- Заключите в скобки, чтобы избежать двусмысленности.
- Выбирайте имена переменных, которые не будут путать.
- Избегайте ненужных веток.
- Если логическое выражение трудно понять, попробуйте преобразовать его.
- Выберите представление данных, которое сделает программу простой.
- Пишите сначала на понятном псевдоязыке; затем переведите на любой язык, который вам нужен.
- Модульность. Используйте процедуры и функции.
- Полностью избегайте переходов, если вы можете сохранить программу читабельной.
- Не исправляйте плохой код — перепишите его.
- Напишите и протестируйте большую программу небольшими частями.
- Используйте рекурсивные процедуры для рекурсивно определяемых структур данных.
- Проверьте входные данные на правдоподобие и достоверность.
- Убедитесь, что ввод не нарушает ограничений программы.
- Завершить ввод по маркеру конца файла, а не по счетчику.
- Определить неправильный ввод; выздоравливайте, если это возможно.
- Сделайте входные данные простыми для подготовки, а выходные данные не требуют пояснений.
- Используйте единые форматы ввода.
- Сделайте ввод легко корректируемым.
- Используйте самоидентифицирующий ввод. Разрешить значения по умолчанию. Эхо обоих на выходе.
- Перед использованием убедитесь, что все переменные инициализированы.
- Не останавливайтесь на одном баге.
- Используйте отладочные компиляторы.
- Следите за ошибками с точностью до единицы.
- Позаботьтесь о правильном разветвлении по принципу равенства.
- Будьте осторожны, если петля выходит в одно и то же место из середины и снизу.
- Убедитесь, что ваш код изящно «ничего» не делает.
- Тестируйте программы на своих граничных значениях.
- Проверьте некоторые ответы вручную.
- 10,0 умножить на 0,1 вряд ли когда-нибудь будет 1,0.
- 7/8 — ноль, а 7,0/8,0 — не ноль.
- Не сравнивайте числа с плавающей запятой исключительно на предмет равенства.
- Сделайте это правильно, прежде чем делать это быстрее.
- Прежде чем делать это быстрее, сделайте его безопасным.
- Прежде чем делать это быстрее, проясните ситуацию.
- Не жертвуйте ясностью ради небольшого повышения эффективности.
- Позвольте вашему компилятору выполнить простую оптимизацию.
- Не стремитесь повторно использовать код; вместо этого реорганизуйте.
- Убедитесь, что особые случаи действительно особенные.
- Сохраняйте простоту, чтобы сделать это быстрее.
- Не возитесь с кодом, чтобы сделать его быстрее — найдите лучший алгоритм.
- Инструментируйте свои программы. Измерьте, прежде чем вносить изменения в эффективность.
- Убедитесь, что комментарии и код согласуются.
- Не просто повторяйте код с комментариями — учитывайте каждый комментарий.
- Не комментируйте плохой код — перепишите его.
- Используйте имена переменных, которые что-то значат.
- Используйте ярлыки утверждений, которые что-то означают.
- Отформатируйте программу так, чтобы читатель мог ее понять.
- Документируйте макеты данных.
- Не переусердствуйте с комментариями.
Современные читатели могут счесть недостатком то, что в примерах используются старые процедурные языки программирования ( Fortran и PL/I ), которые сильно отличаются от популярных сегодня. На момент написания этой книги было изобретено несколько популярных сегодня языков. Однако многие положения книги, которые в целом касаются стилистических и структурных вопросов, выходят за рамки деталей конкретных языков.
Прием
[ редактировать ]Компания Kilobaud Microcomputing заявила: «Если вы собираетесь писать программы, которые будут использовать другие люди, вам следует прочитать эту книгу. Если вы планируете стать профессиональным программистом, эта книга является обязательным к прочтению». [1]
Ссылки
[ редактировать ]- ^ Ривз, Джек В. (январь 1980 г.). «Элементы стиля программирования» . Килободные микрокомпьютеры . п. 9 . Проверено 23 июня 2014 г.
- Б. В. Керниган и П. Дж. Плаугер, Элементы стиля программирования , Макгроу-Хилл, Нью-Йорк, 1974. ISBN 0-07-034199-0
- Б. В. Керниган и П. Дж. Плаугер, Элементы стиля программирования, 2-е издание , МакГроу-Хилл, Нью-Йорк, 1978. ISBN 0-07-034207-5