Работа с кодом

Apr 20, 2016 00:21

Я работаю с кодом, но думаю, что у работающих с иными формами информации (текстом, формулами, графиками и пр.) тоже возникают похожие задачи проблемы.

По работе мне периодически нужно понять что-то немаленькое или нетривиальное чтобы это что-то изменить или дополнить (да-да, документации традиционно с кискин нос!). И вот что я делаю.

Я примерно локализую область задачи и начинаю составлять всевозможные списки разных поименованных сущностей (подпрограмм, переменных, типов, иногда файлов). Организую несколько первичных смысловых кучек. Прослеживаю доступными способами (чтением кода, трассировкой) последовательность действий анализируемой программы и составляю некое его сконденсированное описание (в виде дерева вызовов и пр.). По ходу я помечаю вещи, которые сейчас не понятны. Далее я медитирую над этой информационной выборкой, заныривая в код за недостающими деталями, дополняя уже существующие списки/деревья/диаграммы/етц. Иногда я делаю альтернативные списки/деревья/етц, как несколько проекций чего-то одного на разные более-менее независимые аспекты задачи чтоб не всё сразу было перед глазами, а только нужное сейчас. Так я постепенно создаю в голове структуру и логику интересующей меня части существующего проекта, после чего уже и становится понятно как его менять или дополнять. К сожалению, в данной работе всевозможные IDE продолжают сосать большое время с т.з. нахождения концов (это C++, детка!) и гибкости в презентации всех тех же деревьев и «проекций». И в них нет ничего для какого-то облегчения составления и организации информационных выборок из кода для последующих навигации (по ним и по коду) и анализа. По этому использую эквиваленты grep и OneNote (или тупо текстовый редактор), что-то, что есть на всех интересующих меня платформах.

Как я уже сказал, полагаю, что иные формы research'а вполне могут быть сделаны с использованием похожих подходов и инструментов.

Что делаете вы?
 

work, effectiveness, questionnaire, ui, c++, usability, software

Previous post Next post
Up