Yadgar: Richtlinien für Code-Layout (Einrückungen etc.)?

High!

An die Hüter der HTML-Orthodoxie: gibt es irgendwo ein oder mehrere Regelwerke für übersichtlichen Programmcode in HTML (und anderen Websprachen)?

Das mit der "Orthodoxie" ist durchaus nicht ironisch oder abwertend gemeint - erstens habe ich eine Schwäche für lange Bärte :-) und zweitens ist mir beim Überarbeiten meiner HTML-Seiten so ziemlich als Erstes klar geworden, wie chaotisch, ineffizient und zum Teil immer noch vor veralteten Elementen (<center> und so Zeugs) strotzend mein Code ist.

Vor allem, um in Zukunft problemlos dateiübergreifend Elemente verändern oder ersetzen zu können, habe ich jetzt angefangen, die Codestruktur der Seiten zu vereinheitlichen; damit der Code übersichtlicher wird, will ich ihn mit Einrückungen gliedern (jeweils entsprechend der Objekthierarchie, wobei ich gegenwärtig noch keinen Unterschied zwischen HTML-Modell und DOM mache).

Gibt es irgendwo in der weiten Webprogrammiererwelt (W3-Konsortium?) Empfehlungen zur Codegestaltung - oder reicht es, wenn ich mir selbst Regeln definiere und die dann konsequent einhalte?

Bis bald im Khyberspace!

