17 Stimmen

Veraltete Codierungspraktiken

Wenn ich meinen Code schreibe, frage ich mich manchmal, ob ich die Dinge auf die beste Art und Weise mache oder einfach nur so, wie es immer gemacht wurde. Macht das, was ich tue, noch Sinn?

Zum Beispiel das Deklarieren aller Variablen am Anfang der Funktion. Wenn ich versuche, sie zweimal zu deklarieren oder unterhalb des Punktes, an dem ich sie beginne zu nutzen, wird mein IDE mich zur Designzeit darauf aufmerksam machen - also was ist das große Problem dabei? Es scheint sinnvoller zu sein, die Variablen direkt über dem Block zu deklarieren, in dem sie verwendet werden sollen.

Eine weitere Sache wäre die ungarische Notation. Ich hasse es, dass alle meine Variablen, die mit einem bestimmten Objekt zusammenhängen, in meinem Intellisense verstreut sind.

Mit modernen Fortschritten in Frameworks und IDEs gibt es einige Codierungspraktiken, die nicht mehr wirklich relevant sind, und andere, die möglicherweise einfach falsch sind?

3voto

starblue Punkte 53167

Ausrichtung in Spalten (z.B. Variablen in Deklarationen oder = in Zuweisungen).

Es ist mühsam, dies manuell aufrechtzuerhalten, automatische Umbenennungen werden es sowieso durcheinanderbringen, einige Zeilen werden sehr lang mit Dingen, die zusammengehören, weit auseinander, sodass Sie Schwierigkeiten haben, die Beziehung zu erkennen.

3voto

OrangeAlmondSoap Punkte 3372

Wie bereits gesagt wurde, versuchen Sie nicht, die Redewendungen einer Sprache auf eine andere zu übertragen. Dies gilt insbesondere bei stark unterschiedlichen Sprachen, wie z.B. von C++ zu Python zu wechseln. Außerdem (das könnte nur eine Frage des persönlichen Stils sein), habe ich früher eine Variable deklariert und ihr später einen Wert zugewiesen. Ich finde es jedoch viel schneller und platzsparender, sie gleichzeitig zu deklarieren und zu definieren.

2voto

HardCode Punkte 6311

Was die Variablendeklaration betrifft, ist der beste Ort, um sie zu deklarieren, kurz bevor sie verwendet werden. Wenn Ihre Funktion/Prozedur so groß ist, dass am Anfang viele Variablen deklariert werden, sollten Sie in Erwägung ziehen, die Funktion in mehrere kleinere aufzuteilen.

Was die ungarische Notation betrifft, gilt die gleiche Antwort. Wenn die Funktion so groß ist, dass Sie die Definition der Variable nicht schnell erkennen können (obwohl sie kurz vor der Verwendung deklariert werden sollte), sollten Sie eine Überarbeitung in Betracht ziehen.

In den meisten Fällen sollte eine gut geschriebene, gut überarbeitete Funktion die Variablendeklaration und den Datentyp beim schnellen Blick auf die Code-Seite offensichtlich machen.

1voto

cherouvim Punkte 31201

Auch wenn es in Java ist, ist dies das Buch, das ich für Leute empfehle, die ihren Codierungsstil optimieren/modernisieren möchten: http://www.amazon.com/Implementation-Patterns-Addison-Wesley-Signature-Kent/dp/0321413091

1voto

eglasius Punkte 35447

Die Variablen oben machen in einer Sprache wie Javascript Sinn. Es hat keinen Blockscope, also vereinfacht es das Lesen.

Betrachten Sie einen Funktionskörper, der enthält:

//some code
if(something)
{
   var c = 123;
}

alert(c); // gibt 123 aus, wenn das if ausgeführt wird, und undefined, wenn es nicht ausgeführt wird.

Dies ist eine Erinnerung daran, dass jede Sprache anders ist und dass dies definitiv beeinflussen kann, was angemessen ist und was nicht. Berücksichtigen Sie auch, dass der Code, den Sie im zugehörigen Framework verwenden, normalerweise einen bestimmten Codierungsstil verwendet. Wenn Sie etwas radikal anderes verwenden, werden Sie zwangsläufig auf gemischte Stile stoßen.

Update: Das oben Genannte in Javascript ändert sich (wie in einem Kommentar erwähnt). Es scheint nicht breit unterstützt zu werden (ich habe keinen guten Link dazu gefunden :(), was auch daran erinnert, dass wir nicht voreilig in die neuen Funktionen stürzen sollten, ohne den Kontext zu berücksichtigen, in dem wir sie verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X