Dovresti usare altro per controllare?

3

Quale struttura del codice di scrittura è migliore e perché?

if (!file_exists('file.txt')) {
   throw new Exception();
} else {
   //operations
}

o

if (!file_exists('file.txt')) {
   throw new Exception();
} 
//operations

Non l'ho trovato nella documentazione PSR.

    
posta nubakusev 13.05.2017 - 16:21
fonte

2 risposte

11

Ciò che descrivi nel tuo secondo esempio di codice è una clausola di guardia

Esistono clausole di protezione che consentono di evitare l'annidamento eccessivo di condizioni difficili da mantenere e difficili da leggere:

if ()
{
    throw;
}
else
{
    if()
    {
        return;
    }
    else
    {  
         if()
         {
             log and return;
         }
         else

La scrittura di clausole di protezione ti consente di mantenere separate le tue condizioni:

if()
{
    throw;
}

if()
{
    return;
}

if()
{
    log and return;
}

// Do actual work

Ogni clausola di salvaguardia può identificare una condizione specifica o eseguire specifici lavori di pulizia prima di uscire dalla funzione.

Ulteriori letture
Sostituisci nidificati condizionali con clausole di guardia

    
risposta data 13.05.2017 - 16:33
fonte
-1

Applicheremmo separazioni di interesse .

Il tuo esempio mostra due responsabilità: verificare le precondizioni e svolgere il lavoro effettivo. Li inserirò in metodi separati:

throwIfFileFailsChecks(file);
workWithFileContent(file);

Quest'ultimo può essere suddiviso in più metodi con "preoccupazioni" dedicate.

    
risposta data 13.05.2017 - 16:49
fonte

Leggi altre domande sui tag