Tutti i metodi in un file / classe rispetto a più file / classi [duplicato]

-2

Questa domanda parla principalmente di PHP, ma penso che possa essere applicabile anche ad altre lingue. Questa è una domanda sull'organizzazione del codice.

Ho un amico che insiste nel dire che l'approccio migliore per l'organizzazione alla programmazione PHP è di avere un file / classe con tutte le funzioni mai scritte al suo interno. Dice che è più semplice in questo modo perché può semplicemente trovare una scoperta su function myFunctionName per trovare una funzione. Ho provato a rompere con questo approccio e ad usare più file / classi di codice per organizzare il codice correlato come mi è stato insegnato a scuola. Ma trovo che ci vuole più tempo per trovare le funzioni che sto cercando di farlo in questo modo. C'è un punto in cui un progetto diventa abbastanza grande che più file diventano migliori di un file? Quando è questo punto?

Qual è un buon argomento per separare le funzioni in file diversi?

    
posta Ben Lorantfy 12.12.2015 - 20:00
fonte

2 risposte

0

Bellissima domanda! È molto simile a chiedere "perché usare le lezioni?" e la risposta è incapsulamento .

Per prima cosa vorrei negare l'argomento "rende più facile la ricerca", un IDE fa una grande differenza! Anche VB6 offre un'opzione trova nei file (per il progetto o il percorso di una cartella). Tutti gli IDE e la maggior parte degli editor di testo hanno questa funzionalità che è comunemente associata a CTRL+SHIFT+F . Dai un'occhiata a PHPStorm .

Ulteriori vantaggi sono:

  • con grandi progetti se non riesci a ricordare il nome di qualcosa: è molto più semplice navigare in una gerarchia di file system organizzata piuttosto che scorrere un enorme file PHP.

  • È anche molto più facile unire le modifiche con altri sviluppatori se stavi lavorando su file separati! Noterai che altri sviluppatori stanno utilizzando più file - fidati: non è solo perché gli è stato detto a scuola.

  • Alcuni framework di PHP ti richiedono di lavorare su più file.

  • Ma probabilmente il più grande vantaggio è che ti incoraggia a pensare almeno al SRP (Principio della singola responsabilità) . Questo è dove ogni classe (o anche un file in alcune lingue) ha un lavoro molto specifico da fare e fa solo quel lavoro. Quando ti abitui a questo, il tuo codice diventa molto più facile da leggere , specialmente quando lo ritorni dopo una lunga interruzione. Quando dai un nome al tuo file (e alla tua classe) correttamente, ottieni subito un senso di scopo per il codice e questo ti aiuta a rimanere in pista.

Non c'è niente di sbagliato in apprendimento in un singolo file o anche nell'avvio di un progetto lì - in effetti, molte lingue (ad esempio Python , TypeScript ) incoraggiano meno file. Ma quando senti che stai iniziando a superare questo livello, inizia a leggere su Patterns e su buone convenzioni di denominazione e ti renderai conto che puoi code-share tra i progetti che è un molto più semplice con i file rispetto alle linee di codice.

    
risposta data 12.12.2015 - 21:24
fonte
-2

Di solito, ciò che dividiamo in file separati è classi, non funzioni.

Se il tuo codice non è orientato agli oggetti, quindi è costituito da una moltitudine di funzioni indipendenti, (al contrario di un gruppo di classi in cui ogni funzione appartiene a una classe specifica), allora potrebbe essere meglio lasciare tutte le funzioni in un singolo file sorgente.

In questo modo, stai chiaramente indicando all'osservatore inconsapevole che si tratta di un terribile lungo pasticcio di codice funzione-chiamata-funzione stile anni Sessanta da cui è meglio evitare e nemmeno provare a leggere o comprendere.

La divisione delle funzioni in file separati potrebbe creare l'illusione di un progetto software, mentre in effetti non ce n'è.

    
risposta data 12.12.2015 - 20:58
fonte

Leggi altre domande sui tag