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



  • 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.



  • Viele Firmen setzen ja auch aufgrund der Faulheit bzw. böswillige Nichtbeachtung des firmeninternen Styleguides kleine Automaten zur Sicherung ein. Diese Programme lesen den Code und achten auf bestimmte Stilregeln, die vorher definiert werden. Häufig kommt dann ANT zum Einsatz. Wenn ANT dann auch nur eine Zeile ausspuckt wird der Code nicht akzeptiert. Wie steht ihr dazu? Bringt das etwas oder fühlt ihr euch dabei eurer Freiheit beraubt?

    [ Dieser Beitrag wurde am 18.11.2002 um 09:07 Uhr von CengizS editiert. ]



  • Ich persönlich konnte noch keine Erfahrungen mit so einem Tool sammeln. Kann da leider nicht näher drauf eingehen.
    Vor einem Jahr gab es an der FH mal eine Diplomarbeit, wo ein Student, solch ein Tool entwickelte, bzw. ein bestehendes erweiterte. Da wurde, wenn ich mich richtig erinnere der Code automatisch entsprechend angepasst. In wie weit weiß ich nicht mehr so genau. Mindestens Klammersetzung und Javadocs wurden autom. angepasst.

    Ich glaube aber, ich würde selber die Freiheit bevorzugen, dann könnte ich nämlich immer gleich sehen, "aha! der code ist von mir ;)"

    Naja, im Team wäre eine automatische Codekorrektur bestimmt vorteilhaft...



  • Es muss gar nicht einmal so weit gehen, dass Code automatisch angepasst wird. Ich meinte, dass es viele Softwarefirmen gibt, die zur Qualitätssicherung sich gewisse Regeln definieren und nur Code akzeptieren, der nach diesen Regeln geschrieben worden ist akzeptieren. Sprich: Den Code wieder an den Entwickler zurück geben, wenn dieser nicht Style-Konform ist. Dafür reicht ja, dass das Tool ihm anzeigt. "Böser Entwickler, Dein Code würde von der QA(ssurance) nicht angenommen werden!"

    Ich finde das eine gute Idee um zumindest Code auf der selben Stil-Basis zu erhalten. Die Qualität der Kommentare etc. lässt sich natürlich nicht automatisch beurteilen 🙂


Anmelden zum Antworten