Программирование



|
41.1. Комментарии должны иметь тот же отступ, что и окружающий текст программы.
41.1. Комментарии должны иметь тот же отступ, что и окружающий текст программы. Абзацные отступы предназначены для того, чтобы сделать структуру вашей программы легко понятной. Если вы...
41. Условные операторы выделяются абзацными отступами.
41. Условные операторы выделяются абзацными отступами. Я делаю это даже в операторах из одной строки: if ( by_land ) one(); else two(); а не так: if ( by_land ) one() else two(); Очевидным...
37. Нужно обеспечивать возможность распечатки всего текста программы.
37. Нужно обеспечивать возможность распечатки всего текста программы. Часто проще найти ошибку на распечатанной странице, чем на экране, даже на большом. Текст на бумаге легче читается...
36. Подпрограмма должна помещаться на экране.
36. Подпрограмма должна помещаться на экране. Затраты на вызов подпрограмм в С/С++ невелики; если для функции указано ключевое слово inline, то затрат фактически нет. Поэтому хорошая мысль...
33. Располагайте в строке только один оператор.
33. Располагайте в строке только один оператор. Нет абсолютно никакой причины упаковывать в одну строку столько операторов, сколько сможете, если у вас нет намерения сделать программу...
27. Комментарий должен предоставлять только нужную для сопровождения информацию.
27. Комментарий должен предоставлять только нужную для сопровождения информацию. Особенно неприятным и бесполезным комментарием является декларативный заголовочный блок. Заголовок сам по себе...
25. Пропустите свой исходный тест через систему проверки орфографии.
25. Пропустите свой исходный тест через систему проверки орфографии. Ваши комментарии не только станут более читаемыми, этот метод побудит вас использовать в качестве имен переменных тех,...
24. Комментарии должны быть предложениями.
24. Комментарии должны быть предложениями. Они должны быть хорошо составлены и иметь правильную пунктуацию, по возможности без сокращений. Не превращайте свои комментарии в секретный код,...
23. Располагайте программу и документацию вместе.
23. Располагайте программу и документацию вместе. Если документация отделена от текста программы, то ее очень трудно обновлять. Следовательно, основная часть вашей документации должна...
22. Программа без комментариев ничего не стоит.
22. Программа без комментариев ничего не стоит. Программа, на написание которой затрачен год, может использоваться в течение 10 лет. Вам придется затратить на сопровождение гораздо больше...
Форматирование и документация
Глава 3 Форматирование и документация Форматирование важно; тексты на С и С++ и так достаточно тяжело читаются, чтобы ухудшать ситуацию еще и плохим форматированием. Представьте, что вы...
21.1. Эффективность часто просто пугало.
21.1. Эффективность часто просто пугало. Я потратил несколько часов, делая одну подпрограмму более эффективной , и не останавливался, чтобы подумать о том, как часто эта подпрограмма будет...
21. Пишите программу с учетом сопровождения - вы специалист по сопровождению.
21. Пишите программу с учетом сопровождения - вы специалист по сопровождению. Сопровождение начинается немедленно после завершения программы, а сопровождением на этой стадии обычно занимаетесь...
20. Пустые потери времени.
20. Пустые потери времени. Если вы не можете решить неподатливую проблему, то займитесь на некоторое время чем-либо другим. Программисты часто наиболее продуктивны, когда смотрят в окно,...
19. Вы не можете программировать в изоляции.
19. Вы не можете программировать в изоляции. Классическая книга Джеральда Уэйнберга The Psychology of Computer Programming (New York, Van Nostrand Reinhold, 1971) содержит великолепную историю...
18. Нельзя измерять свою производительность числом строк.
18. Нельзя измерять свою производительность числом строк. Прежде, когда вы изучали английский в школе, то вам никогда не приходило в голову сдавать черновик письменного задания, если вы,...
15. Прежде всего, не навреди.
15. Прежде всего, не навреди. Это правило касается сопровождения программ. Будучи ребенком, я читал научно-фантастический рассказ, в котором незадачливый путешественник во времени случайно...
Общие проблемы разработки программ
Глава 2 Общие проблемы разработки программ Эта часть книги содержит общие правила для процесса разработки программ и не касается деталей собственно языков С и С++. Я сделаю это в последующих...
14. Малое - это прекрасно. (Большое == медленное)
14. Малое - это прекрасно. (Большое == медленное) Распухание программ является огромной проблемой. Жесткий диск вместимостью 350 Мбайт на моем лаптопе может вместить операционную систему,...
13. Заказчик всегда прав.
12. Вовлекайте пользователей в процесс проектирования. 13. Заказчик всегда прав. Ни одной программе не добиться успеха, если ее проектировщики не общаются непосредственно с ее конечными...
11. Компьютерное программирование является индустрией обслуживания.
11. Компьютерное программирование является индустрией обслуживания. Меня иногда шокирует неуважение, проявляемое некоторыми программистами по отношению к пользователям своих программ, как если...
10. Проблема должна быть хорошо продумана перед тем, как она сможет быть решена.
10. Проблема должна быть хорошо продумана перед тем, как она сможет быть решена. Это правило с двумя последующими первоначально располагалось в начале этой главы. Подумав, я переместил их сюда,...
9.1. Используйте для работы соответствующий инструмент.
9. Используйте весь язык. 9.1. Используйте для работы соответствующий инструмент. Данное правило является спутником правила Не путайте привычность с читаемостью , представленного ниже, но...
7.1. В цехе современных программистов нет места примадоннам.
7.1. В цехе современных программистов нет места примадоннам. Это следствие из правила чтения. Программисты, которые думают, что их код совершенен, которые отвергают критику, вместо того, чтобы...
Читайте код.
7. Читайте код. Все писатели - это читатели. Вы учитесь, когда смотрите, что делают другие писатели. Удивительно, но программисты - писатели на С++ и С - часто не читают код. Тем хуже. Я...
Начинайте с комментариев.
6.1. Начинайте с комментариев. Если вы последовали совету в предыдущем правиле, то комментарии для вашей программы уже готовы. Для того, чтобы получить документированное описание реализации, вы...
Если вы не можете сказать это по-английски, то вы не сможете выполнить это на С/С++.
6. Если вы не можете сказать это по-английски, то вы не сможете выполнить это на С/С++. Это правило с последующим также относятся к правилам пользовательского интерфейса, но здесь под...
Производительность может измеряться числом нажатий клавиш.
5. Производительность может измеряться числом нажатий клавиш. Интерфейс, требующий меньше нажатий клавиш (или других действий пользователя типа щелчков мышью), лучше того, который требует много...
Не путайте легкость в изучении с легкостью в использовании.
4. Не путайте легкость в изучении с легкостью в использовании. Эта проблема когда-то касалась почти исключительно машин Macintosh, но Windows и здесь в последнее время выходит вперед. Компьютер...
Интерфейс пользователя не должен быть похожим на компьютерную программу (принцип прозрачности)
3. Интерфейс пользователя не должен быть похожим на компьютерную программу (принцип прозрачности). Я однажды слышал, как кто-то сказал, что лучшим пользовательским интерфейсом из когда-либо...
2.2. Решайте конкретную проблему, а не общий случай.
2.1. Не решайте проблем, которых не существует. 2.2. Решайте конкретную проблему, а не общий случай. Поучительно использовать OLE 2.0 как пример того, что случается с многими слишком сложными...
2. Подавляйте демонов сложности (Часть 1).
2. Подавляйте демонов сложности (Часть 1). Ричард Рашид (разработчик Mach - варианта ОС UNIX) выступил несколько лет назад с основным докладом на конференции разработчиков Microsoft. Его...
Сущность программирования: без сюрпризов, минимум сцепления и максимум согласованности
1. Сущность программирования: без сюрпризов, минимум сцепления и максимум согласованности. Многие (если не все) правила в этой книге могут быть объединены в три метаправила (при желании),...
Процесс проектирования
Глава 1 Процесс проектирования Эта глава вместе с последующей, посвященной разработке, являются наиболее туманными главами в этой книге. Правила здесь довольно общего характера по своей...
Книга по С
Книга по С * 1. ОСНОВНЫЕ ПОНЯТИЯ И ОСОБЕННОСТИ ЯЗЫКА 1.1 Стандарные подпрограммы (функции Printf, Scanf) 1.2 Пример простой программы на языке Си 1.3 Основные типы данных, операции и выражения...
Стандарные подпрограммы (функции Printf, Scanf)
Стандарные подпрограммы (функции Printf, Scanf) Сейчас мы познакомимся с важнейшими понятиями и особенностями языка Си на нескольких примерах. При этом мы сконцентрируем наше внимание на таких...
Функции Fprintf, fscanf, fgets, fputs
Функции Fprintf, fscanf, fgets, fputs надо дописывать дальше начало книги по...
Функции Fopen, fclose, getc, putc
Функции Fopen, fclose, getc, putc В тех случаях, когда программа обрабатывает достаточно большой объем данных, последние обычно организуются и хранятся вне оперативной памяти ЭВМ. Наиболее...
Условная компиляция
Условная компиляция Условные конструкции препроцессора позволяют компилировать или пропускать часть программы в зависимсти от выполнения некоторого условия. Условие может принимать одну из...
Включение файлов
Включение файлов Командная строка для включения файлов выглядит следующим образом: #include filename и указывает препроцессору, что содержимое файла с именем filename надо вставить в том месте...
Замена лексических единиц
Замена лексических единиц . Командная строка вида #define name text вызывает в оставшейся части программы замену всех вхождений идентификатора name на строку text. Например, определение #define...
Препроцессор языка Си
Препроцессор языка Си Мы уже использовали некоторые возможности препроцессора языка Си, сейчас поговорим о нем более подробно. Препроцессор (макропроцессор) - это составная часть стандартного...
Структуры и указатели
Структуры и указатели Мы уже упомянули, что нельзя передавать функции структурную переменную целиком в качестве аргумента (хотя можно передавать отдельные элементы). Но существует возможность...
Структуры
Структура- это совокупность логически связанных переменных, возможно, различных типов, сгруппированных под одним именем для удобства дальнейшей обработки. Традиционным примером структуры служит...
Указатели
Указатель - это переменная, значением которой является адресс другой переменной. Так как указатель может ссылаться на переменные разных типов, с указателем в языке Си связывается тип того...
Переключатель
Мы уже напоминали о том, что использовать для многозадачного ветвления в программе вложенные операторы if-then-else Если глубина вложенности этих операторов свыше трех, то конструкция теряет...
Операторы break и continue
Часто при вознекновении некоторого события удобно иметь возможность досрочно завершить цикл. Используемый для этой цели оператор break (разрыв) вызывает немедленный выход из циклов,...
Организация циклов с помощью оператора do - while
В общем виде этот оператор можно записать следующим образом: do оператор; while( выражение ); Выполняется оператор , а затем вычисляется выражение2 . Если оно истинно, то снова выполняется...
Организация циклов с помощью оператора for
Оператор for является самой популярной структурой для организации циклов. В общем случае его можно представить так : for( выражение1; выражение2; выражение3) оператор; В одной строке этот...
Массивы символов
Любая символьная константа, например ОЙ У ПОЛИ КРИНИЧКА , представляет собой массив символов. Во внутреннем представлении компилятор завершает такой массив символом \0 , так что любая программа...