Я понимаю, как использовать закладки, чтобы запомнить одну точку в вашем коде. Тем не менее, как можно отслеживать поток кода, который они исследуют? Например: несколько закладок и порядок, в котором они были сделаны.
Пример:
Сообщение об ошибке: «Столкновения не работают на углах стен»
- Воспроизведение ошибки приводит к тому, что определенные полигоны не сталкиваются.
- Код столкновения был написан недоступным разработчиком. Так что расследование идет примерно так:
Во время расследования, особенно при рассмотрении не кодовых элементов, таких как Google, можно разумно ожидать, что они потеряют свое место в коде ( я уже смотрел на этот путь к коду? Или какой путь к коду я изучал? к этой функции и т. д.). То же самое касается неизбежных прерываний (Босс: мне нужно [Длительный бессмысленный отчет] СЕЙЧАС и т. Д.)
Было бы полезно иметь ресурс методов или инструментов для обеспечения возможности отслеживать свое место в коде.
Изменить : приведенный выше пример является потенциальной иллюстрацией, а не фактической проблемой, требующей ответа.
Другой способ сформулировать этот вопрос:
При изучении новой системы, как вы отслеживаете, где вы находитесь в изучении кода? Речь идет не о понимании того, почему код делает то, что он делает (для чего нужны комментарии), а о том , как он это делает (что можно узнать только путем чтения кода, а не комментариев).
источник
Помимо всех упомянутых замечательных технологий, я обнаружил, что старомодный лист бумаги А3 является отличным помощником в этих вопросах. Запишите свои идеи и организуйте их в стиле mindmap.
источник
И мой редактор, и отладчик могут переходить к определению функции и иметь многоуровневую кнопку «назад», например, веб-браузер, чтобы вернуться туда, где я был раньше. Обычно этого достаточно для отслеживания сложного процесса отладки. Это также помогает иметь контроль над исходным кодом, который позволяет вам много совершать . Это дает мне сообщение коммита, объясняющее, почему я что-то пытаюсь, а также быстрый способ отменить изменения, если они не работают. Помимо этого, простая доска для перечисления потенциальных и изученных потенциальных клиентов заполняет все оставшиеся для меня пробелы.
источник
Несколько способов, которыми я отслеживаю:
источник
Я использую простое решение - никогда не закрывайте ничего, пока я не закончу с задачей. Это означает, что обычно в одном из примерно 50 открытых окон / вкладок есть что-то, что напомнит мне, о чем я думал, когда вернусь к этому.
источник
Получить реальный инструмент для разработчиков / IDE, что вам когда-либо нравится. Vi, Emacs, Eclipse или что-то еще (выбор такой же большой, как и споры о том, что лучше, но это еще одна проблема), и научитесь правильно его использовать . Не используйте его, как многие, как Блокнот с подсветкой синтаксиса. Научитесь пользоваться горячими клавишами и не полагайтесь на мышь для обычных действий (это слишком медленно). Большой экран (минимум 1920x1200) является благотворным.
Мой инструмент разработчика назвал (медленные, но полезные имена делают их постоянными) и неназванные (быстрое вставка и удаление) закладки, прямой и обратный просмотр и просмотр справок - все в одном, заметки todo и разработчика (личные и групповые), прикрепленные к конкретная строка исходного кода. Это делает каждый язык под солнцем, без необходимости устанавливать еще один плагин.
Я работаю над кодовой базой, состоящей из дюжины или более модулей на 1 миллион плюс SLOC, используя полдюжины языков. Очевидно, что я не работаю над всеми из них одновременно, а сосредотачиваюсь на маленьких частях одного или двух, но я могу с помощью нескольких действий перейти к любой точке кода, которая связана с тем, что я делаю.
источник
В Visual Studio в сеансе отладки вы можете использовать окно 'Call Stack' (вы можете включить его
Debug / Windows / Call Stack
или с помощью ярлыкаCtrl+Alt+c
) для отслеживания потока кода.источник
Я удивлен, что никто не упомянул множество инструментов, которые могут создавать графики графа вызовов. Я нашел, что doxygen - большая помощь. Вам даже не нужно использовать doxygen в своей программе, вы можете просто пометить функции, которые вы хотите отслеживать.
источник
Я использую режим org для emacs, который является инструментом для наложения контуров. С его помощью я могу написать схему, которая имитирует стек вызовов кода и включает прямые ссылки на сам исходный код (через org-store-link). Вы можете включить пояснительный текст, ссылки на веб-страницы и т. Д. (Например, когда вы ищете в Google магические числа)
Это не идеально. Например, структура структуры не имеет никакого представления о возврате на уровень, поэтому сложно отследить путь выполнения, в отличие от просто стека. Но это следующая лучшая вещь для диаграмм на бумаге, которую я нашел.
источник