¿Qué es un código hermoso?

Beautiful Code expresa claramente una solución completa y elegante a un problema, e ilumina al desarrollador que lo lee.

Por supuesto, el concepto de belleza es terriblemente subjetivo. Tratar de definir una definición canónica de “belleza” es el camino a la locura, como descubrieron muchos grandes filósofos.

Dicho esto, creo que este tipo particular de belleza parece muy adecuado para Kant en las cosas.

Tiene cuatro criterios básicos que deben cumplirse para que algo se considere hermoso, en el sentido universal de la palabra …

Primero, la persona que hace el juicio debe ser imparcial: en nuestro caso, decir que el código es hermoso o no no debería tener ningún impacto en nuestros ingresos, orgullo o relaciones. En otras palabras, es muy difícil emitir un juicio imparcial sobre el código de su jefe. 🙂

En segundo lugar, la evaluación debe esforzarse por la objetividad o universalidad, que cuando los méritos por los que juzgamos el código deben * no * ser una cuestión de gustos. Por ejemplo, ¡una preferencia personal por tabuladores vs espacios no debe entrar en el debate! Una medida más objetiva del estilo podría ser “si el código resiste la alineación con las herramientas estándar”. Los compiladores se encargan de esto …

En tercer lugar, el evaluador debe considerar si el código es adecuado para la presunta tarea. ¿Resuelve el problema? ¿Es mejor para resolver el problema que otro código? Esto requiere un conocimiento profundo de la tarea en cuestión, ya sea optimizar el código para el rendimiento, la mantenibilidad o algún otro objetivo.

Finalmente, el cuarto criterio es que si puede hacer un caso racional y convincente con las tres evaluaciones anteriores, las personas deben estar de acuerdo con usted, que su juicio es, de hecho, objetivo.

Ahora, si has leído hasta aquí y eres un desarrollador de software (o un filósofo), probablemente estés masticando un poco para cuestionar lo que Kant tiene que decir (y mi interpretación ligera, estoy seguro).

En caso de duda, mira a tu intuición: cuando lees un poco de código que te hace decir “¡ah, ja!” … Ese es un código hermoso. Si suficientes personas con amplias experiencias y experiencia encuentran la misma alegría, o entienden por qué sintió esa chispa de placer, entonces es razonable concluir que el código es hermoso.

En cualquier caso: vale la pena buscar un código hermoso, y vale la pena preguntarle a cada desarrollador que conozca. 🙂

Hermoso código es un código que todos pueden apreciar, o en otras palabras, leer.

En realidad, es bastante difícil escribir código que pueda ser leído por principiantes y expertos, pero que aún conserve la eficiencia, la escalabilidad y la facilidad de mantenimiento.

Esa es la prueba realmente … ¿Puede un principiante leerlo y resolverlo?

Si pueden, ha creado un código que puede ser entregado, preservado durante años y posiblemente modificado por más de unas pocas personas.

Para mi :

  1. Hermoso código es elegante y limpio.
  2. No hay necesidad de explicar su propósito.
  3. No estropea las intenciones del diseñador.
  4. Es minimalista y nítido, incluso si intenta mejorarlo, volverá a donde comenzó.
  5. Contiene nombres significativos para variables y métodos.
  6. Cada método tiene un propósito único.
  7. Uso óptimo de módulos, métodos, variables, constantes y comentarios.

El código hermoso es conciso, útil, auto comentario y, lo que es importante, fácil de modificar

En Python, el intercambio se realiza de la siguiente manera:

  a, b = b, a

Este es un ejemplo de belleza, ya que es corto, legible y universal .

Limpio, consistente y sostenible.

La mayoría de las veces hermosos códigos orientados a objetos.

More Interesting

¿Qué es exactamente la complejidad ciclomática?

Obtuve admisiones de UW-Tacoma y la Universidad de Santa Clara para MS en CS y SE, respectivamente. ¿Cuál debería elegir?

¿Qué lenguajes de programación que combinan bien deberían aprender para el desarrollo de inteligencia artificial, la ciencia de datos y el desarrollo de software?

¿Cuál es la diferencia entre la ingeniería CS e IS?

¿La gran mayoría de las personas odian PHP únicamente porque otras personas lo hacen?

¿Qué tipo de mentores han tenido las personas en una carrera de ingeniería de software?

¿Es una empresa de consultoría un buen lugar para comenzar una carrera de ingeniero de software para un recién graduado, si quiero hacer la transición a Google, Apple, Blizzard, etc., después de dominar la programación?

Cómo comenzar a crear software

Además de las aplicaciones de Android, ¿qué proyectos / aplicaciones podrían impresionar a un empleador utilizando Java o Python como lenguaje de programación?

¿Cuál es el mejor trabajo de software o profesor en las universidades?

Cómo desarrollar una aplicación que reemplace PuTTy (modo serie)

¿Cómo ha mejorado la eficiencia de su proyecto mientras consulta / trabaja para una empresa de TI?

¿Qué tan difícil es la vida de un ingeniero de software?

¿Qué debe saber todo CEO sobre ingeniería y gestión de una organización de ingeniería?

¿Cómo debo implementar un proyecto de librería simple en Java? ¿Qué clases debo incluir?