Le classi, le enumerazioni e le altre entità dovrebbero essere inserite in file separati?

12

Il team della mia azienda guida \ architect sostiene che un progetto su larga scala è più facile da capire se "le entità connesse dalla logica" sono collocate in un file .cs.

Cito:

  • "L'intera struttura della logica, dell'interfaccia e della classe può essere vista in un unico punto, questo è un argomento che non può essere confutato. Per vedere la stessa cosa ma con un mucchio di file di cui hai bisogno per utilizzare gli strumenti, il diagramma delle classi, R # per la navigazione, ecc. "

  • "Seguendo la povera teoria potrei gridare che un esercito di file separati è bello, ma quando si tratta di apportare modifiche al codice esistente, specialmente se non si è uno scrittore di questo codice, è molto difficile comprendi un sacco di file sparsi, quindi sui forum puoi scrivere "un enumma file", ma in pratica questo approccio non dovrebbe mai essere usato "

  • "... Per quanto riguarda la separazione della base di codice tra gli sviluppatori, al giorno d'oggi non è un problema modificare contemporaneamente lo stesso file. L'unione non è un problema."

Ho sentito e letto molte volte che dobbiamo creare un file .cs per enum, classe e così via e questa è la migliore pratica.

Ma non posso convincerlo. Dice che non si fida di programmatori noti come Jon Skeet. A proposito, ecco l'opinione di Skeet su questo argomento: Dov'è il il miglior posto per individuare i tipi di enum?

Che ne pensi? C'è un problema reale? O è una questione di gusti e dovrebbe essere regolata dallo standard di codifica dell'organizzazione?

    
posta EngineerSpock 18.03.2013 - 19:41
fonte

2 risposte

20

Ci sono un paio di difetti nell'argomento del tuo capo squadra:

  1. Le classi e le enumerazioni ben progettate sono pensate per essere utilizzate ovunque nel tuo progetto, non solo dove possono avere un senso logicamente.

  2. Le classi e le enumerazioni correttamente documentate con i commenti XML sono molto auto-descrittive, semplicemente passando sopra l'elemento che fa riferimento a esso.

  3. È sempre possibile ottenere una definizione di classe o enum facendo clic con il pulsante destro del mouse sul riferimento e selezionando "Vai a definizione", quindi in realtà non dovrebbe importare dove lo si inserisce.

  4. Mettere gli oggetti insieme in modo "logico" è arbitrario (es. devi pensare a cosa significa "logico". Preferirei spendere quei cicli di clock facendo una programmazione vera e propria).

L'impostazione di ogni definizione di oggetto nel proprio file crea un'aspettativa uniforme e disciplinata di organizzazione e struttura e non solleva domande come "perché è qui?" Questa è una cosa molto carina da avere.

Se due o più oggetti sono correlati logicamente, semplicemente mettili nella loro cartella in Esplora progetti.

    
risposta data 18.03.2013 - 19:58
fonte
4

Molto probabilmente il team leader ha tagliato i denti in un'era precedente quando il clic destro e la scelta di "andare alla definizione" non erano un'opzione. So che quando mi trovo in modalità di sviluppo di spike pesanti, farò crescere file di classe piuttosto massicci finché non avrò lasciato che il programma di correzione lo aggiustasse per me.

In ogni caso, se si desidera portare il team a svolgere un'attività, chiedergli perché queste classi ed enumerazioni non sono classi di bambini ed enumerazione - non c'è motivo di dichiararli come entità indipendenti se sono entità realmente dipendenti. Questo potrebbe aiutarlo a pensare la fatwa attraverso un po '.

    
risposta data 18.03.2013 - 21:01
fonte

Leggi altre domande sui tag