Muitas vezes esqueço as coisas da minha inscrição. Não memorizo os nomes das tabelas ou o que uma consulta fez e procuro o que quero. Meu líder de equipe me disse que eu deveria memorizar os nomes das tabelas que eu uso.
O desenvolvedor é obrigado a memorizar os nomes das tabelas no banco de dados, os nomes das classes, etc.? E se a resposta for "Sim, o tempo todo", o que devo fazer para lembrar essas coisas?
Respostas:
Você não precisa memorizar explicitamente essas coisas. Com isso, quero dizer sentar e aprendê-las como faria com uma lista de palavras para um teste de ortografia. Na primeira instância, os nomes devem ser memoráveis e detectáveis, para que você possa encontrá-los novamente sem muito esforço.
Você também deve ter acesso a ferramentas que o ajudam aqui com o preenchimento automático e similares.
Em um grande sistema de mais de 100 tabelas, não é possível que você realmente se lembre de todos os nomes de tabelas e de colunas, no entanto, com nomes memoráveis e detectáveis e uso regular, você deve se lembrar dos detalhes mais importantes e daqueles que usa todos os dias. dia.
fonte
Einstein disse "nunca memorize o que você pode procurar [nos livros]", e eu concordo plenamente.
Use sua memória para coisas abstratas (técnicas e princípios de desenvolvimento), não para fatos que você pode encontrar quando precisar deles.
fonte
É embaraçoso admitir - estou usando C há quase 30 anos, mas nunca consigo me lembrar de como declarar indicadores de função - sempre preciso sair da K&R para verificar a sintaxe.
Ainda mais embaraçoso, eu tenho que pensar muito sobre como o typedef funciona - é:
ou
Estes são meus pontos cegos pessoais. Eu não me preocuparia se você tiver outros semelhantes.
fonte
Os computadores são bons em lembrar exatamente as coisas. Os computadores também são bons em encontrar coisas que lembraram anteriormente.
Portanto, a principal habilidade é usar o computador como uma extensão da sua memória. Escreva código limpo, documentos, aprenda a usar as ferramentas de pesquisa com eficiência, configure seu ambiente de desenvolvimento para facilitar a localização de coisas etc.
Um bom efeito colateral é que você também facilitará a leitura de seu código por outras pessoas.
fonte
A memória é importante
Uma memória forte é realmente um dos principais talentos que um desenvolvedor pode ter; na verdade, qualquer um pode ter. É realmente uma coisa especial e invejo e admiro aqueles que são abençoados com ela. Definitivamente, pode ajudar uma pessoa a ser um desenvolvedor, advogado, mecânico mais forte ou (inserir o trabalho de sua escolha aqui).
Quanto deve ser necessário?
Mas não acredito que seja um requisito justo exigir a memorização de todas as coisas. Acredito que você começará a memorizar as coisas como parte natural de fazer as coisas. É por isso que ler um livro sobre um idioma e usá-lo em um ambiente de produção não é a mesma coisa. Ao trabalhar diariamente com algo (alguns chamariam isso de "prática"), você começará a tornar algumas coisas uma segunda natureza.
Assim como nos outros pôsteres, acredito que memorizar partes importantes do aplicativo ajuda. No entanto, não tenho certeza de que investir em memorizar tudo vale a pena o investimento quando você pode tirar proveito de recursos como o intellisense, que é cada vez mais comum em ferramentas modernas.
Como você pode melhorar?
Não sou especialista em memória, mas alguns acreditam que você pode realmente melhorar a memória por meio de exercícios mentais, como jogos cerebrais (palavras cruzadas, sudoku, quebra-cabeças etc.). A teoria é que seu cérebro é como um músculo e, se você o usar de maneiras diferentes e exercitá-lo, poderá fortalecê-lo.
Seria interessante ver estudos sobre como coisas como jogos cerebrais, programação e atividades interativas afetariam o cérebro ao longo do tempo. Essas coisas poderiam ajudar a combater o início da perda de memória provocada pela idade ou demência?
fonte
De onde eu venho, há um velho ditado que é algo como isto em inglês: "Um tolo memoriza, um homem inteligente escreve". Basicamente, não importa quão boa seja sua memória, você esquecerá . Você é apenas humano. E isso, como conseqüência, torna a confiança na memória humana ... bem, não confiável. Mesmo que você se lembre dos nomes das tabelas, pode ter 100% de certeza? Você precisa de apenas alguns segundos para procurar nomes de tabelas, mas pode precisar de horas ou até dias para rastrear erros causados por erros de ortografia.
Como conclusão, não, é um requisito ridículo, especialmente em projetos grandes, que podem ter milhares de tabelas e classes.
fonte
Se estiver em algo em que você está trabalhando e for uma tarefa de longo prazo, sim, você deve trabalhar para aprender e ser capaz de lembrar vários nomes de tabelas e colunas, classes, variáveis e métodos. Isso é algo que ocorrerá com o tempo à medida que você trabalha com eles. Você não aprenderá todas elas da noite para o dia, mas deve se esforçar para saber o máximo possível sobre o sistema em que está trabalhando. Além disso, em um sistema grande, não há como você memorizar tudo, mas não há razão para não aprender e lembrar o máximo que puder.
Ter que procurar tudo o tempo todo é apenas um golpe na produtividade - se você está trabalhando em uma tarefa e precisa parar e procurar as coisas a cada poucos minutos, isso é uma quebra de concentração. Use as ferramentas apropriadas para ajudá-lo e aprenda / memorize o que puder. Isso melhorará muito sua produtividade.
fonte
Existe algum motivo para memorizar nomes exatos de classe? Acho que não.
Existe algum sentido em saber que tipo de termos o seu projeto usa nos nomes das classes, para que você possa procurá-los mais rapidamente? Definitivamente.
fonte
Não concordo que os nomes das tabelas sejam memorizados, mas devem ser fáceis de adivinhar. Para facilitar a adivinhação, seja consistente. Dessa forma, você não estará se perguntando "Hmm .. a tabela foo é plural ou singular? A chave primária é ID ou RID ou FooRID?"
fonte
Não sei como você pode consultar um banco de dados a qualquer momento, sem conhecer os principais nomes de tabelas e nomes críticos de colunas (mas certamente nem tudo). Conheço as pessoas que conhecem essas coisas sem ter que descobrir isso a cada vez que se tornam mais valiosas para a organização e se tornam as pessoas que "vão para" quando outras pessoas ficam presas.
Acho que, muitas vezes, quando as pessoas não começam a aprender essas coisas, elas cometem erros nas consultas sem perceber. Erros Eu frequentemente identifico instantaneamente nas revisões de código porque compreendo nossa estrutura de banco de dados e como as tabelas se relacionam entre si e quais são as regras críticas de negócios sem precisar consultá-las.
Pessoalmente, acho que as pessoas que não se preocupam em aprender a estrutura geralmente ficam no nível iniciante ao consultar esse banco de dados específico. Eles também tendem a não sobreviver a demissões. Eu acho que seu chefe está tentando fazer um favor para você prestar mais atenção.
fonte
Mais do que a memória forte, a que ajuda muito é o design orientado a domínio e segue convenções fáceis, como nomes de tabelas e nomes de classes, para serem iguais. Se o proprietário da sua empresa falar com você sobre o requisito, os termos específicos do domínio usados por ele deverão constar no código. Nesse caso, não precisamos lembrar os mapeamentos entre termos e nomes comerciais no código. Esse hábito demora um pouco, mas é muito útil, pois também reduz erros de tradução de um lado para o outro entre os proprietários e desenvolvedores da empresa.
Junto com isso, se a duração do projeto for muito longa, ficar confortável com a base de código por um período de tempo ajudará inconscientemente a memória.
fonte
domain driven design
?