Tutte le funzioni di programmazione ritornano sempre all'istruzione If o If / Else? [chiuso]

-1

Dopo aver imparato, codificato e codificato ancora più che mai ora, ho notato una tendenza in molti programmi che faccio. La tendenza è che la maggioranza delle mie funzioni è if{} o if{} else{} dichiarazioni quando si tratta di eseguire le funzioni nel mio codice.

Ho ristretto la possibilità che sia solo il progetto su cui sto lavorando. Il progetto sta costruendo un framework o un'applicazione PHP (a seconda di quale si voglia chiamare). La maggior parte del mio codice per autoloader.php , application.php e tutti i file heavy-lifting stanno svolgendo le loro funzioni per assicurarsi che tutto si carichi correttamente e costruisca l'ambiente.

Dopo aver lavorato con funzioni molto complesse all'interno del mio codice per fare questo e quello, sono tutti racchiusi all'interno di un'istruzione if{} o if{} else{} .

Questa è una tendenza comune per la maggior parte della programmazione? O sto troppo reagendo a qualcosa che sto vedendo molto? Le funzioni più complesse nella codifica tornano sempre alle basi della leggendaria istruzione if{} o if{} else{} ?

    
posta Traven 22.06.2014 - 03:40
fonte

1 risposta

0

Esistono diversi modi per esaminare questa domanda.

Come vengono usati i condizionali

Questa è probabilmente più la domanda che hai posto. E la risposta è, dipende da una serie di fattori. Per le persone che usano pesantemente SQL, alla fine le query spesso sono costruite in un modo (ad esempio usando le clausole WHERE o HAVING) che il codice non ha bisogno di condizioni if . Tuttavia, quelle condizioni sono appena state trasferite altrove e sembrano diverse. Pertanto, diventa un confronto tra organse e mele.

Alcuni sviluppatori tendono a scrivere più codice condizionale mentre altri possono usare espressioni dichiarative (come LINQ in C #), in cui Select , ad esempio, incorpora già condizionali.

E infine, a volte è solo uno stile personale. Per chiarezza del codice, preferisco non scrivere condizionali nidificati, e quindi finire per distribuirli altrove. In molti casi, riduco i condizionali utilizzando modelli, come Adapter o DataMapper che spinge il condizionale in un punto e il resto della logica scorre a seconda di quale classe è stata istanziata.

Codice complessità

Esistono alcune metriche, come la complessità ciclomatica (nota anche come complessità condizionale) che tenterà di valutare se il il codice è troppo complesso per essere mantenibile (e quindi considerato negativo). Per i motivi che ho menzionato nella sezione precedente, e spendendo una buona parte della mia carriera nella disciplina di test sul codice degli altri, posso dirti che è difficile generalizzare anche questo, e quindi le opinioni variano su questi parametri, anche all'interno la comunità di test.

Comunque, puoi leggere di più su questi e alcuni strumenti, come Visual Studio, daranno complessità ciclomatica e, a volte, puoi provare a migliorarlo e vedere se è utile con l'organizzazione del codice. A volte, tale "prototipazione" aiuta.

Principio delle condizioni

In linea di principio, le condizioni di if/else (e tutte le sue sorelle) stanno davvero prendendo una o più decisioni. Tale decisione potrebbe essere dovuta al fatto che il programma deve effettivamente prendere una decisione a nome dell'utente (come decidere se includere una transazione per un bilancio, ecc.) O una decisione per la logica interna del programma (ad esempio in base alla risoluzione dello schermo, decidere se il flusso è multi-colonna o singola colonna).

Quindi, in generale, un bel po 'di codice può sembrare condizionale, e nessuno può dire se c'è qualcosa di sbagliato in questo (o meno).

Conclusione

Secondo me, l'organizzazione del codice è un'arte e una scienza. Ho imparato l'arte solo codificando per vivere per una parte importante della mia carriera, e la parte scientifica apprendendo attraverso libri, recensioni di codici, ecc. Non credo che nessuno possa realizzarsi senza l'altro. La soluzione migliore, se sei preoccupato per il tuo codice, è convincere qualcuno a fare una peer review della tua architettura, design, modello di dati e codice. Un estraneo, in particolare qualcuno che non ha lavorato con te, a volte può anche portare una prospettiva che non puoi facilmente ripagare. Ma puoi restituire il favore a loro (oa qualcun altro).

    
risposta data 22.06.2014 - 05:12
fonte

Leggi altre domande sui tag