2014-07-10 9 views
6

In questa linea:NPATH Complessità

public Map getAll(BusinessTargetPK pkBusinessTargetId) throws Exception 

sto ottenendo questo errore:

NPath Complexity is 32,768 (max allowed is 200)

E in questa linea:

public Map getAll(Long RLE_ROLE_ID ) throws Exception { 

ottengo questo errore:

The method getAll() has an NPath complexity of 2048

Sono completamente all'oscuro di ciò che è NPath Complexity e cosa significa.

Qualcuno può dare consigli su come evitare questo tipo di errore?

+0

"La complessità NPath di un metodo è il numero di percorsi di esecuzione aciclici attraverso tale metodo." –

+0

http://codingswag.ghost.io/cyclomatic-and-npath-complexity-explained/ – Mirco

+0

@ Wolverine789 Recentemente hai pubblicato anche un'altra domanda su un messaggio da Sonar. Dovrebbe esserci una documentazione che spiega questi messaggi di errore: prendila dalla persona responsabile della configurazione del tuo ambiente di sviluppo! – laune

risposta

12

questo link: https://modess.io/npath-complexity-cyclomatic-complexity-explained/

spiega molto bene come:

The NPath complexity of a method is the number of acyclic execution paths through that method.

Questo significa che si dovrebbe evitare di funzioni a lungo con un sacco di (nested) if/else.

Quindi il mio consiglio è:

  1. dividere le funzioni in quelle più piccole
  2. eliminare inutili if/else-dichiarazioni ove possibile
+4

La complessità di NPath di un metodo è il numero di percorsi di esecuzione aciclici attraverso tale metodo o La semplice spiegazione è che quanti "percorsi" ci sono nel flusso del codice nella funzione. – Wolverine789

1

Questo è un vecchio filo e Wolverine789 ha probabilmente capito a questo punto la risposta, ma per coloro che trovano ancora questa discussione nei risultati di ricerca di Google, ho trovato utile la seguente descrizione dell'errore di Niklas Modess:

https://modess.io/npath-complexity-cyclomatic-complexity-explained/

+2

I collegamenti possono diventare non disponibili. Si prega di descrivere ciò che è scritto nel link – sqlab