Costumo ler que os desenvolvedores devem escrever um código bonito, mas para um iniciante, ainda é obscuro o que é código bonito e como você o reconhece?
A pergunta corolária é: como escrever um código bonito e quais são alguns hábitos práticos para melhorar a qualidade do seu código? , com o que devo me preocupar em tornar o código que escrevo bonito (e o que devo aprender).
algorithms
source-code
torr
fonte
fonte
Respostas:
"A beleza é comprada pelo julgamento do olho".
Dito isso, acho que a maioria dos programadores concorda que o código bonito demonstra um equilíbrio entre clareza e transparência, elegância, eficiência e estética.
Clareza e transparência : clareza é a facilidade com que um leitor pode deduzir o que o código faz. Código transparente faz o que parece fazer. Se o código parece fazer uma coisa, mas realmente faz outra coisa (ou algo mais), não é transparente - é enganoso.
Elegância : existem muitas maneiras de implementar a maioria dos algoritmos, mas algumas são desajeitadas, enquanto outras são organizadas e graciosas. A sucessão geralmente acrescenta elegância, mas a sucessão excessiva pode reduzir a clareza.
Eficiência : evitando o uso desnecessário de recursos (como tempo de CPU, memória e E / S).
Estética : ser fácil para os olhos. Isso é bastante subjetivo. Tudo se resume ao estilo. Uma consideração importante é ter um estilo consistente . Código que muda, por exemplo, recuando estilo no meio, é feio.
fonte
Não deixe que as pessoas o enganem, pensando que o código bonito é o seguinte:
Porque não é. Um código como esse é bonito , e certamente vale a pena dar uma olhada, mas não é o tipo de código que você deseja estabelecer.
E você sabe que o polimorfismo estático meta-modelado recursivo sofisticado que herda lambdas variáveis - ou o que você leu online? Você pode estar ansioso para usar truques inovadores e bacanas, sem uma razão clara para usá-los. Mas o código que ultrapassa os limites de um idioma também não é bonito.
Eles são sexy .
Toneladas de diversão, mas pergunte a si mesmo: desejo realmente gastar um tempo explorando a anatomia dessa linguagem ou quero trabalhar em conjunto com uma linguagem e criar algo bonito? Afinal, uma linguagem de programação é apenas a ferramenta para criar.
Então, o que é um código bonito então?
Código bonito = código de manutenção. É ISSO AÍ!
Essa é a fórmula!
Se você pode escrever algo, volte a ele alguns meses depois e continue progredindo, então isso é lindo. Se um ano depois, você perceber que deseja adicionar funcionalidade, além de ajustar um recurso existente, e conseguir fazê-lo com relativa facilidade, isso é lindo. Se outras pessoas puderem entrar na sua base de código e descobrir rapidamente o que está acontecendo porque as coisas estão organizadas, elas terão mais cabelo e também serão lindas.
Portanto, a verdadeira pergunta que você deseja fazer é: "Como escrevo códigos mais sustentáveis?". Receio que seja uma pergunta maior e uma disciplina bastante criativa. Continue escrevendo o código, mas desta vez não se pergunte se pode ser mais bonito. Pergunte a si mesmo se você pode torná-lo mais sustentável.
fonte
Minha opinião é que "código bonito" não é um termo objetivo ou particularmente útil. E não devemos tentar defini-lo.
As definições de dicionário típicas da palavra em inglês "beauty" são assim:
(Fonte http://dictionary.com )
O ponto comum é que "beleza" é o que é esteticamente agradável. Isso é necessariamente subjetivo ... como ilustrado pelo ditado "A beleza está nos olhos de quem vê".
Podemos aplicar a palavra "beleza" ao código, e o significado óbvio é que o código é "esteticamente agradável".
Mas dizer então que "código bonito" tem um certo conjunto de atributos (como sugerido por outras Respostas) é uma contradição do significado óbvio de esteticamente agradável. A estética é sobre como as pessoas ... pessoas individuais ... percebem as coisas.
Ou, dito de outra maneira, há algo repugnante em alguém me dizendo o que eu deveria achar bonito, seja nas pessoas, obras de arte ou ... código.
Para mim, código bonito é um código que eu acho bonito, e é isso. É subjetivo e individual, e vamos deixar por isso mesmo.
fonte
Aqui está o meu conselho.
Veja as respostas para Como você pode explicar o "código bonito" para um não programador? e veja em quais características eles dizem focar. Depois, pegue um livro como o Code Complete e leia-o para obter conselhos sobre como escrever um código melhor.
Em algum momento, você verá um código antigo: "Isso é feio". Será uma reação estética direta. E olhando para ele, você perceberá que está visualizando seu código como um programador e pode ver a feiura porque sabe como deve ser a aparência do código.
fonte
Só porque você costuma ler sobre código bonito não significa que as pessoas que escrevem sobre ele têm a mesma definição. Infelizmente, a julgar pela sua pergunta, parece que eles nem se deram ao trabalho de defini-la.
Para mim, um código bonito é:
O código conciso que não é expressivo pode ser enigmático e o código expressivo que não é conciso tende a ser inchado e tedioso de ler, portanto, você precisa de ambos.
Eu não incluiria a manutenção como parte do que torna o código bonito, porque a beleza é algo que você vê / lê, não algo em que você age. Mas, novamente, é a minha visão pessoal.
fonte
O termo código bonito é um termo muito vago e abstrato. É fácil descobrir o que representa e o que significa, mas nunca deve ser visto como mais do que um objetivo secundário.
Isso me lembra muito a métrica de cobertura de código. Quando você obtiver o número alto o suficiente, poderá relaxar e entrar em outra coisa. Ter uma base de código com cerca de 80% de cobertura é ótimo, não é à prova de balas, mas é suficiente para relaxar e fazer outras coisas. Ter 40% de cobertura é bastante assustador e deve incentivá-lo a aumentar esse número.
A questão é justamente que a cobertura do código só é realmente significativa se o número for baixo. Então não deixe que seja baixo. Quando a cobertura chegar a um certo ponto, passe para outra coisa.
Da mesma forma, um código bonito é ótimo. Se você tem um código bonito, ótimo, vá para outra coisa. Não se estresse demais com isso. Você nunca alcançará essa marca de 100% e, se o fizer, descobrirá que se concentrou demais no que parece, ou no que parece, e não o suficiente no que faz ou como faz. . Portanto, chegue a uma marca razoável e pare.
Mas se o seu código for impreciso, se for uma bagunça gigante complicada de código espaguete, se você precisar abrir o arquivo fisicamente, se você não tiver comentários ou documentação, etc, etc, etc, corrija-o. E faça o mais rápido possível.
Com o tempo, você descobrirá que sua base de código geralmente fica mais limpa, geralmente mais brilhante e geralmente mais bonita e, mais importante, mais utilizável quando se concentra em torná-la menos imprudente. Escrever código bonito não é um processo de uma etapa.
Não há filosofia mágica. Suas 1000 etapas menores, todas feitas juntas, todas servindo a um propósito concreto que não tem nada a ver com a aparência do código. Mas, quando você os serve juntos, eles formam um código bonito como a soma de suas partes. Como voltron. Ou capitão planeta.
fonte
Concordo realmente com as respostas aqui, mas, adotando uma abordagem menos técnica, eu diria que um código bonito é uma expressão da clareza de pensamento de seus autores sobre o problema em questão que se manifesta por meio de uma linguagem bem formulada e precisa, porém simples.
Para mim, olhar através de códigos bonitos é como olhar para uma obra de arte, ver detalhes sempre novos que mostram a intenção do fabricante, mas também como as diferentes partes foram realizadas, cada uma dando uma resposta a tantas perguntas e, finalmente, como sua existência parece uma lei natural à qual tudo se alinha, de modo que só pode ser descrita com palavras de admiração: magnífica, inspiradora, bonita.
Portanto, nessa perspectiva, em sua carreira como programador, você pode fazer descobertas de códigos bonitos que outras pessoas nem entendem porque não têm conhecimento ou talvez não sejam mais dignas de nota, pois foram estragadas por muita beleza;)
Código bonito tem todas as qualidades pragmáticas mencionadas de outra forma, eu concordo totalmente.
fonte
Eu tenho três critérios:
fonte