Coding-Konventionen für das Schreiben von FCKWs in CF9?
-
20-09-2019 - |
Frage
Mit den neuen Möglichkeiten des CFC in CF9 schreiben, was einem Teil der Codierung Konvention neu zu CF9 ist?
Hier sind einige, die ich von ...
denken kann- verwenden immer LOCAL Anwendungsbereich
- Wir sind stets bemüht
init()
Methode, dass die Renditen selbst, daNew
nennen init (), falls vorhanden. - nicht setzen erforderlichen Argumente in
init()
wenn es ein ORM Entität ist, sonst erwarten Ausnahmen ... - verwenden immer
THIS.setXXX
in wobei XXX Eigenschaftsnamen innerhalb init (), so dass es die implizite Setter oder benutzerdefinierte Setter aufrufen, falls verfügbar. - verlassen die Pre-CF8 INSTANZ Rahmen Konvention finden Sie unter: http://henrylearnstorock.blogspot.com/2009/08/should-we-abandon-instance-scope-in-cf9.html
- keine Ausgabe = false für Komponenten- und Funktionen im CFC-Skript Stil finden Sie unter: http://www.coldfusionjedi.com/index.cfm/2009/8/26/Ask-a-Jedi-Impact-of- whitespace-and-Script-basierte-FCKW
- verwenden, um die sauberere und effizientere
isNull(arguments.optionalArg)
stattisDefined()
Lösung
brauchen wir noch Set-Attribut output = false für Komponente und Funktionen im CFC-Skript Stil?
Ich würde nicht so denken. <cfscript>
von Natur aus unterdrückt jede Leerzeichen und muss writeOutput()
, um überhaupt eine Ausgabe zu haben.
Andere Tipps
Ihre Methode init () nicht über den „diesen“ Umfang zurück, wenn Sie es mit der „neuen my.cfc ()“ aufrufen Syntax. Eine wahre Geschichte.
Wenn Sie sich in einem cfc sind und wollen eine Immobilie setzen, benutzen nicht this.setFoo (), nur gehen setFoo (). Das Gleiche gilt für getFoo (). Die this.xxx () ist wie die Haustür kommen zurück nur ausgehen. Auch Ihr Zugang = privaten benutzerdefinierten Getter und Setter wird nicht funktionieren, da die Funktionen im diesem Bereich sein würden nicht.
"var foo" vs "local.foo." - Ich persönlich ziehe Variablen var'd da es a) weniger Code-Typ, und b) weniger Code zu lesen
// there isnt a huge difference here
var today = now();
var tomorrow = dateAdd( 'd', 1, today );
local.today = now();
local.tomorrow = dateAdd( 'd', 1, local.today );
// but when you start getting more complex examples, it quickly blows out
var out = method( var1, var2, var3, var4, var5 );
local.out = method( local.var1, local.var2, local.var3, local.var4, local.var5 );
Mit javadocs Stil Kommentare. Die Dokumentation ist dein Freund.
/**
* @hint This is a hint for the whole function
* @arg1 This is an argument hint
* @arg2 This is another argument hint
**/
public void function myFunction( string arg1 = 'default', boolean arg2 ) {
return true;
}
alle Funktionen, die alten Daten einen Wert zurückgeben sollten, auch wenn es ein boolean ist, die derzeit immer wahr ist. Funktionen haben einen Weg schließlich benötigen false zurück