Como escrever um bom código com coisas novas? [fechadas]

8

Eu sempre tento escrever código facilmente legível que esteja bem estruturado.

Enfrento um problema específico quando estou mexendo com algo novo. Eu continuo mudando o código, a estrutura e muitas outras coisas. No final, eu olho para o código e estou irritado com o quão complicado se tornou quando eu estava tentando fazer algo tão simples.

Depois de concluir algo, refato-o fortemente para que fique mais limpo. Isso ocorre após a conclusão na maioria das vezes e é irritante porque quanto maior o código, mais irritante é a reescrita.

Estou curioso para saber como as pessoas lidam com tanta agonia, principalmente em grandes projetos compartilhados entre muitas pessoas.

Reza M.
fonte
2
Da mesma maneira que você, infelizmente.
Bobson

Respostas:

11

Enquanto você está refatorando, está fazendo certo.

Considere o seguinte: a qualquer momento você pode traçar uma solução para o problema. No entanto, à medida que o tempo avança, você está descobrindo cada vez mais sobre o problema que o leva a encontrar soluções melhores. A primeira iteração pode ser reversa, e a última é esperançosamente elegente. Se você continuar refatorando à medida que seu conhecimento cresce, sempre terá melhores resultados. Não há atalho para pular para a solução mais elegante imediatamente sem seguir as etapas de 'aprendizado', a menos que você já tenha encontrado um problema semelhante, seja capaz de generalizar problemas anteriores ou ter sorte.

MrFox
fonte
4

Estou curioso para saber como as pessoas lidam com tanta agonia, principalmente em grandes projetos compartilhados entre muitas pessoas.

  • Reconheça que existe.
  • Agende um horário para prototipagem.
  • Tente aprender coisas novas em projetos de hobby, em vez de código de produção.
Telastyn
fonte
1
"hooby projects"soa como código escrito por Bill Cosby. "Com os IDEs e as metodologias ágeis, os KIYDS não sabem ... que código de baixo nível ... TEM TUDO SOBRE." ;)
StuperUser
3
+1 para aprender coisas em projetos de hobby em vez de código de produção. Pena que minha empresa não vai pagar-me para fazer meus hobbies :(
paul
4

Bem, eu faço TDD com testes de unidade. Todo o mantra do TDD gira em torno do seguinte ciclo: Ciclo TDD

Como estou usando TDD, sou forçado a escrever testes de unidade. Se um teste é difícil de escrever, é um sinal de que meu design é muito complicado e precisa ser simplificado.

O ciclo não termina, a menos que você refatore para remover a redundância; portanto, na maioria das vezes, a refatoração é feita em pequenos pedaços e não consome tempo. Além disso, após cada refatoração, executo todos os casos de teste para garantir que não quebrei nada.

fonte da imagem: http://www.javacodegeeks.com/2012/05/test-driven-development-win-win.html

Songo
fonte
1

Todo mundo aprende a escrever um programa, escrevendo-o. A refatoração faz parte do processo, porque você está mais qualificado para escrevê-lo na segunda vez. O truque não é tentar evitar a refatoração, mas fazê-lo mais cedo e com mais frequência. Refatore assim que notar um problema, em vez de esperar até o "fim".

Karl Bielefeldt
fonte
1

Depois de escrever e depurar o código, reserve esse código e escreva-o novamente de uma maneira diferente. Varie as estruturas de dados. Ou as estruturas de controle. Experimente designs malucos. Repetir. Geralmente, a estrutura de código mais limpa não é imediatamente óbvia e, ao tentar diferentes abordagens, você pode encontrar uma solução melhor.

CWallach
fonte
1

Detectou na minha prática que escrevo um código mais claro e simples quando entendo completamente o domínio do problema. Infelizmente, os clientes geralmente não conseguem esclarecer exatamente o que desejam e essa é uma situação de trabalho normal. Se você entendeu errado o domínio, ele será refletido no seu código. E se você é um líder de projeto, uma de suas principais tarefas é ajudar o cliente a ter uma nova visão da solução de negócios que ele deseja que você implemente. Portanto, tente dedicar mais tempo para uma análise de domínio e isso ajudará você a escrever um código mais simples e claro.

eternidade
fonte
Bem-vindo ao P.SE e obrigado pela sua resposta. Esta questão foi encerrada.
Andrew