Элементы стиля программирования - The Elements of Programming Style

Элементы программирования Style.jpg
Обложка второго издания
АвторБрайан В. Керниган и П. Дж. Плаугер
ОпубликованоМакгроу-Хилл
Дата публикации
1978
Страницы168 страниц
ISBN978-0070342071

Элементы стиля программирования, к Брайан В. Керниган и П. Дж. Плаугер, это исследование стиль программирования, отстаивая идею о том, что компьютерные программы должны быть написаны не только для удовлетворения "стиля" компилятора или личного программирования, но и для "удобочитаемости" для людей, в частности обслуживание программного обеспечения инженеры, программисты и технические писатели. Первоначально он был опубликован в 1974 году.

В названии и тоне книги отдается дань уважения Элементы стиля, к Strunk & белый и считается практическим шаблоном продвижения Эдсгер Дейкстра структурное программирование обсуждения. Это оказало влияние и породило серию похожих текстов, адаптированных для отдельных языков, таких как Элементы стиля программирования на C, Элементы стиля C #, Элементы стиля Java (TM), Элементы стиля MATLAB, так далее.

Книга построена на коротких примерах из реальных, опубликованных программ в учебниках программирования. Это приводит к практическому лечению, а не к абстрактному или академическому обсуждению. Этот стиль дипломатичен и в целом отзывчив в своей критике, а также откровенно честен - некоторые примеры, в которых он находит недостатки, взяты из собственной работы авторов (один пример во втором издании взят из первого издания).

Уроки

Его уроки резюмируются в конце каждого раздела в содержательные изречения, например, «Пусть машина сделает всю грязную работу»:

  1. Пишите четко - не будьте слишком умны.
  2. Скажите, что вы имеете в виду, просто и прямо.
  3. По возможности используйте библиотечные функции.
  4. Избегайте слишком большого количества временных переменных.
  5. Пишите четко - не жертвуйте ясностью ради эффективности.
  6. Позвольте машине делать всю грязную работу.
  7. Замените повторяющиеся выражения вызовами общих функций.
  8. Заключите в скобки, чтобы избежать двусмысленности.
  9. Выбирайте имена переменных, которые вас не перепутают.
  10. Избегайте ненужных веток.
  11. Если логическое выражение сложно понять, попробуйте преобразовать его.
  12. Выберите представление данных, которое упрощает программу.
  13. Сначала напишите на понятном псевдоязыке; затем переведите на любой язык, который вам нужен.
  14. Модульность. Используйте процедуры и функции.
  15. Полностью избегайте использования gotos, если вы можете сохранить читаемость программы.
  16. Не исправляйте плохой код - переписывайте его.
  17. Напишите и протестируйте большую программу небольшими частями.
  18. Используйте рекурсивные процедуры для рекурсивно определенных структур данных.
  19. Проверить ввод на достоверность и достоверность.
  20. Убедитесь, что ввод не выходит за рамки программы.
  21. Завершать ввод маркером конца файла, а не счетчиком.
  22. Определите неверный ввод; восстановите, если возможно.
  23. Сделайте вводимые данные легкими для подготовки и вывода понятными.
  24. Используйте единые форматы ввода.
  25. Сделайте вводимые данные удобными для корректуры.
  26. Используйте самоидентифицирующий ввод. Разрешить значения по умолчанию. Эхо обоих на выходе.
  27. Перед использованием убедитесь, что все переменные инициализированы.
  28. Не останавливайтесь на одном баге.
  29. Используйте отладочные компиляторы.
  30. Остерегайтесь единичных ошибок.
  31. Постарайтесь найти верный путь к равенству.
  32. Будьте осторожны, если петля выходит в одно и то же место из середины и снизу.
  33. Убедитесь, что ваш код изящно «ничего не делает».
  34. Тестируйте программы на их граничных значениях.
  35. Проверьте несколько ответов вручную.
  36. 10,0 умножить на 0,1 почти никогда не будет 1,0.
  37. 7/8 равно нулю, а 7.0 / 8.0 не равно нулю.
  38. Не сравнивайте числа с плавающей запятой исключительно на равенство.
  39. Сделайте это правильно, прежде чем сделать это быстрее.
  40. Сделайте его отказоустойчивым, прежде чем делать это быстрее.
  41. Дайте понять, прежде чем делать это быстрее.
  42. Не жертвуйте ясностью ради небольшого повышения эффективности.
  43. Пусть ваш компилятор сделает простую оптимизацию.
  44. Не напрягайтесь, чтобы повторно использовать код; вместо этого реорганизуйте.
  45. Убедитесь, что особые случаи действительно особенные.
  46. Сделайте это проще, чтобы сделать это быстрее.
  47. Не пытайтесь делать код быстрее - найдите алгоритм получше.
  48. Инструментируйте свои программы. Измерьте, прежде чем вносить изменения в эффективность.
  49. Убедитесь, что комментарии и код согласованы.
  50. Не просто повторяйте код комментариями - учитывайте каждый комментарий.
  51. Не комментируйте плохой код - перепишите его.
  52. Используйте имена переменных, которые что-то значат.
  53. Используйте метки операторов, которые что-то значат.
  54. Отформатируйте программу так, чтобы читатель ее понял.
  55. Задокументируйте свои макеты данных.
  56. Не комментируйте слишком много


Современные читатели могут найти недостатком в том, что в его примерах используются старые процедурные языки программирования (Фортран и PL / I ), которые сильно отличаются от популярных сегодня. На момент написания этой книги было изобретено несколько популярных сегодня языков. Однако многие из пунктов книги, которые обычно касаются стилистических и структурных вопросов, выходят за рамки деталей конкретных языков.

Прием

Килобод Микрокомпьютеры заявил, что «Если вы собираетесь писать программы, которые будут использоваться другими людьми, вам следует прочитать эту книгу. Если вы планируете стать профессиональным программистом, эту книгу необходимо прочитать».[1]

Рекомендации

  1. ^ Ривз, Джек В. (январь 1980 г.). «Элементы стиля программирования». Килобод Микрокомпьютеры. п. 9. Получено 23 июн 2014.
  • Б. В. Керниган и П. Дж. Плаугер, Элементы стиля программирования, Макгроу-Хилл, Нью-Йорк, 1974. ISBN  0-07-034199-0
  • Б. В. Керниган и П. Дж. Плаугер, Элементы стиля программирования 2-е издание, Макгроу Хилл, Нью-Йорк, 1978. ISBN  0-07-034207-5

внешняя ссылка