design - toxicos - ¿Cómo te mantienes y evitas que tus compañeros de trabajo creen grandes clases?
que hacer cuando tus compañeros de trabajo no te quieren (7)
El paso más importante para mí para evitar grandes clases que a menudo violan SRP era utilizar un marco de inyección de dependencia simple. Esto me liberó de pensar demasiado acerca de cómo unir cosas. Solo uso la inyección de constructor para mantener el diseño libre de ciclos. Herramientas como Resharper ayudan a inicializar campos desde argumentos de constructor. Esta combinación lleva a una sobrecarga de casi cero para crear y conectar nuevas clases, y me alienta implícitamente a estructurar el comportamiento con mucho más detalle.
Todo esto funciona mejor si los datos se mantienen separados del comportamiento, y su lenguaje admite construcciones como eventos que se pueden usar para desacoplar la comunicación que fluye hacia abajo en el gráfico de dependencia.
Usuarios de Stackoverflow, ¿cómo evitar crear grandes clases con métodos grandes de cuerpo? Cuando los plazos son ajustados, terminas tratando de hackear cosas y termina siendo un desastre que necesitaría ser refactorizado.
Para mí, la única forma era comenzar con un desarrollo basado en pruebas y eso se presta para un buen diseño de clase, así como también para el SRP (Principio de Responsabilidad Individual).
También veo que los desarrolladores solo hacen doble clic en los controles y teclean línea tras línea en el método de evento que se activa.
¿Cuáles son tus sugerencias?
Las clases largas son un mal olor de código de muchas posibles.
Remediar clases excesivamente grandes creando muchas pequeñas puede crear sus propios problemas. A los nuevos ingenieros en su proyecto puede resultarles difícil seguir el flujo del código para determinar qué ocurre. Un artefacto de este problema pueden ser las pilas de llamadas muy altas, anidación de ejecución a través de muchas clases pequeñas.
Otra sugerencia es hacer solo lo que se pide. No juegue al juego "Qué pasa si" e intente sobre diseñar una solución. Esto tiene la idea de "Mantenerlo simple, estúpido" detrás de esto.
Somos una tienda de Java y Maven, y una de las ... Supongo que se podría decir que los métodos forenses que usamos son los excelentes complementos FindBugs, PMD y javancss. Todos darán advertencias sobre la longitud excesiva en un método, y los cálculos de complejidad ciclomática pueden ser muy reveladores.
Supongo que depende tanto de tus procesos internos como de cualquier cosa.
En mi compañía, practicamos la revisión por pares, y todos los códigos que se contratan deben ser ''compilados'' por otro desarrollador, a quien debe explicarle su código.
Las limitaciones de tiempo son una cosa, pero si reviso un código que tiene clases atrozmente largas, entonces no aceptaré el check-in.
Es difícil acostumbrarse al principio, pero al final del día, es mejor para todos.
Además, tener un desarrollador sénior que sea un campeón para un buen diseño de clase, y esté dispuesto y sea capaz de dar ejemplos, ayuda tremendamente.
Finalmente, a menudo hacemos una sesión de "mostrar y contar" de codificación donde mostramos nuestro trabajo a nuestros compañeros, ¡nos corresponde no hacer esto con un código feo!
Use una herramienta como Resharper y el comando Extract Method.
utilice algunas herramientas de análisis de código estático en sus compilaciones automáticas y escriba / configure / use algunas reglas para que, por ejemplo, alguien tenga que escribir una justificación cuando la rompa.