¿Deben ubicarse las clases, las enumeraciones y otras entidades en archivos separados?

12

El jefe de equipo de mi empresa \ el arquitecto sostiene que un proyecto a gran escala es más fácil de entender si las "entidades conectadas por lógica" se colocan en un archivo .cs.

Cito:

  • "La estructura completa de la lógica y la interfaz y la clase se pueden ver en un solo lugar, este es un argumento que no se puede refutar. Para ver lo mismo pero con un montón de archivos que necesita para utilizar las herramientas, el diagrama de clase, R # para la navegación, etc. "

  • "Siguiendo la teoría deficiente, puedo gritar que un ejército de archivos separados es genial, pero cuando se trata de realizar cambios en el código existente, especialmente si no eres un escritor de este código, es muy difícil entienda un montón de archivos dispersos. Así que en los foros, puede escribir ese "archivo de enumeración uno", pero en la práctica este enfoque nunca debe usarse "

  • "... En cuanto a la separación de la base de código entre los desarrolladores, hoy en día no es un problema editar el mismo archivo simultáneamente. La combinación no es un problema".

He escuchado y leído muchas veces que tenemos que crear un archivo .cs por enumeración, clase, etc., y esta es la mejor práctica.

Pero no puedo convencerlo. Él dice que no confía en ningún programador conocido como Jon Skeet. Por cierto, aquí está la opinión de Skeet sobre este tema: ¿Dónde está el ¿El mejor lugar para localizar tipos de enumeración?

¿Qué piensas? ¿Hay un problema real? ¿O es una cuestión de gusto y debería estar regulada por el estándar de codificación de la organización?

    
pregunta EngineerSpock 18.03.2013 - 19:41

2 respuestas

20

Hay un par de fallas en el argumento de tu Líder de equipo:

  1. Las clases y los enums bien diseñados están diseñados para ser utilizados en cualquier parte en su proyecto, no solo donde puedan tener sentido lógicamente.

  2. Las clases y las enumeraciones que están debidamente documentadas con comentarios XML son muy autodescriptivas, simplemente al desplazarse sobre el elemento que hace referencia a él.

  3. Siempre puede obtener una definición de clase o enumeración haciendo clic con el botón derecho en la referencia y seleccionando "Ir a definición", por lo que realmente no debería importar dónde lo coloque.

  4. Poner los objetos juntos de manera "lógica" es arbitrario (es decir, tienes que pensar qué significa "lógico". Prefiero gastar esos ciclos de reloj haciendo la programación real).

La configuración de cada definición de objeto en su propio archivo crea una expectativa uniforme y disciplinada de organización y estructura, y no genera preguntas como "¿por qué está esto aquí?" Eso es algo muy bueno de tener.

Si dos o más objetos están relacionados lógicamente, simplemente colóquelos en su propia carpeta en el Explorador de proyectos.

    
respondido por el Robert Harvey 18.03.2013 - 19:58
4

Lo más probable es que el líder del equipo se cortara los dientes en una era anterior cuando hacer clic derecho y elegir "ir a la definición" no era una opción. Sé que cuando estoy en el modo de desarrollo de Heavy Spike creceré archivos de clase bastante masivos hasta que deje que Resharper me los arregle.

En cualquier caso, si quisiera tomar la iniciativa del equipo, pregúntele por qué estas clases y enumeraciones no son clases secundarias y enumeraciones, no hay razón para declararlas como entidades independientes si son entidades verdaderamente dependientes. Esto podría ayudarlo a pensar la fatwa un poco.

    
respondido por el Wyatt Barnett 18.03.2013 - 21:01

Lea otras preguntas en las etiquetas