Главная - Литература

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 [290] 291 292 293 294

6.4. Разумные причины создания классов.............................................................................148

6.5. Аспекты, специфические для языков................................................................................152

6.6. Следующий уровень: пакеты классов...............................................................................153

7 Высококачественные методы...............................................................................157

7.1. Разумные причины создания методов............................................................................1б0

7.2. Проектирование на уровне методов................................................................................1бЗ

7.3. Удачные имена методов.................................................................................................................1б7

7.4. Насколько объемным может быть метод?...................................................................169

7.5. Советы по использованию параметров методов.................................................170

7.6. Отдельные соображения по использованию функций.................................177

7.7. Методы-макросы и встраиваемые методы.................................................................178

8 Защитное программирование................................................................................182

8.1. Защита программы от неправильных входных данных..............................183

8.2. Утверждения..............................................................................................................................................184

8.3. Способы обработки ошибок....................................................................................................189

8.4. Исключения...............................................................................................................................................193

8.5. Изоляция повреждений, вызванных ошибками...................................................198

8.6. Отладочные средства.......................................................................................................................200

8.7. Доля защитного программирования в промышленной версии...........204

8.8. Защита от защитного программирования.................................................................206

9 Процесс программирования с псевдокодом......................................................209

9.1. Этапы создания классов и методов....................................................................................210

9.2. Псевдокод для профи.......................................................................................................................211

9.3. Конструирование методов с использованием ППП.........................................214

9.4. Альтернативы ППП.............................................................................................................................225

Часть III Переменные

10 Общие принципы использования переменных................................................230

10.1. Что вы знаете о данных?.............................................................................................................231

10.2. Грамотное объявление переменных.............................................................................232

10.3. Принципы инициализации переменных................................................................233

10.4. Область видимости.........................................................................................................................238

10.5. Персистентность...............................................................................................................................245

10.6. Время связывания.............................................................................................................................24б

10.7. Связь между типами данных и управляющими структурами...............247

10.8. Единственность цели каждой переменной............................................................249

11 Сила имен переменных.........................................................................................252

11.1. Общие принципы выбора имен переменных.....................................................253

11.2. Именование конкретных типов данных...................................................................257

11.3. Сила конвенций именования...............................................................................................263

11.4. Неформальные конвенции именования...................................................................264

11.5. Стандартизованные префиксы...........................................................................................272

11.6. Грамотное сокращение имен переменных............................................................274

11.7. Имена, которых следует избегать.....................................................................................277



12 Основные типы данных.........................................................................................282

12.1. Числа в общем......................................................................................................................................283

12.2. Целые числа............................................................................................................................................284

12.3. Числа с плавающей запятой...................................................................................................286

12.4. Символы и строки............................................................................................................................289

12.5. Логические переменные............................................................................................................292

12.6. Перечислимые типы......................................................................................................................294

12.7. Именованные константы..........................................................................................................299

12.8. Массивы......................................................................................................................................................301

12.9. Создание собственных типов данных (псевдонимы).................................303

13 Нестандартные типы данных...............................................................................310

13.1. Структуры.................................................................................................................................................310

13.2. Указатели...................................................................................................................................................314

133. Глобальные данные.........................................................................................................................326

Часть IV Операторы

14 Организация последовательного кода..............................................................338

14.1. Операторы, следующие в определенном порядке...........................................338

14.2. Операторы, следующие в произвольном порядке...........................................342

15 Условные операторы.............................................................................................346

15.1. Операторы if...........................................................................................................................................34б

15.2. Операторы case...................................................................................................................................353

16 Циклы........................................................................................................................359

16.1. Выбор типа цикла.............................................................................................................................359

16.2. Управление циклом........................................................................................................................365

16.3. Простое создание цикла - изнутри наружу.........................................................378

16.4. Соответствие между циклами и массивами...........................................................379

17 Нестандартные управляющие структуры.........................................................382

17.1. Множественные возвраты из метода............................................................................382

17.2. Рекурсия......................................................................................................................................................385

17.3. Оператор goto.......................................................................................................................................389

17.4. Перспективы нестандартных управляющих структур................................401

18 Табличные методы.................................................................................................404

18.1. Основные вопросы применения табличных методов................................405

18.2. Таблицы с прямым доступом.................................................................................................406

18.3. Таблицы с индексированным доступом....................................................................418

18.4. Таблицы со ступенчатым доступом................................................................................419

18.5. Другие примеры табличного поиска............................................................................422

19 Общие вопросы управления................................................................................424

19.1. Логические выражения...............................................................................................................424

19.2. Составные операторы (блоки)............................................................................................436

193. Пустые выражения...........................................................................................................................437

19.4. Укрощение опасно глубокой вложенности...........................................................438



19.5. Основа программирования: структурное программирование..........448

19.6. Управляющие структуры и сложность........................................................................450

Часть V Усовершенствование кода

20 Качество по.............................................................................................................456

20.1. Характеристики качества ПО...............................................................................................456

20.2. Методики повышения качества ПО................................................................................459

20.3. Относительная эффективность

методик контроля качества ПО.......................................................................................................462

20.4. Когда выполнять контроль качества ПО?.................................................................466

20.5. Главный Закон Контроля Качества ПО.......................................................................467

21 Совместное конструирование.............................................................................471

21.1. Обзор методик совместной разработки ПО.........................................................472

21.2. Парное программирование....................................................................................................475

21.3. Формальные инспекции............................................................................................................477

21.4. Другие методики совместной разработки ПО....................................................484

21.5. Сравнение методик совместного конструирования.....................................487

22 Тестирование, выполняемое разработчиками.................................................490

22.1. Тестирование, выполняемое разработчиками, и качество ПО...........492

22.2. Рекомендуемый подход к тестированию, выполняемому разработчиками...............................................................................................................................................494

22.3. Приемы тестирования.................................................................................................................496

22.4. Типичные ошибки............................................................................................................................507

22.5. Инструменты тестирования...................................................................................................513

22.6. Оптимизация процесса тестирования........................................................................518

22.7. Протоколы тестирования.........................................................................................................520

23 Отладка.....................................................................................................................524

23.1. Общие вопросы отладки............................................................................................................524

23.2. Поиск дефекта......................................................................................................................................529

233. Устранение дефекта........................................................................................................................539

23.4. Психологические аспекты отладки................................................................................543

23.5. Инструменты отладки - очевидные и не очень...............................................545

24 Рефакторинг............................................................................................................551

24.1. Виды эволюции ПО.........................................................................................................................552

24.2. Введение в рефакторинг............................................................................................................553

24.3. Отдельные виды рефакторинга..........................................................................................559

24.4. Безопасный рефакторинг........................................................................................................566

24.5. Стратегии рефакторинга..........................................................................................................568

25 Стратегии оптимизации кода...............................................................................572

25.1. Общее обсуждение производительности ПО......................................................573

25.2. Введение в оптимизацию кода............................................................................................576

25.3. Где искать жир и патоку?............................................................................................................583

25.4. Оценка производительности................................................................................................588



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 [290] 291 292 293 294



0.0038