Отладка приложений



         

Набор навыков


И хорошие отладчики, и хорошие разработчики имеют серьезные навыки решения специфических для программного обеспечения задач. Эти навыки можно приобрести и оттачивать. Сильных отладчиков/разработчиков отличает от хороших то, что они не только умеют решать соответствующие проблемы, но и понимают, как части проекта соотносятся с проектом в целом.

Ниже перечислены компоненты разработки, доскональное знание которых определяет мастерство программиста в отладке:

  • проект;
  •  язык программирования;
  •  технология;
  •  операционная система;
  •  особенности CPU.

Знание проекта

Знание своего проекта — это первая линия защиты от ошибок интерфейса пользователя, а также ошибок логики и выполнения программы. Зная, как и где реализуются свойства в различных исходных файлах, можно быстро разобраться, кто что делает и для кого.

К сожалению, из-за большого разнообразия проектов единственный способ их изучения — это чтение проектной документации, если она существует, и просмотр кода в отладчике. Если вы работаете с исходным кодом C++, то может оказаться полезным также взглянуть на файлы соответствующего браузера (программы просмотра исходных кодов C++). Некоторые компании, кроме того, производят инструменты, которые преобразуют существующий исходный код в UML-диаграммы. Даже плохо документированный исходный код лучше, чем совсем ничего, если он спасает вас от необходимости интерпретировать листинги дизассемблера.

Знание языка программирования

Знание языка (или языков) программирования, применяемого при разработке, — задача более трудная, чем это может показаться. Я понимаю под этим знание не только того, как на языке нужно программировать, но и того, что он "делает за сценой". Например, разработчики иногда забывают, что локальные переменные, которые являются объектами С++-классов, или перегруженные С++-операторы могут создавать временные элементы в стеке. И оператор назначения, выглядящий вполне невинно, может иметь дело с большим объемом исполняемого кода.


Содержание  Назад  Вперед