2016-04-06 13 views
1

Guten Abend/Morgen (abhängig von Ihrem Platz),Verschachtelte Funktionen vs. Methoden Verkettung vs. eine && Folge von Funktionen

Ich bin ein Neuling ‚Entwickler‘ (JS/Meteor-Plattform), und ich jeden Tag entdecke eine neue Sache über JS. Ich kenne mein niedriges Niveau, es ist nicht so schwer ...

Ich frage mich derzeit der beste Weg/Praxis, um eine switch(true) zu codieren. Genauer gesagt habe ich eine Switch statement mit etwa 20 cases.

Derzeit entscheide ich mich, einige cases zusammen nicht zu verschachteln, finde ich es weniger einfach zu lesen. Also meine Aussage sieht aus wie etwas wie folgt aus:

switch() 
    case 1 
    case 2 
    case 3 
    case 4 
    case 5 
    case 6 
    ... 
    default 

Statt etwas wie:

switch() 
    case 1 
    if 
    elseif 
    else 
    //or 
    case 2 
    switch() 
     case 2.1 
     case 2.2 

Meine Frage ist: jeder Fall prüft so etwas wie 5+ Funktionen. So ein case ist grundsätzlich auf diese Weise geschrieben:

case (function1() 
     && function2() 
     && function3() == null 
     && typeof abc[1] === 'undefined' 
     && function4() === 'xyz') : //etc... 

Gibt es einen besseren Weg, um Kettenfunktionen?

Ich bin derzeit auf der Suche nach Chaining-Methode in einer jQuery-Weise: function(). Function2(). Function3() ... Aber ich weiß nicht, ob es einen besseren Weg, um mit dieser Art von Situation umzugehen .

Ich freue mich auf Ihr Feedback/Beratung und jede Lesung/Vorlesung, die Sie empfehlen würden. Ich hoffe auch, dass diese Frage für SO "richtig" ist.

Vielen Dank.

+0

Warum benutzen Sie Schalter? – Amit

+1

Was genau versuchen Sie zu erreichen? Wenn Sie mehr Kontext bereitstellen, wird Ihre Frage klarer.Ich habe nicht gefunden, dass ich Schalteranweisungen brauche. – undefined

+0

Wir brauchen mehr Details über das eigentliche Problem, das Sie lösen möchten. Schreiben Sie automatisierte Komponententests oder ähnliches? – user2867288

Antwort

0

Sie sollten immer gegen kleine Funktionen streben, um die Lesbarkeit zu erhöhen. Es kann sinnvoll sein, Funktionsaufrufe in neue Funktionen zu gruppieren. Je schneller Sie bestimmen können, was eine Funktion leistet, desto besser. Versuchen Sie, nur Dinge zu haben, die für die aktuelle Funktion relevant sind, zum Beispiel:

Sie sollen eine Menge Informationen über eine Person abrufen, aber die Informationen werden in verschiedene Quellen verteilt, die Sie zwingen, eine Funktion für Name, eine für das Alter zu haben eine für Schuhgröße und so weiter.

Statt des Schreibens wie

case 1: 
    var person = { 
     name: getName(), 
     age: getAge(), 
     showSize: getShowSize() 
    }; 

Man könnte es schreiben wie

case 1: 
    var person = getPerson(); 

und die der getPerson Funktion

function getPerson() { 
    return { 
     name: getName(), 
     age: getAge(), 
     showSize: getShowSize() 
    } 
} 

In Ihrem 20 Fällen Ich bin sicher, es gibt logische Gruppen von Funktionen, die in mehreren Fällen verwendet werden. Versuchen Sie, sie zu gruppieren, wenn sie logische Verbindungen haben. Mit einem Schalter so groß wie mit 20 Fällen würde ich versuchen, in jedem Fall nicht zu viel Code zu schreiben, da es wahrscheinlich schwierig machen würde, zu sehen, was die Funktion tut.

Ich hoffe, ich habe Ihr Problem und gab Ihnen zumindest einige Ratschläge, die Sie nützlich finden.