Eu realmente não escrevo grandes projetos. Não estou mantendo um grande banco de dados ou lidando com milhões de linhas de código.
Meu código é basicamente do tipo "script" - coisas para testar funções matemáticas ou para simular algo - "programação científica". Os programas mais longos em que trabalhei até agora são algumas centenas de linhas de código, e a maioria dos programas em que trabalho são cerca de 150.
Meu código também é uma porcaria. Eu percebi isso outro dia, enquanto tentava encontrar um arquivo que escrevi há um tempo atrás, mas provavelmente substitui e não uso controle de versão, o que provavelmente está fazendo um grande número de vocês se encolher de agonia diante da minha estupidez.
O estilo do meu código é complicado e é preenchido com comentários obsoletos, notando maneiras alternativas de fazer algo ou com linhas de código copiadas. Embora os nomes das variáveis sempre sejam muito bons e descritivos, conforme adiciono ou altero as coisas, por exemplo, algo novo que alguém deseja que seja testado, o código é sobreposto e substituído e porque sinto que essa coisa deve ser testada rapidamente agora que ter um framework, eu começo a usar nomes de variáveis ruins e o arquivo vai para o pote.
No projeto em que estou trabalhando agora, estou na fase em que tudo isso está voltando para me morder muito. Mas o problema é (além de usar o controle de versão e criar um novo arquivo para cada nova iteração e gravar tudo em um arquivo de texto em algum lugar, o que provavelmente ajudará a situação dramaticamente) eu realmente não sei como proceder para melhorar meu estilo de codificação real.
O teste de unidade é necessário para escrever pequenos pedaços de código? E o POO? Que tipos de abordagens são boas para escrever códigos bons e limpos rapidamente ao fazer "programação científica" em vez de trabalhar em projetos maiores?
Eu faço essas perguntas porque, muitas vezes, a programação em si não é super complexa. É mais sobre matemática ou ciências que estou testando ou pesquisando com a programação. Por exemplo, uma classe é necessária quando duas variáveis e uma função provavelmente poderiam cuidar disso? (Considere que essas também são geralmente situações em que a velocidade do programa é preferível no final mais rápido - quando você está executando mais de 25.000.000 etapas de tempo de uma simulação, você meio que quer que seja.)
Talvez isso seja muito amplo e, se for o caso, peço desculpas, mas, olhando os livros de programação, eles costumam ser abordados em projetos maiores. Meu código não precisa de OOP, e já é muito curto, então não é como "oh, mas o arquivo será reduzido em mil linhas se fizermos isso!" Quero saber como "recomeçar" e programar de maneira limpa nesses projetos menores e mais rápidos.
Eu ficaria feliz em fornecer detalhes mais específicos, mas quanto mais gerais forem os conselhos, mais úteis, eu acho. Estou programando em Python 3.
Alguém sugeriu uma duplicata. Deixe-me esclarecer que não estou falando de ignorar completamente os padrões de programação padrão. Claramente, há uma razão para esses padrões existirem. Mas, por outro lado, faz realmente sentido escrever código, ou seja, OOP, quando algumas coisas padrão poderiam ter sido feitas, teriam sido muito mais rápidas de escrever e teriam um nível de legibilidade semelhante devido à falta de programa?
Há exceções. Além disso, provavelmente existem padrões para programação científica além de padrões simples. Estou perguntando sobre isso também. Não se trata de padrões de codificação normais que devem ser ignorados ao escrever código científico; trata-se de escrever código científico limpo!
Atualizar
Apenas pensei em adicionar um tipo de atualização "não muito uma semana depois". Todos os seus conselhos foram extremamente úteis. Agora estou usando o controle de versão - git, com o git kraken para uma interface gráfica. É muito fácil de usar e limpou meus arquivos drasticamente - não há mais necessidade de arquivos antigos, ou versões antigas de código comentadas "por precaução".
Também instalei o pylint e o executei em todo o meu código. Um arquivo obteve uma pontuação negativa inicialmente; Eu nem tenho certeza de como isso foi possível. Meu arquivo principal começou com uma pontuação de ~ 1,83 / 10 e agora está com ~ 9,1 / 10. Todo o código agora está em conformidade com os padrões. Eu também passei por isso com meus próprios olhos, atualizando nomes de variáveis que haviam saído ... uhm ... errados, e procurando seções para refatorar.
Particularmente, fiz uma pergunta recente neste site sobre refatoração de uma das minhas principais funções, e agora ela é muito mais limpa e muito mais curta: em vez de uma função longa, inchada e cheia, ela agora é menos da metade o tamanho e muito mais fácil descobrir o que está acontecendo.
Meu próximo passo é implementar o "teste de unidade". Com o que quero dizer, um arquivo que eu posso executar no meu arquivo principal, que analisa todas as funções nele com instruções assert e try / excpts, que provavelmente não é a melhor maneira de fazê-lo, e resulta em muitos códigos duplicados, mas continuarei lendo e tentarei descobrir como fazê-lo melhor.
Também atualizei significativamente a documentação que já havia escrito e adicionei arquivos suplementares como uma planilha do Excel, a documentação e um documento associado ao repositório do github. Agora parece um projeto de programação real.
Então ... acho que isso é tudo a dizer: obrigado .