Lo más importante al escribir software es pensar. Se escribe una gran cantidad de código antes de que alguien se moleste en pensar. Y como resultado, mucha gente termina arreglando y luego reemplazando lo que debería haberse pensado en primer lugar.
Todo lo demás que has enumerado es secundario. Dentro de esos, los clasificaría:
- Claridad. Si su código no está claro, entonces el resto de nosotros no podemos entenderlo y mantenerlo. Si no podemos mantenerlo, entonces es completamente inútil . Tendrá que rehacerse. ¿Por qué molestarse? Ningún código es perfecto. Todo el código necesita ser mantenido.
- Exactitud. Obviamente, si su código está haciendo lo incorrecto, eso es malo. Clasifico la corrección en segundo lugar porque si el código es claro y correcto, las siguientes cosas no son significativas. Un problema de robustez es más fácil de solucionar que un problema de corrección significativo.
- Robustez Si el código se cae en el primer desafío, eso no es bueno.
- Eficiencia. Su código no debe desperdiciar recursos. Todo es finito, incluso si parece grande. No desperdicies, no quieras.
- Velocidad. Ahora estamos tan abajo en la lista que estamos hablando de buenas liendres. La velocidad es extremadamente importante para muy, muy, muy poco código. Para la mayoría de los códigos, no importa nada. No insista en las instrucciones a menos que sea absolutamente necesario. Por lo general, es un éxito en la claridad y la facilidad de mantenimiento y, por lo tanto, es algo incorrecto.
- Brevedad. En igualdad de condiciones, ser innecesariamente prolijo no es útil. La claridad es lo más importante, pero una vez que eres claro como el cristal, más no está ayudando. Detente, antes de crear contradicciones y confusión.
- Elegancia. La elegancia casi siempre es anti-claridad. Muéstrame un código elegante que no requiera más explicación que el código menos elegante y estoy dentro, pero eso es muy, muy raro. No dejes que la elegancia se convierta en ofuscación.
- Ingeniería informática: ¿Cuáles son algunas de las próximas series de seminarios sobre sistemas integrados y VLSI?
- Cómo hacer un sistema operativo usando C para Kernel y Java para UI
- ¿Qué pueden aprender los ingenieros de verificación de diseño en solo 10 minutos que podrían ser útiles para el resto de sus carreras?
- ¿Qué carrera es mejor para el futuro, diseño RTL o EDA para diseño RTL?
- Cómo conseguir un trabajo de ingeniería informática en EE. UU.