Entendo o uso de indicadores para lembrar um único ponto no seu código. No entanto, como acompanhar o fluxo do código que estão investigando? Por exemplo: vários favoritos e a ordem em que foram feitos.
Exemplo:
Relatório de erro: "Colisões não estão funcionando nos cantos das paredes"
- A reprodução do bug atribui a certos polígonos que não colidem.
- O código de colisão foi gravado por um desenvolvedor indisponível. Portanto, a investigação é algo como:
Durante a investigação, especialmente ao revisar itens que não são de código, como o Google, pode-se esperar que razoavelmente perca seu lugar no código ( eu já examinei esse caminho de código? Ou Qual caminho de código eu estava investigando? Existem vários que levam para esta função , etc). O mesmo vale para interrupções inevitáveis (Chefe: preciso de [Relatório Inútil Longo] AGORA , etc)
Seria útil ter um recurso de técnicas ou ferramentas para fornecer uma maneira de acompanhar o lugar da pessoa no código.
Edit : O exemplo acima pretende ser uma ilustração em potencial, não um problema real que precise ser respondido.
Outra maneira de formular esta pergunta é:
Ao aprender um novo sistema, como você controla onde você está aprendendo o código? Não se trata de entender por que o código faz o que faz (que é para que os comentários devem ser), mas como ele faz (que é aprendido apenas através da leitura do código, não comentários).
fonte
Além de todas as excelentes tecnologias mencionadas, descobri que o pedaço de papel A3 à moda antiga é uma excelente ajuda para esses problemas. Anote suas idéias e organize-as no estilo mindmap.
fonte
Tanto o editor quanto o depurador podem pular para a definição de uma função e ter um botão "voltar" multinível como um navegador da web para retornar onde eu estava antes. Isso geralmente é suficiente para acompanhar um fluxo de depuração complexo. Também ajuda a ter um controle de origem que permite comprometer muito . Isso me dá uma mensagem de confirmação explicando por que estou tentando algo, bem como uma maneira rápida de recuperar a alteração, se não funcionar. Fora isso, um quadro branco simples para listar os leads potenciais e explorados preenche todas as lacunas restantes para mim.
fonte
Várias maneiras que eu acompanho:
fonte
Eu uso a solução simples - nunca feche nada até terminar a tarefa. Isso significa que geralmente uma das 50 janelas ou guias abertas tem algo que me lembrará o que eu estava pensando quando voltar a fazê-lo.
fonte
Obtenha uma ferramenta / IDE real para desenvolvedores, o que você quiser. Vi, Emacs, Eclipse ou qualquer outra coisa (a escolha é tão grande quanto as discussões sobre qual é o melhor, mas isso é outro problema) e aprenda a usá-lo adequadamente . Não, como muitos fazem, use-o como o Bloco de notas com destaque de sintaxe. Aprenda a usar teclas de atalho, e não confie no mouse para ações comuns (é muito lento). Uma tela grande (no mínimo 1920 x 1200) é benéfica.
Minha ferramenta de desenvolvimento nomeou (nomes mais lentos, mas úteis, tornam-nos persistentes) e marcadores sem nome (Rápido para inserir e excluir), navegação e consulta direta e anterior e pesquisa de referências em uma única anotação, tarefas e desenvolvedores (pessoal e de grupo) anexada a um linha específica do código fonte. Ele faz todos os idiomas sob o sol, sem precisar instalar outro plug-in.
Trabalho em uma base de código composta por uma dúzia ou mais de 1 milhão de módulos SLOC, usando meia dúzia de idiomas. Obviamente, não trabalho com todos eles de uma vez, mas concentro-me em pequenas partes de um ou dois, mas posso navegar com algumas ações para qualquer ponto do código que seja relevante para o que estou fazendo.
fonte
Com o Visual Studio, em uma sessão de depuração, você pode usar a janela 'Pilha de chamadas' (você pode habilitá-la no
Debug / Windows / Call Stack
ou com o atalhoCtrl+Alt+c
) para rastrear o fluxo de código.fonte
Estou surpreso que ninguém tenha mencionado as muitas ferramentas que podem criar gráficos de chamada. Eu achei o doxygen uma grande ajuda. Você nem precisa se comprometer a usar doxygen em todo o seu programa, basta marcar as funções que deseja rastrear.
fonte
Eu uso o modo org para o emacs, que é uma ferramenta de super-estrutura de tópicos. Com ele, posso escrever um esboço que imita a pilha de chamadas do código e incluir links diretos para o próprio código fonte (via org-store-link). Você pode incluir texto explicativo, links para páginas da Web etc. (por exemplo, quando você pesquisa no Google por números mágicos)
Não é perfeito. Por exemplo, a estrutura de estrutura de tópicos não tem noção de voltar um nível acima, por isso é difícil rastrear um caminho de execução, em vez de apenas uma pilha. Mas é a próxima melhor coisa nos diagramas em papel que eu encontrei.
fonte