Was ist ein ... aehh ... Styleguide?



  • Original erstellt von Gregor:
    [quote]Original erstellt von Ste.fun:
    [qb]Ich neige dazu Methoden extrem zu verschachteln

    Ich 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 methode 😃

    Hmmm... 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. ]



  • Schlechter Code! Du hast ja keinen einzigen Kommentar. 😡 😡



  • Original erstellt von <BadCode>:
    Schlechter Code! Du hast ja keinen einzigen Kommentar. 😡 😡

    :p



  • [ Dieser Beitrag wurde am 18.11.2002 um 04:13 Uhr von Gregor editiert. ]



  • Original erstellt von Ste.fun:
    Ich auch... unser Moderator macht sowas :p

    Ja, aber auch nicht immer. Meistens geschieht das wenn ich ein Fenster "designe". NetBeans schreibt dann alle Variablen ans Ende und läßt auch leider nicht zu dieses zu ändern. Vielleicht gibts da ja eine Einstellung in Netbeans aber danach habe ich bisher ehrlich gesagt noch nie gesucht 🙂

    Im Prinzip stimme ich aber was Deklarationsort von Variablen betrifft euch zu. Die Variablendeklarationen sollten stets am Anfang stehen. Sowohl von Klassen als auch von Methoden - Ausnahmen bestätigen natürlich wie immer die Regel. Schleifenvariablen deren Wert man später nicht mehr braucht rigoros innerhalb der for-Anweisung bzw. Dummy-Variablen an benötigter Stelle. Höchstens man würde dadurch die Deklaration in einer Schleife haben ... dann schon vorher.


Anmelden zum Antworten