На экран пользователя могут посылаться сообщения, предназначен-
ные для пользователя, и сообщения, предназначенные для програм-
миста и ничего не говорящие пользователю кроме того, что в систе-
ме что-то не в порядке. Появление сообщений, предназначенных для
программиста, говорит пользователю только о том, что надо пере-
стать работать с системой и передать её программисту для исследо-
вания и исправления. Иными словами, при нормальной работе системы
сообщения для программиста должны отсутствовать. В сообщениях для
пользователя следует применять только те понятия, которые должны
быть известны пользователю.
* * *
Отсутствие параметра на входе программы и неправильный параметр
на входе -- это две разные ситуации. Различие -- приблизительно
как между NULL и SPACES в поле таблицы в базе данных. Если в про-
грамме делается проверка на то и другое, то "сворачивать" резуль-
тат проверки в сообщение "Неправильный параметр..." вместо того,
чтобы использовать два сообщения -- "Неправильный параметр..." и
"Отсутствие параметра..."-- это нерационально, потому что означа-
ет в будущем потерю времени на распознавание, с какой из двух
ситуаций имеешь дело.
Сообщение "Неправильный параметр" -- неправильное: должно быть
сообщение "Неправильный параметр Q: значение XXX вместо YYY или
ZZZ".
Отладка -- это не однократно переживаемый трудный период в
жизненном цикле программной системы, а регулярное действие на
протяжении всего её существования, предпринимаемое после неиз-
бежных доработок и исправлений ошибок.
Программная система должна строиться так, чтобы было удобно её
отлаживать, иначе чрезмерные сложности будут иметь место уже на
стадии её разработки.
Средства обеспечения удобства отладки:
1. Подсистема трассировки.
2. Средства проверки входящих параметров в программных модулях.
3. Подсистема сообщений об ошибках.
4. Набор отладочных средств: вспомогательных отладочных программ,
отладочных наборов данных.
5. Набор описаний обязательных тестов.
Трассировки и встроенных проверок в системе должно быть не сли-
шком много и не слишком мало. Когда их слишком много, становится
трудно разобраться в функционалитете программы. Кроме того, вспо-
могательный программный код является дополнительным источником
ошибок.
Отладочные программы -- это часть программной системы: необхо-
димая, используемая на протяжении всего жизненного цикла системы.
Качество написания отладочных программ и порядок их учёта должны
быть не хуже, чем для основных программ системы.
* * *
Дебаггеры нужны только тогда, когда имеешь дело с плохо напи-
санными программами. Если программа имеет чёткую и лёгкую для
понимания архитектуру, удобную подсистему трассировки и лишена
"заплат", отыскивать в ней недоделки и описки не составляет
больших затруднений.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Александр Бурьяк.