Cerrado . Esta pregunta está
basada en opiniones . Actualmente no acepta respuestas.
Comentarios
Respuesta
«La belleza se compra con el juicio del ojo».
Dicho esto, creo que la mayoría de los programadores estarán de acuerdo en que el código hermoso demuestra un equilibrio entre claridad y transparencia, elegancia, eficiencia y estética.
-
Claridad y transparencia : La claridad es la facilidad con la que un lector puede deducir lo que hace el código. El código transparente hace lo que parece. Si el código parece hacer una cosa, pero en realidad hace otra (o algo más), no es transparente, es engañoso.
-
Elegancia : hay muchas formas de implementar la mayoría de los algoritmos, pero algunas formas son torpes mientras que otras son ordenadas y elegantes. La concisión a menudo agrega elegancia, pero la concisión excesiva puede reducir la claridad.
-
Eficiencia : evitar el uso innecesario de recursos (como tiempo de CPU, memoria y E / S).
-
Estética : agradable a la vista. Esto es bastante subjetivo. Sobre todo se reduce al estilo. Una consideración importante es tener un estilo coherente . El código que cambia, por ejemplo, el estilo de sangría a la mitad, es feo.
Comentarios
Respuesta
No dejes que la gente te engañe haciéndole creer que el código hermoso es el siguiente:
- algoritmos inteligentes
- características de lenguaje furtivo
- resolver un problema con la menor cantidad de pulsaciones de teclas
Porque no es así. Un código como ese es lindo , y ciertamente vale la pena echarle un vistazo, pero no es el tipo de código con el que desea establecerse.
¿Y conoces ese elegante polimorfismo estático recursivo con metaplantillas que hereda lambdas variables, o lo que sea que hayas leído en línea? Es posible que esté ansioso por lanzarse a trucos innovadores e ingeniosos sin una razón clara para usarlos. Pero el código que traspasa los límites de un idioma tampoco es hermoso.
Son sexys .
Un montón de diversión, pero pregúntate lo siguiente: ¿Realmente quiero dedicar tiempo a explorar la anatomía de este idioma, o quiero trabajar junto con un idioma y construir algo hermoso? Después de todo, un lenguaje de programación es simplemente la herramienta para crear.
Entonces, ¿qué es el código hermoso ?
Hermoso código = código mantenible. ¡ESA ES!
ESA ES LA FÓRMULA !
Si puede escribir algo, vuelva a leerlo unos meses después y continúe progresando en él, entonces es hermoso. Si un año después se da cuenta de que también desea agregar funcionalidad como modificar una función existente, y te las arreglas para hacerlo con relativa facilidad, entonces ESO es hermoso. Si otras personas pueden ingresar a su base de código y descubrir rápidamente qué está pasando porque las cosas están organizadas, tendrán más cabello y también serán hermosas.
Entonces, la pregunta real que desea hacer es : «¿Cómo escribo un código más mantenible?». Me temo que es una cuestión más importante y es una disciplina bastante creativa. Sigue escribiendo código, pero esta vez no te preguntes si puede ser más bonito. Pregúntese si puede hacer que sea más fácil de mantener.
Comentarios
Responder
Mi opinión sobre esto es que «Beautiful Code» no es un término objetivo o particularmente útil. Y no deberíamos intentar definirlo.
Las definiciones típicas de diccionario de la palabra inglesa «belleza» son así:
- «1. la combinación de todos las cualidades de una persona o cosa que deleitan los sentidos y agradan la mente «
- » 1. la cualidad presente en una persona o cosa que da placer estético intenso o satisfacción profunda a la mente o los sentidos. »
- «1. La cualidad que da placer a la mente o los sentidos y está asociada con propiedades tales como armonía de forma o color, excelencia de arte, veracidad y originalidad».
(Fuente http://dictionary.com )
El hilo conductor es esa «belleza» se trata de lo que es estéticamente agradable. Eso es necesariamente subjetivo … como lo ilustra el dicho «La belleza está en el ojo del espectador».
Podemos aplicar la palabra «belleza» al código , y el significado obvio es que el código es «estéticamente agradable».
Pero decir que «código hermoso» tiene un cierto conjunto de atributos (como lo sugieren otras Respuestas) es una contradicción de obvio significado de estéticamente agradable. La estética se trata de cómo la gente … personas individuales … perciben las cosas.
O para decir De otra manera, hay algo repugnante en que alguien me diga lo que debería pensar que es hermoso, ya sea en personas, obras de arte o … código.
Hasta ahora en lo que a mí respecta, el código hermoso es un código que creo que es hermoso, y eso es todo. Es subjetivo e individual, y dejémoslo así.
Respuesta
Este es mi consejo.
Revisa las respuestas a ¿Cómo puedes explicar el " hermoso código " a alguien que no es programador? y compruebe en qué características dice centrarse. Luego, elija un libro como Code Complete y léalo para obtener consejos sobre cómo escribir un mejor código.
En algún momento se le ocurrirá mirar su código más antiguo. , «Esto es feo». Será una reacción estética directa. Y mirándolo te darás cuenta de que estás viendo tu código como un programador y puedes ver la fealdad porque sabes cómo debería verse un código más atractivo.
Respuesta
El hecho de que leas con frecuencia sobre código hermoso no significa que las personas que escriben sobre él tengan la misma definición. Lamentablemente, a juzgar por tu pregunta, no parece que se hayan molestado en definirlo en primer lugar.
Para mí, el código hermoso es:
El código conciso que no es expresivo puede ser críptico, y el código expresivo que no es conciso tiende a ser inflado y tedioso de leer, por lo que necesita ambos.
No incluiría la capacidad de mantenimiento como parte de lo que hace código hermoso, porque la belleza es algo que ves o lees, no algo sobre lo que actúas. Pero, de nuevo, es mi punto de vista personal.
Responder
El término código hermoso es un término muy vago y abstracto. Es fácil descubrir lo que representa y lo que significa, pero nunca debe considerarse más que un objetivo secundario.
Me recuerda mucho a la métrica de cobertura del código. Cuando consiga el número lo suficientemente alto, podrá relajarse y pasar a otra cosa. Tener una base de código con aproximadamente un 80% de cobertura es genial, no a prueba de balas, pero es suficiente para relajarse y hacer otras cosas. Tener una cobertura del 40% da bastante miedo y debería animarte a aumentar ese número.
El punto es que la cobertura del código solo es realmente significativa si el número es bajo. Así que no dejes que sea bajo. Cuando la cobertura se eleve hasta cierto punto, pasa a otra cosa.
Un código igualmente hermoso es excelente. Si tienes un código bonito, genial, pasa a otra cosa. No se preocupe demasiado por ello. Nunca alcanzará esa marca del 100%, y si lo hace, encontrará que se ha concentrado demasiado en cómo se lee o en cómo se ve, y no lo suficiente en qué hace o cómo lo hace. Así que llegue a una marca razonable y luego deténgase.
Pero si su código es feo, si es un desorden enorme de código espagueti, si le duele físicamente abrir el archivo, si no tiene comentarios o documentación, etc., etc., luego arréglalo. Y hágalo lo antes posible.
Con el tiempo, descubrirá que su código base termina generalmente más limpio, generalmente más brillante y generalmente más hermoso y, lo que es más importante, más utilizable cuando se enfoca en hacerlo menos feo. Escribir código hermoso es no es un proceso de un solo paso.
No existe una filosofía mágica. Sus 1000 pasos más pequeños se hacen todos juntos, todos los cuales tienen un propósito concreto que no tiene nada que ver con lo hermoso que se ve el código. Pero, cuando sírvelos todos juntos, forman un código hermoso como la suma de sus partes. Como voltron. O el planeta capitán.
Respuesta
Estoy de acuerdo con las respuestas aquí realmente, pero tomando un enfoque menos técnico, diría que el código hermoso es una expresión de la claridad de pensamiento de sus autores sobre el problema en cuestión, que se manifiesta a través de un lenguaje bien formulado y preciso pero simple.
Para mí, mirar a través de un código hermoso es muy parecido a mirar una obra de arte, ver detalles siempre nuevos que muestran los intención, sino también cómo se realizaron las diferentes partes, cada una dando respuesta a tantas preguntas, y luego, finalmente, cómo su existencia se siente como una ley natural a la que todo se alinea de tal manera que solo puede describirse con palabras de asombro: magnificencia , inspirador, hermoso.
Entonces, desde esa perspectiva, en su carrera como programador, podría hacer descubrimientos de código hermoso que otros tal vez no entiendan porque carecen del conocimiento o pueden no encontrarlo digno de mención ya que se han echado a perder por demasiada belleza;)
El código hermoso tiene todas las cualidades pragmáticas como se mencionó de otra manera, estoy totalmente de acuerdo.
Respuesta
Tengo tres criterios:
- Simple: Al menos debe ser legible por humanos. Por ejemplo, puede escribir un código que funcione en O (1) para una solución con toneladas de líneas, pero yo prefiero el código que funcione con 0 (n) y resuelva con pocas líneas. Esto puede cambiar para situaciones extremas, pero para empezar, la simplicidad es importante.
- Reutilizable: El código debe ser reutilizable, pero no sobrescrito. Si necesita una operación, debe definirla de la forma en que puede usarla años después.
- Sangría: Quizás esto no sea un problema para usted, pero para el nivel principiante, esto es lo primero que debe resolver.