A natureza do meu trabalho é que eu tenho que alternar entre projetos a cada poucas semanas. Acho que um dos maiores impedimentos à minha produtividade é o tempo de recuperação de todos os trechos de código relevantes "de volta à minha cabeça" novamente depois de não vê-lo por um período. Isso acontece em menor e maior extensão para pausas mais breves / pausas mais longas.
Obviamente, um bom design, documentação, comentários e estrutura física ajudam nisso (para não mencionar a alternância de projetos com a menor frequência possível). Mas estou me perguntando se existem práticas / ferramentas que posso estar perdendo. Quais são as suas práticas específicas para melhorar isso?
Algumas coisas que ajudam:
fonte
Faço algo semelhante ao que RonE faz.
Ter um projeto fácil de ler, com um bom design ajuda, mas antes de sair de um projeto, verifique se todo o contexto e as informações que você tem em sua cabeça estão escritos ou armazenados em algum lugar. Por exemplo, notas sobre as funções da biblioteca de terceiros que você estava usando, se era uma nova que você nunca usou antes. Eu sempre escrevo notas sobre as coisas que aprendo ou penso, em minhas próprias palavras.
Além disso, o que eu acho mais importante para escrever em um arquivo é se você escrever comentários TODO no seu código, copiar o último em que estava trabalhando e colá-lo em um novo arquivo de texto e chamá-lo TODO. Escreva nele informações de contexto sobre onde a tag TODO pertence e escreva o que você tinha em mente ou o que acha que gostaria de saber sobre essa tarefa.
fonte
Duas coisas foram fundamentais para mim: consistência e especificação.
Consistência é a chave para o código. Não preciso me lembrar onde está tudo e como tudo interage se eu puder extrapolar o que eu teria feito. Se é um projeto com outras pessoas que se torna mais problemático, mas os padrões de código ajudam bastante. Saber o que é algo olhando para ele e fazendo algumas suposições seguras diminui um pouco o tempo de embarque.
A especificação é mais útil para o projeto. Pelo menos para mim, acho que tenho a tendência de esquecer algumas das nuances do design de produto após um intervalo. Ou quando eu volto, é por causa dessa ideia incrível que rapidamente aparece assustadoramente no projeto. Se o seu projeto não tiver bons requisitos (em uma especificação em cascata ou em uma lista de pendências de produtos), você precisará basicamente reinventá-los sempre que voltar ao projeto. Quase todas as práticas recomendadas para desenvolvimento de software ainda são práticas recomendadas quando se trata de um projeto pessoal; não economize neles.
fonte
a IMO principal é uma API inteligente de todos os seus projetos. O upload do código para um repositório como o GIT ou outros permite que você "viaje no tempo" através de suas confirmações no código.
fonte
Como presto suporte ao desenvolvimento e à produção de vários clientes, troco de projeto várias vezes por dia. As duas coisas que mais me ajudam nunca saem de um projeto até que eu salvei tudo (e me comprometa com uma ramificação local, se não estiver no estado, quero colocá-la de volta na ramificação principal do meu controle de origem) e eu definir um ponto de interrupção no local de onde eu parei. Ser capaz de encontrar rapidamente a linha exata de onde parei me ajuda a voltar ao andamento de um projeto muito mais rapidamente. Também costumo criar uma lista de tarefas para cada projeto principal e marcar as coisas à medida que são concluídas. Portanto, uma rápida revisão me diz onde estou e me lembra o meu processo de raciocínio no projeto. Geralmente, também escrevo uma nota rápida para mim mesma sobre as coisas em que estava pensando, mas ainda não tinha feito se necessário (coisas como:
fonte