Утверждать это лучший способ.Утверждайте, что это не прекращает работу программы, даже лучше, так что коллега может продолжать тестировать свой код, не будучи заблокированным вашими заглушками функций, и он всегда в курсе того, что еще не реализовано.
В случае, если этоВаша IDE не поддерживает интеллектуальные утверждения или постоянные точки останова. Вот простая реализация (c ++):
#ifdef _DEBUG
// 0xCC - int 3 - breakpoint
// 0x90 - nop?
#define DebugInt3 __emit__(0x90CC)
#define DEBUG_ASSERT(expr) ((expr)? ((void)0): (DebugInt3) )
#else
#define DebugInt3
#define DEBUG_ASSERT(expr) assert(expr)
#endif
//usage
void doStuff()
{
//here the debugger will stop if the function is called
//and your coworker will read your message
DEBUG_ASSERT(0); //TODO: will be implemented on the next week;
//postcondition number 2 of the doStuff is not satisfied;
//proceed with care /Johny J.
}
Преимущества:
- код компилируется и запускается
- aРазработчик получит сообщение о том, что не реализовано, если и только если он столкнется с вашим кодом во время тестирования, поэтому он не будет перегружен ненужной информацией
- сообщение указывает на связанный код (не на блок перехвата исключений)или что угодно).Стек вызовов доступен, поэтому можно отследить место, где он вызывает незавершенный кусок кода.
- разработчик после получения сообщения может продолжить свой тестовый прогон без перезапуска программы
Недостатки:
- Чтобы отключить сообщение, нужно закомментировать строку кода.Такое изменение может проникнуть в коммит.
PS Кредиты для первоначальной реализации DEBUG_ASSERT идут моему коллеге EG