Введение |
2 |
Стиль |
4 |
Принципы хорошего стиля программирования |
5 |
Имена |
6 |
Выражения |
8 |
Стилевое единство и идиомы |
12 |
Макрофункции |
18 |
Загадочные числа |
19 |
Комментарии |
22 |
Стоит ли так беспокоиться о стиле? Дополнительная литература. |
26 |
Алгоритмы и структуры данных |
27 |
Одна из основ программирования |
28 |
Поиск |
29 |
Сортировка |
31 |
Библиотеки |
33 |
Быстрая сортировка на языке Java |
36 |
"О большое" |
38 |
Динамически расширяемые массивы |
39 |
Списки |
41 |
Деревья |
46 |
Хэш-таблицы |
50 |
Заключение. Дополнительная литература. |
53 |
Проектирование и реализация |
54 |
Центральный момент в создании программы |
55 |
Алгоритм цепей Маркова |
56 |
Варианты структуры данных |
57 |
Создание структуры данных в языке С |
58 |
Генерация вывода |
61 |
Объектно-ориентированный язык Java |
63 |
C++ |
66 |
Языки скриптов AWK и PERL |
68 |
Производительность |
70 |
Уроки |
71 |
Дополнительная литература |
72 |
Интерфейсы |
73 |
Проектирование интерфейсов |
74 |
Значения, разделенные запятой |
75 |
Прототип библиотеки |
76 |
Библиотека для распространения |
79 |
Реализация на C++ |
86 |
Принципы интерфейса |
90 |
Управление ресурсами |
92 |
Abort, Retry, Fail? |
94 |
Пользовательские интерфейсы |
98 |
Дополнительная литература |
99 |
Отладка |
100 |
Баг |
101 |
Отладчики |
102 |
Хорошие подсказки, простые ошибки |
103 |
Трудные ошибки, нет зацепок |
106 |
Последняя надежда |
109 |
Невоспроизводимые ошибки |
111 |
Средства отладки |
112 |
Чужие ошибки |
114 |
Заключение. Дополнительная литература. |
115 |
Тестирование |
116 |
Проблемы вашего кода |
117 |
Тестируйте при написании кода |
118 |
Систематическое тестирование |
123 |
Автоматизация тестирования |
126 |
Тестовые оснастки |
128 |
Стрессовое тестирование |
131 |
Полезные советы |
133 |
Кто осуществляет тестирование? |
134 |
Тестирование программы markov |
135 |
Заключение. Дополнительная литература. |
136 |
Производительность |
137 |
Увеличение производительности |
138 |
Узкое место |
139 |
Замеры времени и профилирование |
143 |
Стратегии ускорения |
147 |
Настройка кода |
149 |
Эффективное использование памяти |
152 |
Предварительная оценка |
154 |
Заключение. Дополнительная литература. |
156 |
Переносимость |
157 |
Степень переносимости |
158 |
Язык |
159 |
Заголовочные файлы и библиотеки |
163 |
Организация программы |
164 |
Изоляция |
167 |
Обмен данными |
168 |
Порядок байтов |
169 |
Переносимость и внесение усовершенствований |
172 |
Интернационализация |
174 |
Заключение. Дополнительная литература. |
175 |
Нотация |
176 |
Способ записи |
177 |
Форматирование данных |
178 |
Регулярные выражения |
183 |
Программируемые инструменты |
188 |
Интерпретаторы, компиляторы и виртуальные машины |
190 |
Программы, которые пишут программы |
195 |
Использование макросов для генерации кода |
198 |
Компиляция "на лету" |
199 |
Дополнительная литература |
202 |
Приложение. Свод правил. |
203 |
Эпилог |
205 |