Hamstar: Codekonventionen für Funktions-klammern

Beitrag lesen

Für mich ist Variante 1 ganz klar die übelste (und populärste).
Für mich ist Variante 1 ganz klar das Optimum. Sie ist populär, somit ist man dran gewöhnt.

Du, man ist auch an die populäre SPD gewöhnt.

Sie nutzt den Platz optimal aus. Ist übersichtlich da zusammengehöriges auch zusammen steht und neue Teile (das elsif und das else) optisch durch eine (Nahezu-)Leerzeile abgetrennt ist.

Aber die Blockbegrenzer (in diesem Fall die geschweiften Klammern) stehen neben einer Bedingung.

Kopieren von Code wird schwieriger.
Das mußt Du mir mal erklären.

Man kann die Blöcke nicht so gut "anfassen".

Es gibt noch ein wichtiges Argument gegen "Variante 1", stellen wir uns einfach mal vor die Blockbegrenzer heissen 'BEGIN' und 'END' (sowas soll es auch geben), dann geht "Variante 1" nämlich gar nicht mehr. D.h. Variante 1 geht nur mit manchen Programmiersprachen, Variante 3 (mit sauber horizontal und vertikal abgesetzten Blockbegrenzern) immer.

Variante 2 ist indiskutabel da man ein if ohne Klammern nicht in der Form schreibt; das heißt dann:  ;-)
print "negative" if $x < 0;

War ja Pseudocode.

Variante 3, Deine präferierte, finde ich suboptimal da sie verschwenderisch mit dem, vertikal zur Verfügung stehenden Platz umgeht und den Leser unnötig früh zum Scrollen zwingt. Zudem fügt sie visuelle Stolperfallen ein, wo keine hingehören. Das >>print "negative";<< gehört nun mal direkt zum "if".

Mag sein, aber "Variante 3" ist die Einfachste, d.h. sie kommt mit den wenigsten Regeln aus. Zudem hat sie mir schon wertvolle Dienste bei der Codebesichtigung geleistet, was ich von "Variante 1" (und fremden Code) nun wirklich nicht sagen kann. Gerade die Leute, die "auf einmal" meinen, dass irgendwas zu irgendwas gehört und dabei neue Regeln aufstellen, haben es mir nicht immer leicht gemacht.

Aber wie schon gesagt: Im wikipedia Artikel der hier im Thread bereits verlinkt ist, ist das alles schön zusammengefßt und diese Diskussion ist eigentlich müßig.

Wichtig ist mir, dass meine Argumente verstanden werden. Was Wikipedia da schreibt, ist sowieso eher lau.

0 92

Codekonventionen für Funktions-klammern

Thomas Schenkeli
  • javascript
  1. 0
    Cybaer
    1. 0
      _roro
      1. 2
        Cybaer
        1. 0
          _roro
          1. 0
            Cheatah
          2. 0

            Emacs und Tabs

            hkl
            • programmiertechnik
            1. 0
              seth
              1. 0

                Tabbing

                hkl
  2. 1
    Der Martin
    1. 2
      Cheatah
      1. 0
        Der Martin
        1. 0
          Cheatah
          1. 0
            Der Martin
            1. 0
              Gunnar Bittersmann
            2. 0
              Cheatah
              1. 0
                Der Martin
            3. 0
              Cybaer
              1. 0
                Hamstar
                1. 1
                  Cybaer
                  1. 0
                    Hamstar
                    1. 0
                      Jörg Lorenz
                    2. 0
                      Cybaer
                      1. 0
                        Hamstar
                        1. 0
                          Cybaer
                          1. 0
                            Hamstar
          2. 0
            Thomas Schenkeli
        2. 0
          Genie
    2. 0
      Maxx
  3. 0
    Bio
    1. 0
      Hamstar
      1. 0
        Bio
        1. 0
          Hamstar
          1. 0
            Bio
            1. 0
              Hamstar
  4. 0
    Hamstar
    1. 0
      Hamstar
      1. 0
        Thomas Schenkeli
        1. 1
          Mathias Brodala
          1. 2

            ECMAScript, Function Declarations

            Tim Tepaße
          2. 0
            Thomas Schenkeli
            1. 0
              Tim Tepaße
        2. 0
          Hamstar
  5. 0
    Tim Tepaße
    1. 0
      Hamstar
      1. 0
        Tim Tepaße
        1. 0
          Hamstar
          1. 0
            Tim Tepaße
            1. 0
              Hamstar
              1. 0
                Hamstar
              2. 0
                Tim Tepaße
                1. 0
                  Hamstar
                  1. 0
                    Tim Tepaße
  6. 0
    Skeeve
    1. 0
      Hamstar
      1. 0
        Skeeve
        1. 0
          Hamstar
          1. 1
            Skeeve
            1. 0
              Hamstar
              1. 0
                Skeeve
                1. 0
                  Hamstar
                  1. 0
                    Skeeve
                    1. 0
                      Hamstar
          2. 0
            Benjamin Buxbaum
            1. 0
              Hamstar
              1. 0
                Benjamin Buxbaum
                1. 0
                  Hamstar
    2. 0
      .nils.
  7. 0
    Struppi
  8. 0
    Jörg Lorenz
    1. 0
      Der Martin
      1. 0
        Jörg Lorenz
        1. 0
          Der Martin
          1. 0
            Jörg Lorenz
            1. 0
              MudGuard
              1. 0
                Jörg Lorenz
                1. 0
                  MudGuard
    2. 0
      Skeeve
      1. 0
        Jörg Lorenz
  9. 0
    seth
  10. 0
    .nils.
  11. 0
    annA
    1. 0
      Hamstar
    2. 0

      hessisch

      seth
      • menschelei
      1. 0
        Struppi
        1. 0
          seth_not@home
          1. 0

            a hesssch Snippet

            hkl
            1. 0
              seth_not@home
              1. 0
                hkl
                1. 0

                  aebblwoi, aebbler, ...

                  seth
          2. 0
            Struppi
      2. 0
        Der Martin