Was ist ein ... aehh ... Styleguide?
-
Ich für meinen Teil versehe den Namen für grafische Komponenten stets mit einem Präfix wie btn für Button oder lbl für Labels. Der Rest des Namens dann wie in SUNs Vorschlägen. Ansonsten wie folgt
[java]while (...) {
...
}public class XYZ
{
}if (...) {
}try {
...
} catch (...) {
}public void function(parameter) {
...
}[/code]
-
Original erstellt von Gregor:
und ich mag "_" in Variablennamen (und auch in anderen Namen) nicht! Ausnahme : Konstanten.Jep! Geht mir da genauso. In der Regel lasse ich den Unterstrich auch weg, aber manchmal finde ich, dass er zu Lesbarkeit enorm beitragen kann (besonders natürlich bei konstanten, wie du schon sagtest, oder bei etwas sehr langen Methodennamen).
Apropos Methodennamen, wie lang sollten diese eurer Meinung nach sein? Ich neige dazu Methoden extrem zu verschachteln, da sind lange Methodennamen sehr hinderlich, wenn man eine Zeilenbeschränkung von max. 80 Zeichen einhalten möchte...
-
Original erstellt von Ste.fun:
**
Apropos Methodennamen, wie lang sollten diese eurer Meinung nach sein? Ich neige dazu Methoden extrem zu verschachteln, da sind lange Methodennamen sehr hinderlich, wenn man eine Zeilenbeschränkung von max. 80 Zeichen einhalten möchte...**Jo! Die sind schon hinderlich, trotzdem bevorzuge ich lange Methodennamen vor kurzen, nichtssagenden Methodennamen oder Methodennamen, die aus Abkürzungen bestehen, die man nach 2 Wochen vergessen hat! (meistens)
Mein Lieblingsbeispiel, für etwas, was bei mir viel zu lang geworden ist, ist:
HistogramEqualizerController.ADAPTIVE_NEIGHBORHOOD
@ CengizS : Warum machst du die Einrückung bei Klassen anders, als beim Rest?
-
Original erstellt von Ste.fun:
Ich neige dazu Methoden extrem zu verschachtelnIch versuche inzwischen, starke Verschachtelungen zu beseitigen bzw. zu umgehen. Verschachtelungen sind meistens nicht sehr gut lesbar.
[ Dieser Beitrag wurde am 17.11.2002 um 17:27 Uhr von Gregor editiert. ]
-
Original erstellt von Gregor:
[quote]Original erstellt von Ste.fun:
[qb]Ich neige dazu Methoden extrem zu verschachtelnIch versuche inzwischen, starke Verschachtelungen zu beseitigen bzw. zu umgehen. Verschachtelungen sind meistens nicht sehr gut lesbar.
[ Dieser Beitrag wurde am 17.11.2002 um 17:27 Uhr von Gregor editiert. ][/QB][/QUOTE]
Jep, stimmt. Ich versuche da imemr einen Kompromis zu finden. Entweder Verschachtelung, oder viele (unnötige) Codezeilen durch zusätzliche Instanzierungen - beides ist nicht so toll. Das eine wirkt der Lesbarkeit entgegen, das andere fördert das Scrollrädchen mehr.
Nochwas, bezüglich codeing standards:
Ich schreibe nie zwei anweisungen in eine Zeile! Das könnte man sonst zu schnell überlesen, finde ich.
-
Was meinst du eigentlich mit "Methoden schachteln"? Ich verstehe nicht ganz, wie man so schnell auf die rechte Seite des Bildschirms kommt!
-
@Gregor: Um hervorzuheben dass es etwas spezielles - eine Klasse - ist. Klar das sieht man auch am "class" aber wenn man innere Klassen etc hat und dann schnell drüberscrollt dann meint man oft es wären Methoden oder so. Deswegen hab ich mir das so angewöhnt.
-
Original erstellt von Gregor:
Was meinst du eigentlich mit "Methoden schachteln"? Ich verstehe nicht ganz, wie man so schnell auf die rechte Seite des Bildschirms kommt!Oh, hier habe ich dir ein kleines Beispiel, eben erst programmiert:
private boolean compareNewPassword() { return String.valueOf(field_newPassword.getPassword()).equals(String.valueOf(field_retypePassword.getPassword())); }
Das da oben ist bei mir so der Normalfall. Komme damit aber auch schon wieder über die 80 Zeichen
Ist eigentlich einfach zu lesen und zu verstehen, nur halt etwas zu lang...
[ Dieser Beitrag wurde am 17.11.2002 um 18:20 Uhr von Ste.fun editiert. ]
-
Ach sowas meinst du!
Ich sehe, du schreibst da auch "field_". Markierst du so Membervariablen? Ich markiere die übrigens garnicht. ...meine Klassen sind meistens so klein, dass es offensichtlich ist, was eine Membervariable ist und was nicht (momentan durchschnittlich 53 Codezeilen / Klasse)
@ CengizS : Ach so! ...ich hatte mir das inzwischen schon durch etwas anderes erklärt. Bei Klassen kommt ja oft noch etwas hinter den Klassennamen : Z.B. ein extends oder ein implements. Ich hatte das darauf geschoben. Kommen "extends" und "implements" bei euch eigentlich in neue Zeilen, oder nicht? Bei mir nicht. ...dafür kommt bei mir jede öffnende geschweifte Klammer in eine neue Zeile.
-
Diese field-Bezeichnung benutze ich nur bei Swing Komponenten. Sonst lasse ich diese immer weg. Ich schreibe diese Bezeichnung aber auch in Memberfunktionen. Beispiel:
private void halloPanel()
{
JPanel panel_hallo = new JPanel(new FlowLayout());
JLabel label_hallo = new JLabel("Hallo Welt!");
JButton button_hallo = new JButton("42");
//...
}Diese Art der Bezeichnung hilft mir beim schnellen Wiederfinden der Variablen. Seit dem ich so arbeite komme ich mit der Variablenfülle viel besser klar
Membervariable markiere ich nie besonders. Sonst könnte ich ja gleich immer ein "this." als prefix benutzen, oder meinst du was anderes?
-
Original erstellt von Ste.fun:
**
Membervariable markiere ich nie besonders. Sonst könnte ich ja gleich immer ein "this." als prefix benutzen, oder meinst du was anderes?**Wenn ich C++ programmiere, dann kriegen Membervariablen bei mir immer ein "m_" davor. Finde ich aber nicht wirklich schön!
private void halloPanel()
Soetwas gibt es bei mir nicht. Methodennamen enthalten bei mir immer Verben. Dann ist es IMHO am klarsten, was die Methode macht. Es ist mindestens etwas in der Art, wie "get", "set", "init",... im Methodennamen enthalten. Meistens sind es natürlich andere Verben.!
-
Original erstellt von Gregor:
[quote]private void halloPanel()**
Soetwas gibt es bei mir nicht. Methodennamen enthalten bei mir immer Verben. Dann ist es IMHO am klarsten, was die Methode macht. Es ist mindestens etwas in der Art, wie "get", "set", "init",... im Methodennamen enthalten. Meistens sind es natürlich andere Verben.!**[/QUOTE]Ich sollte das auch zu 100% durchziehen. Meistens arbeite ich auch mit Verben, die Gründe hast du schon genannt. Allerdings, das konntest ja an meinem Beispiel sehen, ziehe ich das nicht immer konzequent durch
-
Habe noch was zum Diskutieren:
Sollte man Variablen immer am Anfang einer Methode deklarieren? Seit einiger Zeit handhabe ich es immer so, dass ich dann eine Variable deklariere, wenn ich diese auch benötige. Ich meine nicht so etwas wie:
private void bla(boolean bla) { int a = 10; if(bla) System.out.println(a); } //versus private void bla(boolean) { if(bla) { int a = 10; System.out.println(a); } }
sondern:
private void bla() { int zahl1, zahl2, summe; // hier folgen 30 Zeilen Code, ohne dass die ints auch nur erwähnt werden zahl1 = 10; zahl2 = 20; summe = zahl1 + zahl2; } // versus private void bla() { //hier folgen 30 Zeilen Code int zahl1, zahl2, summe; zahl1 = 10; zahl2 = 20; summe = zahl1 + zahl2; }
-
BTW : Englisch oder Deutsch oder gemischt?
Ich schreibe alle Namen in Englisch. Aber ich habe auch schonmal gesehen, dass jemand etwas geschrieben hat, wie :public int gibBreite()
-
Original erstellt von Gregor:
**BTW : Englisch oder Deutsch oder gemischt?
Ich schreibe alle Namen in Englisch. Aber ich habe auch schonmal gesehen, dass jemand etwas geschrieben hat, wie :public int gibBreite()**
Englisch... durchweg
-
private void bla()
{
//hier folgen 30 Zeilen Code
int zahl1, zahl2, summe;
zahl1 = 10;
zahl2 = 20;
summe = zahl1 + zahl2;
}
-
Original erstellt von Ste.fun:
**
Sollte man Variablen immer am Anfang einer Methode deklarieren? Seit einiger Zeit handhabe ich es immer so, dass ich dann eine Variable deklariere, wenn ich diese auch benötige.**Das ist bei mir leider nicht einheitlich. Ich deklariere allerdings keine Variablen in Schleifen. In Java kostet das IMHO Zeit (In C++ nicht). Meistens stehen Variablendeklarationen bei mir am Anfang der Methode.
Ich habe übrigens auch schonmal gesehen, dass jemand alle Membervariablen am Ende einer Klasse hinter den ganzen Methoden deklariert. Ich mache das immer am Anfang.
-
Original erstellt von Gregor:
Ich habe übrigens auch schonmal gesehen, dass jemand alle Membervariablen am Ende einer Klasse hinter den ganzen Methoden deklariert.Ich auch... unser Moderator macht sowas :p
Ich persönlich setze diese immer an den Anfang, kann aber kein Argument finden, das diese Arbeitsweise rechtfertigen könnte.
-
//hier folgen 30 Zeilen Code <------- viel zu viel für eine methode
-
Original erstellt von < n>:
//hier folgen 30 Zeilen Code <------- viel zu viel für eine methodeHmmm... bei den Methoden verhält es sich bei mir sogar anders, als mit den Klassen. Die sind oft recht lang. Hier kommt jetzt z.B. mal eine Methode von mir, die ich letzt schon überarbeitet habe. Davor hatte die Methode sicherlich die dreifache Länge:
EDIT : An dieser Stelle stand eine Methode von mir mit etwa 80 Zeilen Länge. Ich habe sie entfernt, weil eine Diskussion über diese Methode Off-Topic wäre. :p
[ Dieser Beitrag wurde am 18.11.2002 um 04:16 Uhr von Gregor editiert. ]