Sven Rautenberg: Kalkulationen in einer Zeile sind nicht zuviel?

Beitrag lesen

Moin!

Ich verweise noch einaml auf meinen obigen Kommentar zu dem du was geschrieben hast.

Beispiel:

function mathPower( b, e ) {
  r = 1;
  for( e = 0; e < b; e++ ){ // im beispiel verwende ich e anstatt i zu verdeutlichung
    r *= b;
  }
}

anstatt

function mathPower( basis, exponent ) {
  result = 1;
  for( exponent = 0; exponent < basis; exponent++ ){
    result *= basis;
  } 
}

das ist natürlich übersichtlicher und ich würde das auch so schreiben aber wenns komplexer wird dann nicht! Im bepsiel gehts mir ums Prinzip.

Du meinst, dein erstes Beispiel ist übersichtlicher? Würde ich nicht sagen.

Das zweite Codebeispiel macht mir beim Lesen beispielsweise sehr deutlich, dass du den Parameter "exponent" komplett ignorierst, und neu in der Schleife initialisierst. Außerdem vergleichst du den inkrementierten Exponenten mit der Basis. War das Problem der Potentberechnung nicht, so oft, wie der Exponent sagt, die Basis zu multiplizieren? Du brauchst also eine unabhängige Laufvariable, die du nicht hast.

Und wenn du nur Buchstabenfitzel als Variablennamen verwendest, dann verwischst du den Sinn. Irgendein "e" als Laufvariable zu verwenden, ist genauso richtig oder falsch, wie ein "i" zu verwenden (wobei "i" mir immer "anonyme Laufvariable zum Inkrementieren" signalisiert - aber warum nicht auch mal "e" nehmen.) Ich erkenne den Sinngehalt der Funktion viel deutlicher, wenn die Variablennamen da ausgeschrieben stehen und ihren fachlichen Inhalt zum Namen haben.

Ich bin noch zu unerfaren das ich darüber ne aussage fällen kann.

Nimm den Rat der erfahrenen Entwickler hier, und schreibe Variablennamen lang. Manche Codingstyles meckern, wenn Variablennamen kürzer als 3 Zeichen sind.

Dein Beispiel ist außerdem schlecht gewählt: In Code geht es nie selten um Mathematikoperationen, dafür gibts (hoffentlich) Support von der Programmiersprache selbst. Matheprobleme sind, zumindest bei solchen Basics, auch selbsterklärend, wenn nur wenigstens der Funktionsname etwas einleuchtend formuliert ist. In der Regel geht es immer um irgendeinen fachlichen Kontext, der nicht selbsterklärend ist. Und für den braucht man als Mensch alle verfügbaren Hilfestellungen zum Verständnis - ansonsten könntest du direkt Assembler binär in die Maschine tickern.

Grüße Sven