polevoi_cpp_2013_spring_lecture_04
.pdf
Контракты в исходном коде
•д.б. описаны в комментариях
•для проверки assert(условие)
пример:
#include <cassert>
int findBest(const Data* pData)
{
/// если false, завершить работу программы assert(0 != pData);
// основной код
}
23.03.2013 |
41 |
Тесты
•вспомогательный код
•проверят и/или демонстрирует правильную работу функционала
•не требует « участия человека»
•следует за изменениями основного кода
•часто автоматизируется
23.03.2013 |
42 |
Трассировка
•вывод информации о состоянии
•встроенный вспомогательный код
•целевые
–консоль
–файл
–сетевое соединение и т.д.
•“ управляемое” использование
23.03.2013 |
43 |
Отладчик (debuger)
•специальная программа
•контроль (наблюдение и возможность изменения) состояния
•управляемое исполнение кода (пошаговое, между точками останова)
23.03.2013 |
44 |
Отладочная и продуктовая версия
•Debug
–сдержит отладочную информацию
–“больше” и “медленнее”
•Release
–скомпилирована с необходимой оптимизацией
23.03.2013 |
45 |
Именование переменных
•“ говорящие” имена
•разумная длинна идентификатора
•длинна и содержательность имени зависит от области видимости
23.03.2013 |
46 |
Венгерская нотация
•не использовать
•стандартизованный и зависящий от типа переменной префикс
•распространен в среде Win32 разработчиков
пример:
DWORD dwFlags(0); //< плохо
23.03.2013 |
47 |
Соглашения об именовании
•рекомендуется использовать групповые соглашения
•семантические префиксы/суффиксы
•парность идентификаторов функций
23.03.2013 |
48 |
Соглашения о префиксах
•p – указатель
•m_ - член структуры
•n – число объектов
•i – порядковый номер
23.03.2013 |
49 |
