Aunque el título se refiera al programador Java, estas normas son aplicables a cualquier tipo de programador. A excepción de la norma número 6, que es específica al lenguaje de programación Java. 1. Relata el código. Cuando estamos escribiendo código nuevo, es sencillo comprender lo que se está haciendo, pero si no tocamos ese código por un periodo de tiempo y poseemos que regresar al mismo, ya no es tan obvio. Relatar el código te ayudará a comprender más rápidamente la lógica del programa. 2. No compliques las cosas. Muchas veces deseamos solucionar determinado asunto de la forma más enredada porque está guay. Busca la forma más simple de resolver las cosas. Esto te ayudará a comprender el código mejor y a mantenerlo de una forma más eficiente y es menos propenso a errores. 3. Menos es más, no es siempre bueno. Muchos lenguajes de programación te facultan concatenar funciones y muchas veces deseamos realizar algúnas cosas a la vez en una línea. Esto dificulta la lectura y la lógca del código. 4. Evita el hard coding. Usa las constantes, de este modo si necesitamos cambiar este valor, sólo poseemos que realizarlo en la constante y no en el resto del código. Si es valor es algo que va a ir cambiando a lo largo de la vida del programa, sería mejor usar archivos externos de configuración (XML, propiedades, fundamento de datos, etc), de esta manera no poseemos que adaptar el código, recompilar y redistribuir la nueva versión. 5. No reinventes . Aprovéchate de los marcos de esfuerzo (frameworks) existentes y de los patrones de diseño. Están ampliamente probados. 6. Cuidado con los prints y la concatenación de Strings. Usualmente tendemos a escribir prints por todo el programa, con la intención de depurar vuestra aplicación. Esto puede afectar seriamente al rendimiento de la aplicación. Usa determinado tipo de mecanismo para que esos prints solo se ejecuten cuando estemos en la fase de desarrollo. La concatenación de String puede ser otra de las operaciones que afectan al rendimiento del programa. Si vas a realizar muchas operaciones de concatenación, en Java la clase String es inmutable, por lo tanto cada vez que haces una concatenación estás desreferenciando los Strings que estas concatenando y formando un nuevo String. En Java tienes disponibles 2 clases que incrementan drásticamente el rendimiento para este tipo de operaciones. StringBuffer y StringBuilder. StringBuilder es inclusive más veloz que StringBuffer, ya que este no es thread-safe. Por lo tanto si el código de desde el que estas haciendo las concatenaciones no es multihilo usa StringBuilder, si no, usa StringBuffer. 7. Pon vigilancia al interfaz de usuario. El apariencia del interfaz de usuario, la manera de navegar por el mismo y la comodidad a la hora de usar el mismo, van a depender mucho de la aceptación y el éxito de tu aplicación. Seguid el mismo estilo en toda la aplicación, escoge cuidadosamente el título de las ventanas, etiquetas de texto, etc. Seguid el mismo diseño que otros sistemas ampliamente aceptados. Pon tu interfaz a pruebas con tu mujer, marido, novi@, amig@, etc. Para ver como se mueve por la aplicación, etc. 8. Documentación. Es lo que personalmente odio más. Escribir documentación es muy pesado y en el momento en el que estamos trabajando en un programa todo tiene sentido y sencillo de seguir. Pero de nuevo, cuando poseemos que regresar al programa después de un tiempo ya no nos parecerá tan obvio como pensabamos. Además si el programa no era lo suficiente grande como para solicitar a más de una persona para laborar en el mismo, recuerda que el programa puede aumentar y solicitar a uno o más programadores incorporarse al programa. O simplemente el programa pasa a manos de otra persona. Es una de las tareas más pesadas, pero de las que más que se agradecen a lo largo del tiempo. 9. Unidades de testeo. Es una muy buena y reomendada práctica que debemos realizar inclusive antes de escribir vuestros paquetes, librerías, etc. Y son las unidades de testeo. Esto nos va a ayudar de una manera muy rápida si nuestras funciones funcionan como deben. Nos va economizar mucho tiempo en el futuro (cada vez que tengamos que adaptar nuestras funciones) y es otra de las estrategias que nos ayudará a reducir el número de yerros en vuestro programa. 10. Calidad, no cantidad. Es mejor entregar un proyecto con las funciones escenciales bien desarrolladas, a entregar un proyecto lleno de funciones y que cada dos por tres el mismo se cuelgue o no haga lo que se supone que tiene que hacer. Aunque el título se refiera al programador Java, estas normas son aplicables a cualquier tipo de programador. A excepción de la norma número 6, que es específica al lenguaje de programación Java.