Yadgar

  1. Hallo Yadgar,

    Lesetipp: https://forum.selfhtml.org/?t=191883&m=1279855

    An die Hüter der HTML-Orthodoxie: gibt es irgendwo ein oder mehrere Regelwerke für übersichtlichen Programmcode in HTML (und anderen Websprachen)?

    Bei CSS mag ich es, wenn die öffnende Klammer in der gleichen Zeile wie der Selektor (die Selektoren) steht, jede Eigenschaft ihre eigene Zeile hat, einen Tabulatorschritt eingerückt und mit einem Semikolon abgeschlossen ist. Die schließende Klammer steht in einer eigenen Zeile (ohne Einzug). Es ist eine gute Idee, seinen Code zu kommentieren. HTML ist da die Ausnahme, die die Regel bestätigt ...

    Beispiel:

    /*  
        Fehlermeldungen  
    */  
    p.error {  
        color: red;  
        font-weight: bold;  
    }  
    
    

    Verschiedene Leute haben verschiedene Vorstellungen davon, in welcher Reihenfolge Eigenschaften notiert werden sollen und wie Du das ganze gruppierst.

    Freundliche Grüße

    Vinzenz

    1. High!

      Bei CSS mag ich es, wenn die öffnende Klammer in der gleichen Zeile wie der Selektor (die Selektoren) steht, jede Eigenschaft ihre eigene Zeile hat, einen Tabulatorschritt eingerückt und mit einem Semikolon abgeschlossen ist. Die schließende Klammer steht in einer eigenen Zeile (ohne Einzug). Es ist eine gute Idee, seinen Code zu kommentieren. HTML ist da die Ausnahme, die die Regel bestätigt ...

      Beispiel:

      /*

      Fehlermeldungen
      */
      p.error {
          color: red;
          font-weight: bold;
      }

        
      Vernünftige Idee... allerdings würde ich dann die öffnende Klammer an den Beginn der ersten Zeilen unter dem Selektor setzen - in POV-Ray (falls das hier jemand kennt) programmiere ich auch immer so:  
        
      sphere  
      {  
        0, 1  
        scale 90  
        texture  
        {  
          ...  
        }  
      }  
        
      
      > Verschiedene Leute haben verschiedene Vorstellungen davon, in welcher Reihenfolge Eigenschaften notiert werden sollen und wie Du das ganze gruppierst.  
        
      Aha, es gibt also keine dominierenden Stile als de-facto-Norm und auch keine Empfehlungen maßgeblicher Organisationen wie dem W3-Konsortium!  
      Gut zu wissen... dann reicht es ja, wenn ich meine eigenen Projekte konsequent einheitlich code!  
        
      In HTML sieht das zur Zeit bei mir so aus:  
      ~~~html
        
      <html>  
        <head>  
          <title>Titel</title>  
          <meta http-equiv="Content-Type" content="text/html; charset=utf8">  
        </head>  
        <body>  
          <h1>Überschrift</h1>  
          <p>  
            Text  
          </p>  
          <p>  
            Noch mehr<br>  
            Text  
          </p>  
          <p>  
            Hier kommt ein <a href="link.html">Link</a>!  
          </p>  
          <p>  
            Und dieser Textteil wird <span style="color:#ff0000">rot</span>  
            dargestellt .  
          </p>  
          <p>  
             Hier ein Bild:<br>  
             <img src="bild.jpg">  
          </p>  
        </body>  
      </html>  
      
      

      Kurz: Alle blockerzeugenden Elemente sowie grundlegende HTML-Strukturen (<head>, <body>, <html>) enthalten eingerückten Code, nicht aber Passagen innerhalb eines Blocks wie Links oder optisch formatierte <span>-Bereiche.

      Bis bald im Khyberspace!

      Yadgar

      1. Hi,

        Vernünftige Idee... allerdings würde ich dann die öffnende Klammer an den Beginn der ersten Zeilen unter dem Selektor setzen - in POV-Ray (falls das hier jemand kennt) programmiere ich auch immer so:

        ja, ein schrecklicher Code. Wozu diese Platzverschwendung, die den Zusammenhang zwischen der einleitenden Zeile und dem Code-Block schwerer erkennbar macht?

        Ungeachtet dessen: Es ist dringend empfehlenswert, *immer*[1] auf Tabulatorzeichen zu verzichten und statt dessen eine streng definierte Anzahl Leerzeichen zu verwenden. Ich empfehle üblicherweise vier Leerzeichen, da dies ein erfahrungsgemäß sehr guter Kompromiss zwischen zu weiter Einrückung bei vielen Ebenen und zu wenig Unterscheidbarkeit bei längeren Code-Segmenten darstellt.

        Aha, es gibt also keine dominierenden Stile als de-facto-Norm und auch keine Empfehlungen maßgeblicher Organisationen wie dem W3-Konsortium!

        Nein. Es gibt jedoch viele Style-Guides; und die meisten mir bekannten, insbesondere von größeren Firmen, empfehlen u.a. das von Vinzenz[2] und mir Gesagte.

        In HTML sieht das zur Zeit bei mir so aus:

        Gerade bei HTML sind zwei Leerzeichen pro Einrückungsebene meiner Ansicht nach definitiv zu viel. Darüber hinaus empfehle ich XHTML - und wenn es HTML sein soll, dann ohne jede Einschränkung immer, immer und nochmals immer mit ausreichendem DOCTYPE.

        <meta http-equiv="Content-Type" content="text/html; charset=utf8">

        Das Dingen heißt "utf-8", nicht "utf8".

        Noch mehr<br>

        <br>-Elemente sind fast immer ein Zeichen dafür, dass die umliegende Struktur schlecht gewählt ist. Natürlich nur fast.

        Und dieser Textteil wird <span style="color:#ff0000">rot</span>

        Inline-Styles sind zu vermeiden.

        <img src="bild.jpg">

        Das alt-Attribut ist *zwingend* erforderlich.

        Ja, das war nur Beispiel-Code, ist mir klar - aber kein Grund, ihn nicht zu kommentieren ;-)

        Cheatah

        [1] Natürlich außer bei technischer Notwendigkeit wie beispielsweise in make-Files.
        [2] Ich unterstelle mal, dass er mit "Tabulatorschritt" das von mir Beschriebene meinte. Wenn nicht: Pfui, Vinzenz! ;-)

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Hallo,

          Ungeachtet dessen: Es ist dringend empfehlenswert, *immer*[1] auf Tabulatorzeichen zu verzichten und statt dessen eine streng definierte Anzahl Leerzeichen zu verwenden. Ich empfehle üblicherweise vier Leerzeichen, da dies ein erfahrungsgemäß sehr guter Kompromiss zwischen zu weiter Einrückung bei vielen Ebenen und zu wenig Unterscheidbarkeit bei längeren Code-Segmenten darstellt.

          Darf ich fragen weshalb?
          Ein Tabulatorzeichen ermöglicht es jedem, welcher sich den Quelltext ansieht, eine eignende Tiefe von "1x Einrücken" zu definieren.
          Zudem unterstützen viele Programme "Tabs" mit schnelltasten.

          1. Hi,

            Darf ich fragen weshalb?

            sicher, aber die Antwort lieferst Du selbst:

            Ein Tabulatorzeichen ermöglicht es jedem, welcher sich den Quelltext ansieht, eine eignende Tiefe von "1x Einrücken" zu definieren.

            Genau das ist das Problem.

            Zudem unterstützen viele Programme "Tabs" mit schnelltasten.

            Ja, einschließlich der Umwandlung in Leerzeichen. Würde ich nicht missen wollen ;-)

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Darf ich fragen weshalb?
              sicher, aber die Antwort lieferst Du selbst:

              Hab ich befürchtet.

              Ein Tabulatorzeichen ermöglicht es jedem, welcher sich den Quelltext ansieht, eine eignende Tiefe von "1x Einrücken" zu definieren.
              Genau das ist das Problem.

              Ok. Ich sehe jetzt worauf du hinaus willst. Aber ich verstehe den Grund dafür nicht.

              Jedoch ist das ganze wie eine Designfrage auf einer Webseite. Man möchte nicht, das an einem Link target="_blank" steht, damit jeder Benutzter selbst entscheiden kann, ob er ein neues Fenster möchte oder nicht.
              Und wir reden hier zu 80% von "Casual User".

              Im Quellcode reden wir von Leuten, die wenigstens etwas Ahnung[1] von der Materie haben sollten. Und auch in der Lage sein sollten ihren Editor auf die von Ihnen gewünschte Anzahl von Zeichen pro Tab einzustellen.

              Zudem unterstützen viele Programme "Tabs" mit schnelltasten.
              Ja, einschließlich der Umwandlung in Leerzeichen. Würde ich nicht missen wollen ;-)

              Und der automatischen Umwandlung von X Leerzeichen in Tabs.

              1. Hallo,

                Ja, einschließlich der Umwandlung in Leerzeichen. Würde ich nicht missen wollen ;-)
                Und der automatischen Umwandlung von X Leerzeichen in Tabs.

                X > 1 :-)

                Ich bevorzuge übrigens eine Einrücktiefe von vier.

                Freundliche Grüße

                Vinzenz

                1. Und der automatischen Umwandlung von X Leerzeichen in Tabs.
                  X > 1 :-)

                  Naja, im Programm geht eine beliebige Anzahl von Zeichen > 0. Jedoch macht 1 natürlich kaum Sinn.

                  Ich bevorzuge übrigens eine Einrücktiefe von vier.

                  Ebenfalls.

            2. [latex]Mae  govannen![/latex]

              Hi,

              Darf ich fragen weshalb?

              sicher, aber die Antwort lieferst Du selbst:

              Ein Tabulatorzeichen ermöglicht es jedem, welcher sich den Quelltext ansieht, eine eignende Tiefe von "1x Einrücken" zu definieren.

              Genau das ist das Problem.

              Ganz im Gegenteil. A und B entwickeln zusammen ein Programm. A bevorzugt eine Einrückung von X, B arbeitet lieber mit Y. Benutzen  beide konsequent Tabulatoren, ist es kein Thema: Jeder hat seinen Editor entsprechend eingestellt, die Datei wird sofort wie gewünscht dargestellt. Nicht so bei Leerzeichen. Außerdem sind Änderungen an der Einrücktiefe einfacher durch 1x Tab oder Backspace
              zu erreichen, bei Leerzeichen muß man mitzählen, falls der Editor dies nicht automatisiert. Außerdem: Bei Zusammenführung aus mehrerne Quell(datei)en mit unterschiedlicher Einrückung per Leerzeichen ist das Chaos komplett.

              Cü,

              Kai

              --
              A workaround for an avoidable problem often adds clutter and overhead to the program which
              could have been avoided by not creating the problem in the first place.(Garrett Smith/clj)
              Foren-Stylesheet Site Selfzeug JS-Lookup
              SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
              1. Hallo,

                Ein Tabulatorzeichen ermöglicht es jedem, welcher sich den Quelltext ansieht, eine eignende Tiefe von "1x Einrücken" zu definieren.
                Genau das ist das Problem.
                Ganz im Gegenteil. A und B entwickeln zusammen ein Programm. A bevorzugt eine Einrückung von X, B arbeitet lieber mit Y. Benutzen  beide konsequent Tabulatoren, ist es kein Thema: Jeder hat seinen Editor entsprechend eingestellt, die Datei wird sofort wie gewünscht dargestellt.

                diese heile Welt bricht aber sofort zusammen, wenn Tabulatoren auch innerhalb einer Zeile benutzt werden, und nicht nur am Zeilenanfang.
                Nehmen wir ein extremes Beispiel: A mag eine Tab-Weite von 3, B hat gern 8. Nun schreibt A seinen Code, den er auch schön kommentiert. Das Tabulatorzeichen sei hier durch das Dreieck dargestellt:

                ►  code-code-code-code► ►  comment
                ►  code code►  ►  ►  ►  ►  comment

                Nun kriegt B diesen Code in die Finger und lädt ihn in seinem Editor, der auf Tab-Weite 6 eingestellt ist. Und dann sieht das so aus:

                ►     code-code-code-code►    ►     comment
                ►     code code►  ►     ►     ►     ►     comment

                Wie man sieht, rutscht die Formatierung auseinander, alle Ordnung ist dahin.

                Nicht so bei Leerzeichen.

                Genau. Da sieht B den Code so, wie A ihn formatiert hat. Das ist zwar dann nicht seine bevorzugte Darstellung, aber wenigstens ein konsistentes Layout.

                So long,
                 Martin

                --
                Lebensmotto der Egoisten:
                Was ist so schlimm daran, dass jeder nur an sich selbst denkt? Dann ist doch an alle gedacht!
                1. [latex]Mae  govannen![/latex]

                  Ganz im Gegenteil. A und B entwickeln zusammen ein Programm. A bevorzugt eine Einrückung von X, B arbeitet lieber mit Y. Benutzen  beide konsequent Tabulatoren, ist es kein Thema: Jeder hat seinen Editor entsprechend eingestellt, die Datei wird sofort wie gewünscht dargestellt.

                  diese heile Welt bricht aber sofort zusammen, wenn Tabulatoren auch innerhalb einer Zeile benutzt werden, und nicht nur am Zeilenanfang.

                  Sowas macht man™ ja auch nicht.

                  Wie man sieht, rutscht die Formatierung auseinander, alle Ordnung ist dahin.

                  Nicht so bei Leerzeichen.

                  Genau. Da sieht B den Code so, wie A ihn formatiert hat. Das ist zwar dann nicht seine bevorzugte Darstellung, aber wenigstens ein konsistentes Layout.

                  Dennoch ist eine Vereinbarung, Tabulatoren nur am Anfang der Zeile zu nutzen, wesentlich weniger restriktiv als eine Vorgabe
                  der Leerzeichen. Und die Produktivität wird ebenfalls gesenkt. Ich jedenfalls würde wesentlich weniger gerne mit einem Code arbeiten müssen, der mir "falsch" vorkommt (und den ich wegen ungewohnter Einrückung wesentlich schlechter überblicken kann, hin bis zur falschen Interpretation von Blöcken, weil man den Code "wie gewohnt" betrachtet) als mir die eine Regel zu merken: „Keine Tabs hinter irgendwelchem Code“.

                  Cü,

                  Kai

                  --
                  A workaround for an avoidable problem often adds clutter and overhead to the program which
                  could have been avoided by not creating the problem in the first place.(Garrett Smith/clj)
                  Foren-Stylesheet Site Selfzeug JS-Lookup
                  SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
                  1. Ich jedenfalls würde wesentlich weniger gerne mit einem Code arbeiten müssen, der mir "falsch" vorkommt (und den ich wegen ungewohnter Einrückung wesentlich schlechter überblicken kann, hin bis zur falschen Interpretation von Blöcken, weil man den Code "wie gewohnt" betrachtet) als mir die eine Regel zu merken: „Keine Tabs hinter irgendwelchem Code“.

                    Wenn der Mitarbeiter seinen Editor nicht beherrscht, brauch ich mich um die Frage Tabs oder Leerzeichen gar nicht erst zu kümmern. Er bekommt, was er verdient.

                    mfg Beat

                    --
                    ><o(((°>           ><o(((°>
                       <°)))o><                     ><o(((°>o
                    Der Valigator leibt diese Fische
                    1. Hallo :)

                      Wenn der Mitarbeiter seinen Editor nicht beherrscht, brauch ich mich um die Frage Tabs oder Leerzeichen gar nicht erst zu kümmern. Er bekommt, was er verdient.

                      WYCIWYE ?

                      mfg
                      cygnus

                      --
                      Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
                      1. Hi,

                        Wenn der Mitarbeiter seinen Editor nicht beherrscht, brauch ich mich um die Frage Tabs oder Leerzeichen gar nicht erst zu kümmern. Er bekommt, was er verdient.

                        WYCIWYE ?

                        WYGIWYD

                        MfG ChrisB

                        --
                        Light travels faster than sound - that's why most people appear bright until you hear them speak.
              2. Hi,

                Ganz im Gegenteil. A und B entwickeln zusammen ein Programm. A bevorzugt eine Einrückung von X, B arbeitet lieber mit Y. Benutzen  beide konsequent Tabulatoren, ist es kein Thema:

                dummerweise klappt das aber in der Praxis nicht. Nur ein einziger Umstand, in dem Tabulatorzeichen nicht nutzbar sind - und davon gibt es genug - und schon zerbricht das System. Umgekehrt zerbricht es nicht, sondern funktioniert einfach. Und damit weder A noch B weit von ihrer bevorzugten Einrückung entfernt sind, gibt es einen definierten Kompromiss, der sich als gut herausgestellt hat.

                Außerdem sind Änderungen an der Einrücktiefe einfacher durch 1x Tab oder Backspace

                Die meisten mir bekannten Editoren sind auch bei Umwandlung von Tabs in Leerzeichen in beide Richtungen sehr leicht zu bedienen. Bei manchen kann man sogar keinen Unterschied zwischen Tabs oder Leerzeichen erkennen, sofern man sie sich nicht explizit darstellen lässt.

                Außerdem: Bei Zusammenführung aus mehrerne Quell(datei)en mit unterschiedlicher Einrückung per Leerzeichen ist das Chaos komplett.

                Deswegen ist ja ein fester Wert definiert.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. @@Cheatah:

                  nuqneH

                  dummerweise klappt das aber in der Praxis nicht.

                  „Klappt nicht“ klappt nicht. ;-)

                  Nur ein einziger Umstand, in dem Tabulatorzeichen nicht nutzbar sind - und davon gibt es genug - und schon zerbricht das System.

                  Nur ein einziger Umstand, in dem Multibyte-Zeichencodierungen nicht nutzbar sind - und davon gibt es genug - und schon zerbricht das System.

                  Würdest du das so stehen lassen und von der Verwendung von UTF-8 abraten? Oder doch eher alle Umstände, die dem im Wege stehen könnten, eliminieren?

                  Warum dann nicht auch bei Tabulatorzeichen zur Einrückung?

                  Umgekehrt zerbricht es nicht, sondern funktioniert einfach. Und damit weder A noch B weit von ihrer bevorzugten Einrückung entfernt sind, gibt es einen definierten Kompromiss, der sich als gut herausgestellt hat.

                  Leerzeichen sind Coding-Style bei mir in der Firma, und für mich stellen sie sich alles andere als gut heraus. Und mir geht es dabei nicht um die visuelle Darstellung im Editor, sondern um die generelle Handhabung.

                  Deswegen ist ja ein fester Wert definiert.

                  Ein Tabulatorzeichen (je Verschachtelungstiefe) ist auch ein fester Wert. IMHO ein äußerst sinnvoller.

                  Qapla'

                  --
                  Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
                2. Natya!

                  Ganz im Gegenteil. A und B entwickeln zusammen ein Programm. A bevorzugt eine Einrückung von X, B arbeitet lieber mit Y. Benutzen  beide konsequent Tabulatoren, ist es kein Thema:

                  dummerweise klappt das aber in der Praxis nicht.

                  Hö? In jeder Firma, in der ich bisher gearbeitet habe, wurden Tabs verwendet – gab nie Probleme. Ich hatte allerdings schon mit einigen Dateien von Fremdfirmen zu tun, in denen Leerzeichen verwendet wurden, und die waren _alle_ schon völlig durcheinander, als sie bei mir ankamen.

                  Nur ein einziger Umstand, in dem Tabulatorzeichen nicht nutzbar sind - und davon gibt es genug -

                  Wo denn? Jede Zeichencodierung und jede Tastatur unterstützen den Tab. Nur wenn die Tab-Taste ausschließlich zur Navigation verwendet würde, wäre das umständlich, aber das ist in keinem mir bekannten Texteditor und in keiner mir bekannten IDE der Fall.

                  Viele Grüße vom Længlich

                  --
                  Mein aktueller Gruß ist:
                  Kikuyu (gesprochen in Kenya)
            3. Hallo,

              Darf ich fragen weshalb?

              sicher, aber die Antwort lieferst Du selbst:

              Ein Tabulatorzeichen ermöglicht es jedem, welcher sich den Quelltext ansieht, eine eignende Tiefe von "1x Einrücken" zu definieren.

              Genau das ist das Problem.

              Genau das ist der riesen vorteil!
              Bist du mit 3 leerzeichen der glückliste Programmierer aller Zeiten: Stellst deinen Editor/IDE so ein, dass er Tabs mit der Länge von 3 Leerzeichen darstellt.
              Machen dich hingegen nur 6 Leerzeichen seelig: bitte sehr, stellst es so ein.

              Tabs erlauben eine _leicht_ einzuhaltende Konvention mit freier individuellen Betrachtungsweise.

              Zudem unterstützen viele Programme "Tabs" mit schnelltasten.
              Ja, einschließlich der Umwandlung in Leerzeichen. Würde ich nicht missen wollen ;-)

              Verbrennt sie!!!11

              Grüße
              Thomas

        2. High!

          ja, ein schrecklicher Code.
          dringend empfehlenswert,
          definitiv zu viel.
          Das Dingen heißt "utf-8", nicht "utf8".
          <br>-Elemente sind fast immer ein Zeichen dafür, dass die umliegende Struktur schlecht gewählt ist.
          Inline-Styles sind zu vermeiden.
          Das alt-Attribut ist *zwingend* erforderlich.
          Ja, das war nur Beispiel-Code, ist mir klar - aber kein Grund, ihn nicht zu kommentieren ;-)

          Wie lang ist dein Bart? ;-)

          Bis bald im Khyberspace!

          Yadgar

        3. @@Cheatah:

          nuqneH

          ja, ein schrecklicher Code. Wozu diese Platzverschwendung, die den Zusammenhang zwischen der einleitenden Zeile und dem Code-Block schwerer erkennbar macht?

          Ungeachtet dessen: Es ist dringend empfehlenswert, *immer*[1] auf Tabulatorzeichen zu verzichten und statt dessen eine streng definierte Anzahl Leerzeichen zu verwenden.

          Angesichts deiner vielen Postings, die “right on the money” sind,  auf hohem Niveau humorvoll sind oder gar beides vereinen, sei es dir vergönnt, auch mal Unsinn von dir zu geben. Aber musst du davon gleich zweimal in einem Posting Gebrauch machen?

          Ich halte Allman-Style nicht für Platzverschwendung, sondern „Luft trägt“.

          Und für Einrückungen sind Tabulatoren prädestiniert, nicht multiple Leerzeichen. Für letztere gilt das von Terry Pratchett über multiple Ausrufezeichen Gesagte.

          Déjà-vu. (Was für ein Albtraum.)

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. Hallo,

            Ich halte Allman-Style nicht für Platzverschwendung, sondern „Luft trägt“.

            Approval.

            Das war's schon, luti

        4. Hallo,

          Ungeachtet dessen: Es ist dringend empfehlenswert, *immer*[1] auf Tabulatorzeichen zu verzichten und statt dessen eine streng definierte Anzahl Leerzeichen zu verwenden.

          Ich könnte Leerzeichensetzer unter einer Anzahl ihrer gesetzen Leerzeichen entsprechende Menge an Sandkörner fröhlich 'niedercoden'. ;-)

          Nichts, aber auch nichts ist leichter zu Übersehen als ein einzelnes Leerzeichen und spätestens 20 Zeilen später, ist es vorbei mit der korrekten Einrückung. Zudem sind Einrückungs-Leerzeichen oft nicht von normalen Leerzeichen zu unterscheiden.

          Daher finde ich (etwas spitz und umformuliert (inkl. ironie)):

          Es ist dringend empfehlenswert, *immer*[1] auf Programmierer zu verzichten, die die Tabulatorreichweite ihres Editors nicht einstellen können und statt dessen eine streng definierte Anzahl Jobanzeigen aufzugeben.

          Alternative Umformulierung:
          Es ist dringend empfehlenswert, immer auf Editoren/IDEs zu verzichten, bei denen die Tabulatorreichweite nicht eingestellt werden kann und statt dessen eine streng definierte Vorgabe an vernünftigen Werkzeugen durchzusetzen.

          [1] Natürlich außer bei technischer Notwendigkeit wie beispielsweise bei Kaffeekochen, Rohrbruch, Erdbeben und jüngster Tag.

          Grüße
          Thomas

          1. Es ist dringend empfehlenswert, *immer*[1] auf Programmierer zu verzichten, die die Tabulatorreichweite ihres Editors nicht einstellen können und statt dessen eine streng definierte Anzahl Jobanzeigen aufzugeben.

            Es ist dringend empfehlenswert, seine Arbeitsstelle mit einem guten Editor zu betreten, der es allen Terroristen recht machen kann.

            Schliesslich gilt noch zu unterscheiden, dass der Code, den man abliefert, ein anderer ist, als der Code, an welchem man aktuell arbeitet.

            Alternative Umformulierung:
            Es ist dringend empfehlenswert, immer auf Editoren/IDEs zu verzichten, bei denen die Tabulatorreichweite nicht eingestellt werden kann und statt dessen eine streng definierte Vorgabe an vernünftigen Werkzeugen durchzusetzen.

            Wer weiss, vielleicht lassen Cheatahs grosse Firmen ja mit TinyMCE in einem Webformular coden, natürlich auf MSIE6 ;)

            Alternativer Testfall:
            Man code an einer Braille-Zeile, oder Screenreader.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
          2. Hi,

            Daher finde ich (etwas spitz und umformuliert (inkl. ironie)):

            die spitze Umformulierung ist trotz Ironie ein starkes Indiz dafür, dass Deine Codes eher selten die Zusammenarbeit mit mehreren, teilweise Dutzenden anderer Entwickler finden. Allerspätestens dann ist nämlich ein Styleguide, der Tabulatorzeichen außer bei technischer Notwendigkeit strikt verbietet, absolut unumgänglich.

            Es ist dringend empfehlenswert, *immer*[1] auf Programmierer zu verzichten, die die Tabulatorreichweite ihres Editors nicht einstellen können und statt dessen eine streng definierte Anzahl Jobanzeigen aufzugeben.

            Und die seit Jahren im Haus verwendeten (und teilweise von diversen Vorständen befohlenen) on- und offline-Tools gleich mit auszutauschen. Sorry, Thomas, aber in die mit "Du hast Ahnung" titulierte Checkbox mag ich hier bei Dir nicht gerade ein Häkchen setzen.

            Es ist dringend empfehlenswert, immer auf Editoren/IDEs zu verzichten, bei denen die Tabulatorreichweite nicht eingestellt werden kann und statt dessen eine streng definierte Vorgabe an vernünftigen Werkzeugen durchzusetzen.

            Gerne. Programmier bitte gleich die Browser um, so dass die Tabulatortaste in Eingabefeldern ein Tabulatorzeichen hinterlässt.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hallo,

              Daher finde ich (etwas spitz und umformuliert (inkl. ironie)):

              die spitze Umformulierung ist trotz Ironie ein starkes Indiz dafür, dass Deine Codes eher selten die Zusammenarbeit mit mehreren, teilweise Dutzenden anderer Entwickler finden. Allerspätestens dann ist nämlich ein Styleguide, der Tabulatorzeichen außer bei technischer Notwendigkeit strikt verbietet, absolut unumgänglich.

              Komisch. Egal wo ich bisher gearbeitet habe, waren die Leerzeichen durch ebendiese Code-Guides untersagt. Alle hatten die gleichen Werkzeuge zu verwenden. Bei einem Projekt wo es teil- und zeitweise über hundert  Programmierer zusammen an den Gesamtcode gearbeitet haben wurden im Vornhinein die Werzeuge festgelget und dort wo es sie nicht gab eingekauft.
              Aber andere Coder andere Sitten.

              Und die seit Jahren im Haus verwendeten (und teilweise von diversen Vorständen befohlenen) on- und offline-Tools gleich mit auszutauschen.

              Sorry, Thomas, aber in die mit "Du hast Ahnung" titulierte Checkbox mag ich hier bei Dir nicht gerade ein Häkchen setzen.

              Ich gebe zu, dass ich von Vorstand-Sein nicht viel Ahnung habe (wenn man jetzt von unserem kleinen Verein hier absieht *g*), aber bisher ist es so, dass wir unsere Wekrzeuge bennenen und nicht der Vorstand. Niemand erwartet bei uns vom Vorstand, dass sie sich mit unseren Arbeitswerkzeugen auskennt und mit ihnen up-to-date ist, aber wir erwarten, dass sie bei der Wahl unseres täglichen Arbeitmittels auf uns hören.

              Gerne. Programmier bitte gleich die Browser um, so dass die Tabulatortaste in Eingabefeldern ein Tabulatorzeichen hinterlässt.

              Seit wann progammierst du im Browser?

              Grüße
              Thomas

      2. @@Yadgar:

        nuqneH

        <h1>Überschrift</h1>
            <p>
              Text
            </p>

        Worin siehst du den Unterschied zwischen den Elementtypen 'h1' und 'p', die unterschiedliche Codeformatierungen rechtfertigen?

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        1. <h1>Überschrift</h1>
              <p>
                Text
              </p>

          Worin siehst du den Unterschied zwischen den Elementtypen 'h1' und 'p', die unterschiedliche Codeformatierungen rechtfertigen?

          Wenn du von Hand grösseren Text codest, möchtest du das Endtag von p sehen, weil ein Absatz länger sein kann.
          Überschriften sind in der Regel kurz.

          Formatierung ist kein Selbstzweck. Sie ist eine Hilfe für den Autoren.

          mfg Beat

          --
          ><o(((°>           ><o(((°>
             <°)))o><                     ><o(((°>o
          Der Valigator leibt diese Fische
        2. Hallo,

          <h1>Überschrift</h1>
              <p>
                Text
              </p>

          Worin siehst du den Unterschied zwischen den Elementtypen 'h1' und 'p', die unterschiedliche Codeformatierungen rechtfertigen?

          darin, dass Überschriften in der Regel kurz, meistens einzeilig sind, während ein Textabsatz üblicherweise etwas länger ist.

          <p>Ich schreibe den Inhalt eines p-Elements zwar auch nicht eingerückt und auch nicht mit Zeilenumbrüchen (und somit Whitespaces) abgeteilt, könnte mir aber vorstellen, dass der erwähnte Unterschied der Grund für die unterschiedliche Notation ist.</p>

          Ciao,
           Martin

          --
          Ein Snob ist ein Mensch, der sich auf ein Stachelschwein setzt, ohne eine Miene zu verziehen - nur weil ihm jemand gesagt hat, das sei ein Designersessel.
      3. Hallo,

        Aha, es gibt also keine dominierenden Stile als de-facto-Norm und auch keine Empfehlungen maßgeblicher Organisationen wie dem W3-Konsortium!
        Gut zu wissen... dann reicht es ja, wenn ich meine eigenen Projekte konsequent einheitlich code!

        Bei einer so allgemeinen Frage wie deine jetzt: doch gibt es. Kommt immer darauf was was du möchtest:
        für PHP wurde schon weiter oben was verlinkt
        für Java gibts die Code Conventions for the Java Programming Language
        Für andere Sprachen gibts dann wiederum andere Empfehlungen.

        Für HTML gibt's keine solche offizielle Empfehlungen für Codegestalung, lediglich für XHTML gibt es vom W3C einige empfehlungen: http://www.w3.org/TR/xhtml1/#guidelines

        Grüße
        Thomas

    2. Bei CSS mag ich es, wenn die öffnende Klammer in der gleichen Zeile wie der Selektor (die Selektoren) steht, jede Eigenschaft ihre eigene Zeile hat,

      Mein Editor findet das sch... Er mag Folding.

      somelement,
      .someclass,
      #someid
        { Liste sortiert nach Wichtigkeit
          Blcockeigenschaften zuerst
          text und fonteigenschaften zuletzt
        }

      Verschiedene Leute haben verschiedene Vorstellungen davon, in welcher Reihenfolge Eigenschaften notiert werden sollen und wie Du das ganze gruppierst.

      Elemente
      Klassen
      IDs

      MSIE Abarten im gleichen Dokument

      mfg Beat

      --
      ><o(((°>           ><o(((°>
         <°)))o><                     ><o(((°>o
      Der Valigator leibt diese Fische
  2. Hi,

    nun...nachdem ich die Comments gelesen habe, stimme ich im überigen mit Vinzenz und Yaagdar überein. Dennoch musst du berücksichtigen, dass jedes Leerzeichen (hierzu gehören auch Einrückungen) zu einem höheren Traffic führen! Ich lege mir immer zwei Dokumente an. Eine mit Einrückung (für die Entwicklung) und eine ohne (für den Output). Mit diversen Tools (Plugins)
    kannst du deinen HTML-Code (auch den ohne Einrückungen) trotzdem hierarchisch
    anzeigen lassen! Ich hoffe mein Post war nicht überflüssig!

    VG

    cro$$

    1. Hi,

      Dennoch musst du berücksichtigen, dass jedes Leerzeichen (hierzu gehören auch Einrückungen) zu einem höheren Traffic führen!

      jupp. Durch mod_compress ein üblicherweise ähnlich fatales Problem, wie es ein mittelgroßer Eiswürfel für die Wüste darstellt.

      Ich lege mir immer zwei Dokumente an. Eine mit Einrückung (für die Entwicklung) und eine ohne (für den Output).

      Wenn ich tatsächlich den Code ohne Leerzeichen brauche (bzw. üblicherweise ohne Kommentare), dann lasse ich ihn mir entsprechend generieren. Das reduziert Fehler bei der Code-Übernahme ins andere Dokument.

      Ich hoffe mein Post war nicht überflüssig!

      Nein, aber vielleicht war es die Anzahl der verwendeten Ausrufezeichen, besonders wenn man ihr die Menge der Ausrufe gegenüber stellt.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
  3. oder reicht es, wenn ich mir selbst Regeln definiere und die dann konsequent einhalte?

    Wenn du nicht verstehst, warum eine Regel existiert, gibt es auch keinen Grund eine solche einzuhalten, denn du hältst sie sicher im falschen Kontext ein.

    Validität eines Dokuments ist kein Selbstzweck. Sonden sie fördert die maximale Verständlichkeit deines Textes und beugt damit Fehlinterpretationen vor.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  4. Hallo,

    http://framework.zend.com/manual/de/coding-standard.html

    "Dieses Dokument bietet Richtlinien für die Formatierung von Code und Dokumentation für Individuen und Teams die im Zend Framework mitarbeiten. Viele Entwickler die den Zend Framework verwenden haben diese Code Standards als nützlich empfunden weil Ihr Code Stil mit jedem Zend Framework Code konsistent bleibt. Es ist auch anzumerken das es signifikant viel Arbeit erfordert einen kompletten Coding Standard zu definieren. "

    Gruß

    jobo

  5. Hi!

    Diskussionen über Coding Style gibt es zur Genüge, auch hier im Archiv. Allen ist gemeinsam, dass sie die Frage nach dem richtigen Style nicht klären können, weil eigentlich immer jede Partei nachvollziehbare Argumente für ihre Position bringen kann. Und so wird auch diese Diskussion lang werden und ergebnisoffen bleiben.

    Lo!

    1. Hallo,

      wobei es ja nicht nur um die Einrückung geht. Private Variablen und Funktionen in PHP zB. mit _ beginnen zu lassen, Camelcase statt Underlinetrennung, was groß was klein schreiben. Ich denke, man tut gut daran, sich einem etablierten Stil anzuschließen, und den dann konsequent beizubehalten.

      Gruß

      jobo

      1. Hallo!

        wobei es ja nicht nur um die Einrückung geht.

        Private Variablen und Funktionen in PHP zB. mit _ beginnen zu lassen,

        Es ist nicht (mehr) angesagt, private Member und Methoden mit dem doppelten'__' und protected Member und Methoden mit dem einfachen '_' Underscore beginnen zu lassen.

        Camelcase statt Underlinetrennung,

        Das ist Geschmacksache: ich persönlich präferiere camelCase, aber gerade bei PHP ist es so, dass häufig ein Wildwuchs an Methoden- und Funktionsbezeichnungen zusammen benutzt werden - was schrecklich ist keine Frage!
        So ist z.B so etwas:

          
          $myCar = new CarType($auto_vehicle, $taxType, $int_nom_Prize )  
        
        

        nicht selten. Tatsache ist, dass die PHP eigenen Funktionen nun einmal so aussehen:

          
        is_ array(..);  
        is_ bool(..);  
        array_keys(..);  
        array_map(..) ;  
        str_replace(..);  
        
        

        oder so:

          
        isset(..);  
        unserialize(..);  
        getimagesize(..);  
        
        

        was groß was klein schreiben. Ich denke, man tut gut daran, sich einem etablierten Stil anzuschließen, und den dann konsequent beizubehalten.

        Ja, sicher. Was machst Du, wenn Du als Coder in ein Programmier-Team eintrittst, welches sich seit Jahren befleißigt, alle Coding-Standards auf dieser Welt und mehr zusammen anzuwenden?
        Was ist mit der Benutzung (guter und etablierter) Frameworks, die einen anderen Coding-Standard, als den von Dir bevorzugten nutzen?
        Alles umschreiben (lassen) wirst Du nicht ernsthaft in Erwägung ziehen, oder?

        Schön ist die Theorie, grausam die Praxis!

        • nur meine zwo Doppelpfennige -

        Ciao

        GG

        --
        "If I do not seek to understand what is happening here
        - then I've got peanuts in my head!"
        (I. Hosein)
        1. Hallo,

          Zendframework macht $_privateVar, das bringt aus meiner Sicht sehr viel. Keinen unterschied aber zu $_protectedVar oder $this->_protectedFunction()

          Das ist Geschmacksache: ich persönlich präferiere camelCase, aber gerade bei PHP ist es so, dass häufig ein Wildwuchs an Methoden- und Funktionsbezeichnungen zusammen benutzt werden - was schrecklich ist keine Frage!

          Ja, sicher. Was machst Du, wenn Du als Coder in ein Programmier-Team eintrittst, welches sich seit Jahren befleißigt, alle Coding-Standards auf dieser Welt und mehr zusammen anzuwenden?

          Ihnen vielleicht den Link auf die Seite des Zendframework zeigen und diesen hier http://php-coding-standard.de/mhtml/sinn_zweck.html

          Was ist mit der Benutzung (guter und etablierter) Frameworks, die einen anderen Coding-Standard, als den von Dir bevorzugten nutzen?
          Alles umschreiben (lassen) wirst Du nicht ernsthaft in Erwägung ziehen, oder?

          Naja: http://www.refactoring.com/

          Gruß

          jobo

          1. Hallo!

            Ja, sicher. Was machst Du, wenn Du als Coder in ein Programmier-Team eintrittst, welches sich seit Jahren befleißigt, alle Coding-Standards auf dieser Welt und mehr zusammen anzuwenden?

            Ihnen vielleicht den Link auf die Seite des Zendframework zeigen und diesen hier http://php-coding-standard.de/mhtml/sinn_zweck.html

            Das kenne ich schon, danke!
            Du scheinst mir etwas weltfremd - darf ich mal fragen, in welchen größeren Teams Du schon gearbeitet hast? Wenn ein Team seit Jahren einen Coding-Standard XY benutzt, dann wirst Du es nicht davon überzeugen einen anderen zu benutzen. Wozu auch?

            Was ist mit der Benutzung (guter und etablierter) Frameworks, die einen anderen Coding-Standard, als den von Dir bevorzugten nutzen?
            Alles umschreiben (lassen) wirst Du nicht ernsthaft in Erwägung ziehen, oder?

            Naja: http://www.refactoring.com/

            Ja, klar! Was bringt google sonst noch zum Thema?

            Ciao

            GG

            --
            "If I do not seek to understand what is happening here
            - then I've got peanuts in my head!"
            (I. Hosein)