Había hecho esta pregunta en Stackoverflow, y antes de que se abucheara, recibí la sugerencia útil de Péter Török de que este podría ser un mejor lugar para publicarla.
He estado programando en Java por algunos años. A menudo he discutido las decisiones de diseño con colegas sobre la base de lo que constituye un "buen estilo". De hecho, hay una serie de preguntas / respuestas de StackOverflow que discuten un diseño sobre la base de si algo es 'buen estilo'.
Pero, ¿qué hace "buen estilo"? Como muchas cosas, lo sé cuando lo veo ... pero quería tener una mejor idea que solo mi conciencia diciendo que este diseño no se siente bien.
¿En qué piensa para producir un código bueno y bien diseñado?
(Reconozco que esto es algo subjetivo, ya que lo que es 'buen estilo' dependerá de la tarea en cuestión). (Además, debo agregar que no estoy interesado en los estilos de equipo, por ejemplo, "usamos sangrías de 2 espacios en lugar de 4" ..., y no estoy interesado en las convenciones de código Java).
Editar: gracias por todas las buenas respuestas / comentarios hasta ahora. ¿Me interesan especialmente las respuestas que ayuden a codificar aquellas cosas que hacen que la conciencia de un programador (y posiblemente el estómago) se desgarre?
fuente
Respuestas:
Algunos breves puntos:
fuente
Agregando a la lista de Ryan:
xFactoryFactory
clase, lo estás haciendo mal :-)Me detendré ahí.
fuente
HammerFactoryFactoryFactory
clase? ;-)Si bien aprecio las respuestas de los demás, pensé que era justo compartir algunas de las cosas en las que pienso cuando intento escribir un buen código:
¿Qué necesita saber sobre esta clase / método / variable? es decir, ¿dónde debería vivir este conocimiento?
¿Cómo podría este código afectar la memoria / rendimiento de mi aplicación? (Reconozco que 'la optimización prematura es la raíz de todo mal'; por lo tanto, no sugiero pasar mucho tiempo optimizando, sino más bien una conciencia mientras escribo inicialmente mi código).
¿Está claro (del código y las estructuras de código) qué hace esto? (Trato de seguir la máxima: "Esforzarse por no hacer posible que la gente entienda, esforzarse por hacer que sea imposible que la gente malinterprete").
fuente
Lea la clase String y ArrayList para obtener excelentes ejemplos de programación Java adecuada. Pero son muy concisos, casi estilo C, lo que no es necesariamente el mejor para el código mantenible con documentos java mínimos. La práctica común en mi tienda es no hacer comentarios, por lo que trato de comentar por código usando nombres var. Detallados de camelCase y el uso excesivo de nuevas líneas para delimitar una línea de pensamiento de otra. Sigo debatiendo el uso de pestañas para separar los vars de sus valores. Las pestañas pueden mejorar la legibilidad, IMO, pero solo cuando se hace mínimamente y es muy subjetivo. Me parece que se trata realmente de la audiencia. No hay mejor respuesta aquí.
fuente