#7 La culpa no es de que tenga comentarios o no, es de que el código está mal escrito.
Los comentarios en la mayoría de los casos son una bazofia. Debería explicar como mucho por qué se usa un método de una forma y no otra o por qué, por poner un ejemplo tonto, se ha usado un mergesort en vez de un quicksort. Por lo demás, la propia signatura de la función debería explicar qué hace, ser obvia y que sólo se pueda usar de una manera.
A mi algo como esto me parece absurdo:
/**
* returns the device
*/
public Device getDevice() {
return device;
}
Oh no me digas, no me había dado cuenta de que getDevice devuelve un Device. La mayoría de comentarios son como ese ejemplo: inútiles. Vamos que es mejor hace un buen código que un mal código lleno de comentarios que al final estarán obsoletos, mal escritos y no te dirán nada útil.
Todo esto suponiendo que no estés desarrollando librerías. Ahí ya la cosa cambia algo más porque se supone que el que va a utilizarlo no tiene ni papa ni de por donde le sopla el aire
Un tip: TDD ya. Si no lo haces, empieza a hacerlo desde hoy, no esrcibir nada de código sin haber escrito el test primer. Yo era un poco reticente a hacer TDD y es un camino de ida, después de obligarme durante un par de meses (algo duros), ya no hay marcha atrás.