Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kernigan_paik.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.91 Mб
Скачать

1.7. Стоит ли так беспокоиться?

В этой главе мы поговорили об основных составляющих хорошего стиля программирования: информативных именах, ясности в выраже­ниях, прозрачной логике, читабельности кода -и комментариев, а также обсудили важность использования соглашений и идиоматических бло­ков для достижения всего вышеперечисленного.

Однако стоит ли так беспокоиться о стиле? Кому какая разница, как программа выглядит изнутри, если она работает? Не слишком ли много времени придется тратить на ее "причесывание"? Не слишком ли рас­плывчаты рекомендуемые правила?

Ответ на эти вопросы состоит в следующем: хорошо и красиво написан­ный код проще читать и воспринимать; в нем, без сомнения, содержится меньше ошибок, и он почти наверняка будет короче, чем код, бездумно скомпонованный и оставленный без улучшений. Когда программа пи­шется в спешке, когда и так трудно успеть к установленным срокам, ка­жется вполне естественным не обращать внимания на стиль, оставив за­боты о нем на потом. Однако подобное решение может оказаться весьма накладным. Некоторые примеры из этой главы уже дали вам представ­ление о том, что может случиться, если пренебрегать хорошим стилем. Небрежно оформленный код — плохой код, и не только потому, что вы­глядит он некрасиво и читать его трудно; как правило, в таком коде со­держатся и ошибки.

Основная мысль состоит в том, что хороший стиль должен просто вой­ти в привычку. Если вы будете задумываться о стиле при написании ко­да, если вы будете выкраивать время для того, чтобы проверять и улуч­шать его стиль, вы выработаете у себя очень полезную привычку. После того как все это вы будете проделывать автоматически, ваше подсозна­ние позаботится о многих деталях, и даже код, который вы будете писать в спешке, станет гораздо лучше.

Дополнительная литература

Как мы уже заявляли в начале главы, писать хороший код и просто хорошо писать по-английски — достаточно схожие понятия. "Элементы стиля" В. Странка и Э. Б. Уайта (W. Strunk, Е. В. White. The Elements of Style. Allyn & Bacon) — самый хороший из небольших учебников пись­менного английского.

Эта глава во многом взята из книги Брайана Кернигана и П. Дж. Пла-угера "Элементы стиля программирования" (Brian Kernighan, P. J. Plau-ger. The Elements of Programming Style. McGraw-Hill, 1978). "Создание надежного кода" Стива Магьюира (Steve Maguire. Writing Solid Code. Microsoft Press, 1993) — идеальный источник советов по программиро­ванию. Кроме того, интересное обсуждение стиля имеется в книгах Мак-Коннелла "Все о коде" (Steve McConnell. Code Complete. Microsoft Press, 1993) и Питера ван дер Линдена "Профессиональное программирова­ние на С: Секреты С" (Peter van der Linden. Expert С Programming: Deep С Secrets. Prentice Hall, 1994).

  1. Алгоритмы

и структуры данных

В конце концов, только знание инструментов и технологий обеспечит правильное решение поставленной задачи, и только определенный уро­вень опыта обеспечит устойчиво профессиональные результаты.

Реймонд Филдинг. Технология специальных эффектов

в кинематографе

Исследование алгоритмов и структур данных является одной из ос­нов программирования, а также богатым полем элегантных технологий и сложных математических изысканий. И это — что-то большее, чем раз­влечение для теоретически подготовленных: хороший алгоритм Или структура данных могут позволить решить в течение нескольких секунд проблему, которая без них решалась бы годы.

В таких специальных областях, как графика, базы данных, синтакси­ческий разбор, цифровой анализ и моделирование, возможность реше­ния задачи целиком и полностью зависит от наличия специальных алго­ритмов и структур данных. Если вы разрабатываете программы в новых для вас областях программирования, то вы должны выяснить, какие на­работки уже существуют, иначе вы потратите свое время впустую в по­пытках плохо сделать то, что уже кем-то было сделано хорошо.

Каждая программа зависит от алгоритмов и структур данных, но ред­ко бывает нужно изобретать новые алгоритмы. Даже в сложной про­грамме, например в компиляторе или Web-браузере, структуры данных по большей части являются массивами, списками, деревьями и хэш-таб-лицами. Когда программе нужна более изощренная структура, она, ско­рее всего, будет основываться на этих более простых структурах. Соот­ветственно, задача программиста — знать, какие алгоритмы и структуры доступны, а также понимать, как выбрать среди них нужные.

Такова, вкратце, ситуация. Есть лишь горстка основных алгоритмов, которые применяются практически в каждой программе, — это, прежде всего, поиск и сортировка, и даже эти алгоритмы зачастую включены в библиотеки. Почти все структуры'данных также сделаны на основе не­скольких фундаментальных структур. Поэтому материал данной главы знаком почти всем программистам. Мы написали работающие версии программ, чтобы дискуссия была более конкретной, и при желании вы можете обратиться непосредственно к исходному коду, но делайте это, только если вы разобрались в том, что вам могут предложить ваш язык программирования и его библиотеки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]