Você também esquece o código depois de concluir a tarefa? [fechadas]


13

Sou um novo programador e gostaria de perguntar aos programadores seniores (programadores que têm alguma experiência no mundo real).

Eu faço o meu trabalho e, após a codificação, meu projeto é concluído, mas, honestamente, não lembro o código, o nome das classes e estruturas e suas propriedades.

Às vezes até eu duvido que tenha feito isso?

Isso é normal para todos os programadores ou eu sou o programador mais idiota que não conseguia lembrar o código e os nomes de classes / propriedades?

Editar:

Eu acho que muitos programadores estão me entendendo errado aqui. Eu disse que esqueço os nomes de estruturas, nomes de classes, nomes de propriedades, mas começo a me lembrar do meu próprio código assim que começo a trabalhar nele novamente. Minha pergunta é: você se lembra dos nomes de sintaxe e classes / propriedade, etc.?

Respostas:


24

Com toda a honestidade, não sei como alguém poderia ser um desenvolvedor de longo prazo sem a capacidade de "esquecer" o código em que trabalhou. A quantidade de projetos e o código resultante acabariam levando à pura sobrecarga de informações.

No entanto, vejo essa situação como um argumento de suporte para um design lógico e limpo. Chegará um momento em que você precisará oferecer suporte ao seu próprio código. Se você escolheu convenções de codificação fortes e lógicas, seu tempo de familiarização será reduzido significativamente. Além disso, isso teoricamente reduziria o tempo necessário para executar a manutenção real.


Encontrei dois codificadores com memória fotográfica que conseguem lembrar o que estavam pensando quando trabalharam em algum trecho de código. Com minhas habilidades de memorização abaixo da média, sou certamente forçado a fazer o melhor trabalho possível para tornar o código limpo e documentado.

Eu acho que você está certo, só porque eu "esqueço" o código que posso programar em 3-4 plataformas diferentes!
Necixy 23/04

9

Lembrar todas as suas sintaxe e APIs para um projeto não é tão importante quanto lembrar os conceitos que foram usados ​​para construí-lo. Depois de ter experiência, você pode ler o código e descobrir o significado, assim como ler essas postagens.

O que você encontrará ao longo do tempo, se estiver melhorando ativamente, é que verá as falhas no que escreveu anteriormente lendo apenas o código antigo (o que eu recomendo). Através dessa prática, fica mais fácil fazer; assim como qualquer outra habilidade.

Provavelmente já escrevi mais de um milhão de linhas de código em minha carreira e não há como me lembrar de tudo. Lembro-me dos projetos e do que eles estavam tentando resolver (e das técnicas que foram usadas para resolvê-los).


5

Eu esqueço muitas coisas depois de usá-las, mas as esqueço de maneira diferente.

Eu me observei ao longo dos anos e cheguei à conclusão de que nosso cérebro (ok, meu cérebro) emprega uma certa estratégia de cache:

  • Novas informações são aprendidas, usadas e colocadas em alguma fila de vencimento. Dentro de algumas semanas se foi.

  • O acesso repetido a essas informações, uma vez aprendidas no prazo de alguns meses atrás, as promove de alguma forma, para que possam ser lembradas por meses, e somente então elas expiram.

  • O acesso repetido aos blocos de conhecimento ao longo de vários anos, com as lacunas de uso por vários meses, os promove a uma memória prioritária onde eles mantiveram por anos.

PS Suspeito que a primeira idéia de cache com aplicação em computadores tenha vindo de alguém observando como os humanos aprendem e se lembram das coisas. Então, não inventamos nada, apenas pegamos o que já estava embutido em nós.


2

Frequentemente. Os comentários tornaram-se ultrapassados, mas acho que geralmente consigo reconhecer meu código com meus comentários.

EDIT: Não estou dizendo que concordo com a tendência. Só estou dizendo que é a tendência hoje. Como Dave aponta, certamente há um ponto de ruptura. Há uma discussão perfeitamente maravilhosa aqui: "Comentários são um cheiro de código" . Eu caio no campo "os comentários são para fornecer informações sobre o mundo FORA do código-base (requisitos, mudanças nos negócios, etc.)".


Comentários são passé? Apenas não é verdade.
13119 Steve

1
Ah, eu concordo; Só estou dizendo que parece haver uma tendência de achar que os comentários não devem ser necessários. Eu entrevistei pessoas que insistiram que o nome do método deveria ser todo o comentário que você precisa. Claramente, eles trabalham em um local mítico onde os requisitos de negócios não mudam semestralmente.
Michael Blackburn

2
Eu diria que, embora PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () seja descritivo, ele também cria código ilegível à medida que destrói o fluxo.
Dave Sábio

1
X100 acordado. Se eu não registrasse cuidadosamente o que estava pensando e por que tomei as decisões que tomei através de comentários cuidadosamente redigidos, não teria absolutamente nenhuma idéia do que estava acontecendo quando voltei a ler o código que havia escrito meses atrás. Eu tentei argumentar isso antes com os astronautas da arquitetura que dizem que os comentários são barulhentos, passados ​​ou obsoletos, mas ninguém nunca ouviu. Todo mundo assume que sou um desenvolvedor ruim porque tenho que escrever comentários no meu código-fonte. Eu estou bem com isso, no entanto. Ajuda a mim e a todos os outros depois de mim.
Cody Grey

@ Dave: Enquanto eu concordo com você, você tem um método com duas responsabilidades. Sua penitência é 4 Hail Martins e 2 GangOfFours.
Michael Blackburn

1

Sintaxe Eu geralmente me lembro depois de alguns usos. Por exemplo, quando comecei a usar genéricos ou linq, tive algumas dificuldades em obter a sintaxe correta.

O IntelliSense definitivamente torna meu trabalho muito mais fácil na lembrança de nomes de propriedades e métodos.


1

Quando eu era testador, o principal desenvolvedor da empresa me disse uma vez que o código foi escrito há 6 meses atrás, e nenhum dos meus funcionários pode ser responsabilizado por isso. Na época isso me chocou. Agora que passei a ser um desenvolvedor, eu entendo. Não me lembro dos detalhes do código, sei que trabalhei nele, mas os detalhes não estão lá.


0

Quase sempre. Meu projeto mais recente (muito pequeno) foi um teste de minhas próprias habilidades (ferrugem). Eu mesmo escrevi um monte de código procedural em um estilo C muito simples, depois refatorei-o para código Java usando alguns padrões de design e mantendo todos os métodos com no máximo oito linhas, se eu pudesse.

Coloquei o código por cerca de um mês. Quando voltei, demorou uma hora para que eu reconhecesse que havia escrito. Francamente, mesmo se eu tivesse colocado meu nome em um campo de comentário, não tenho certeza se isso teria me convencido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.