Используете ли вы оглавление для перечисления всех функций (и, возможно, переменных) класса в начале большого файла исходного кода? Я знаю, что альтернативой такому листингу будет разделение больших файлов на более мелкие классы / файлы, чтобы объявление их классов было достаточно понятным, но некоторые сложные задачи требуют большого количества кода. Я не уверен, стоит ли тратить ваше время на разделение реализации на несколько файлов? Или можно создать индекс-листинг дополнительно к объявлению класса / интерфейса?
EDIT:
Чтобы лучше проиллюстрировать, как я использую оглавление, это пример из моего хобби-проекта. На самом деле это не список функций, а блоки кода внутри функции ... но, возможно, вы все равно поймете идею ...
/*
CONTENTS
Order_mouse_from_to_points
Lines_intersecting_with_upper_point
Lines_intersecting_with_both_points
Lines_not_intersecting
Lines_intersecting_bottom_points
Update_intersection_range_indices
Rough_method
Normal_method
First_selected_item
Last_selected_item
Other_selected_item
*/
void SelectionManager::FindSelection()
{
// Order_mouse_from_to_points
...
// Lines_intersecting_with_upper_point
...
// Lines_intersecting_with_both_points
...
// Lines_not_intersecting
...
// Lines_intersecting_bottom_points
...
// Update_intersection_range_indices
for(...)
{
// Rough_method
....
// Normal_method
if(...)
{
// First_selected_item
...
// Last_selected_item
...
// Other_selected_item
...
}
}
}
Обратите внимание, что элементы индекса не имеют пробелов. Из-за этого я могу нажать на них и нажать F4, чтобы перейти к использованию предмета, и F2, чтобы вернуться назад (простые визуальные ярлыки студии find-next / prevous-shortcuts).
EDIT:
Другое альтернативное решение этой индексации - использование свернутых областей c #. Вы можете настроить визуальную студию так, чтобы она отображала только названия регионов и скрывала весь код. Конечно, поддержка клавиатуры для навигации по исходному коду довольно громоздка ...