Tu programa, mi programa
- tu programa
- n. Un laberinto de inconsecuencias manchado de trucos de listillo y comentarios irrelevantes. Ver mi programa.
- mi programa
- n. Una gema de precisión algorítmica, que ofrece el más sublime equilibrio entre la escritura de código compacta y eficiente en una mano, y la legibilidad de sus comentarios para la posteridad en la otra. Ver tu programa.
Y la pregunta es: ¿el siguiente código es “demasiado listo” o se entiende por si mismo?
public abstract class Orden
{
/* … */
private List<DefinicionArgumento> definicionArgumentos;
private boolean argumentosOpcionales;
/* … */
protected void addDefinicionArgumento(DefinicionArgumento.Tipo tipo) {
addDefinicionArgumento(tipo, false);
}
protected void addDefinicionArgumento(DefinicionArgumento.Tipo tipo, boolean opcional) {
argumentosOpcionales ||= opcional;
defincionArgumento.add(new DefinicionArgumento(tipo, opcional || argumentosOpcionales));
}
/* … */
}
Me preocupa sobre todo el nombre de la variable argumentosOpcionales y si se entiende lo que hace.
¿Alguna opinión?

