El jefe de equipo / arquitecto de mi compañía argumenta 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.
Yo cito:
"Toda la estructura de la lógica y la interfaz y la clase se puede ver en un solo lugar, este es un argumento que no se puede refutar. Para ver la misma cosa pero con un montón de archivos necesitas usar las herramientas, clase diagrama, R # para navegación, etc. "
"Siguiendo la pobre teoría, podría gritar que un ejército de archivos separados es genial, pero cuando se trata de hacer cambios en el código existente, especialmente si no fue un escritor de este código, es muy difícil entender muchos archivos dispersos". Por lo tanto, en los foros, puede escribir "un archivo de enumeración", pero en la práctica este enfoque nunca debe usarse "
"... En cuanto a la separación de la base de código entre desarrolladores, hoy en día no es un problema editar simultáneamente el mismo archivo. La fusión no es un problema".
Escuché y leí 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 mejor lugar para ubicar tipos de enumeración?
¿Qué piensas? ¿Hay un problema real? ¿O es cuestión de gustos y debe estar regulado por el estándar de codificación de la organización?
fuente
Respuestas:
Hay un par de fallas en el argumento de su jefe de equipo:
Las clases y enumeraciones bien diseñadas están destinadas a ser utilizadas en cualquier parte de su proyecto, no solo donde pueden tener sentido lógicamente.
Las clases y enumeraciones debidamente documentadas con comentarios XML son muy autodescriptivas, simplemente se ciernen sobre el elemento que hace referencia a él.
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 la coloque.
Poner objetos juntos de manera "lógica" es arbitrario (es decir, tienes que pensar en lo que significa "lógico". Prefiero gastar esos ciclos de reloj haciendo la programación real).
Configurar cada definición de objeto en su propio archivo crea una expectativa uniforme y disciplinada de organización y estructura, y no plantea 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.
fuente
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 definición" no era una opción. Sé que cuando estoy en modo de desarrollo de picos pesados, creceré archivos de clase bastante masivos hasta que deje que resharper lo arregle por mí.
En cualquier caso, si desea llevar al equipo a la tarea, pregúntele por qué estas clases y enumeraciones no son clases y enumeraciones secundarias; no hay razón para declararlas como entidades independientes si son entidades realmente dependientes. Esto podría ayudarlo a pensar un poco sobre la fatwa.
fuente