Viennamade: & (PHP): Quelltext mit Tabulator oder Leerzeichen einrücken?

Hallo liebe Forumsgemeinde!

Meine Frage steht ja bereits im "Thema". Warum ich sie stelle: Der folgende PHP-Code ist mit Tabulatoren eingerückt und erzeugt schrecklich unschönen HTML-Quelltext, nämlich sehr viel space zwischen den einzelnen Tags.

if (is_array($trans)) { ?>
 <ol style="list-style-type:lower-alpha">
 <?php foreach ($trans as $x) { ?>
  <li>
   <?php echo $x[0] . ".";?>
   <ol>
   <?php while (list ($key, $val) = each ($x)) { ?>

Ist die korrekte Antwort den Text mit Leerzeichen einzurücken, oder wie macht man das?

Besten Dank
Viennamade

  1. Hi,

    [...] erzeugt schrecklich unschönen HTML-Quelltext, nämlich sehr viel space zwischen den einzelnen Tags.

    was soll wartbar sein: der PHP-Code oder der HTML-Code?

    Ist die korrekte Antwort den Text mit Leerzeichen einzurücken, oder wie macht man das?

    In praktisch allen Styleguides zu praktisch allen Sprachen wird empfohlen, Einrückungen immer mit vier Leerzeichen zu machen.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheatah,

      In praktisch allen Styleguides zu praktisch allen Sprachen wird empfohlen, Einrückungen immer mit vier Leerzeichen zu machen.

      "styleguide"? Was soll das sein?

      WauWau

      --
      ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
      E-Mail WauWau: mailto:selfforum.wauwau@spameater.org
      1. Hallo WauWau!

        In praktisch allen Styleguides zu praktisch allen Sprachen wird empfohlen, Einrückungen immer mit vier Leerzeichen zu machen.

        "styleguide"? Was soll das sein?

        Typographic Conventions

        Beste Grüße
        Viennamade

        1. Hallo Viennamade,

          Hallo WauWau!

          In praktisch allen Styleguides zu praktisch allen Sprachen wird empfohlen, Einrückungen immer mit vier Leerzeichen zu machen.

          "styleguide"? Was soll das sein?
          Typographic Conventions

          ...http://www.google.de/search?q=Typographic+Conventions+styleguide+PHP&sourceid=opera&ie=utf-8&oe=utf-8...!? Wohl kaum...

          WauWau

          --
          ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
          E-Mail WauWau: mailto:selfforum.wauwau@spameater.org
          1. Hallo WauWau!

            In praktisch allen Styleguides zu praktisch allen Sprachen wird empfohlen, Einrückungen immer mit vier Leerzeichen zu machen.
            "styleguide"? Was soll das sein?
            Typographic Conventions

            ...http://www.google.de/search?q=Typographic+Conventions+styleguide+PHP&sourceid=opera&ie=utf-8&oe=utf-8...!? Wohl kaum...

            Doch: http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q=Typographic+Conventions&btnG=Suche&meta=!

            Beste Grüße
            Viennamade

            1. Hallo Viennamade,

              "styleguide"? Was soll das sein?
              Typographic Conventions
              ...http://www.google.de/search?q=Typographic+Conventions+styleguide+PHP&sourceid=opera&ie=utf-8&oe=utf-8...!? Wohl kaum...

              Doch: http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q=Typographic+Conventions&btnG=Suche&meta=!

              dann werde isch misch mal durschlesen ;)

              WauWau

              --
              ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
              E-Mail WauWau: mailto:selfforum.wauwau@spameater.org
          2. Hello,

            Hallo WauWau!

            "styleguide"? Was soll das sein?
            Typographic Conventions

            Wohl kaum...

            Intelligenz ist auch die Fähigkeit, nicht alles wörtlich zu nehmen. Natürlich geht es hier nicht um Kerning und Spacing und Höhen-/Breitenverhältnisse usw.

            Aber Du wolltest bestimmt nur mal wieder Stunk machen und einen WauWauHaufen hinterlassen, oder?

            Wau aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Hallo Tom,

              Intelligenz ist auch die Fähigkeit, nicht alles wörtlich zu nehmen. Natürlich geht es hier nicht um Kerning und Spacing und Höhen-/Breitenverhältnisse usw.

              klar geht es nicht darum. Sofern ich das verstanden habe, geht es hier um die "wohlgeformtheit" von Quelltexten von Programmen, scripten und anderen dingen. Dass man eben anstatt

              if(ein==zwei||drei<vier&&fünf!=sechs){doone+=dotwo;if(three!=four){five==sechs;}else{sieben=acht;}}elseif(zwei==drei){hierstimmtdochnix();}

              if(ein == zwei || drei < vier && fünf != sechs) {
                   doone += dotwo;
                   if(three != four) {
                       five == sechs;
                   } else {
                       sieben = acht;
                   }
               } elseif(zwei == drei) {
                   hierstimmtdochnix();
               }

              schreibt... nicht wahr?

              Aber Du wolltest bestimmt nur mal wieder Stunk machen und einen WauWauHaufen hinterlassen, oder?

              nö, garantiert nicht. Ich frage mich nur, ob der sinn und zweck dieser absurd klingenden ausdrücke da oben etwas mit dem zu tun hat, was ich gerade hier abgetippt habe (tippptippp).

              Wau aus http://www.kelkheim.de[1],

              WauWau

              [1] Scheiß[2] seite, ich weiß ;)
              [2] und noch dümmerere ausdruch, nicht wahr ;-) ?

              --
              ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
              E-Mail WauWau: mailto:selfforum.wauwau@spameater.org
        2. Hello,

          "styleguide"? Was soll das sein?
          Typographic Conventions

          if (is_array($trans))
          {
            ?><ol style="list-style-type:lower-alpha"><?php

          foreach ($trans as $x)
            {
              ?><li><?php
              echo $x[0] . ".";
              ?><ol><?php

          while (list ($key, $val) = each ($x))
              {
                ?>

          Auch wenn im PEAR-Standard die Schreibweise

          while(...) {
                ...
                ...
            }

          befürwortet wird, habe ich hier schon vielen geholfen, ihre Fehler zu finden, in dem ich als erstes ihren Quelltext umformatiert habe.

          ...

          ## bis zum bitteren Ende
            $i = 0;
            while($i < 99)
            {
              ...
              ...
            }

          • Öffendene und schließende Klammer gleicher Priorität gehören auf
              eine gemeinsame Vertikale.
          • Vor jedem Entscheidungs-, Verzweigungs- oder Schleifenblock steht
              eine Leerzeile. Die Initialisierung des Schleifenparameters steht
              nach Möglichkeit direkt vor dem Schleifenblock, anderesnfalls wird
              ein Kommentar auf den Zustand und die Herkunft des Parameters hinweisen.
          • Sequenzen werden zu Sinneinheiten geblockt
          • Vor jedem Block weist ein Kommentar auf den Sinn der Statements hin,
              auch dann, wenn zum Zeitpunkt des Codens "doch alles klar" ist.
          • Jede Variable, Konstante, Funktion die neu eingeführt wird, wird
              mittels Kommentar erläutert. Nutzen, mögliche Übernahmewerte, erwartete
              Rückgabewerte und Typen, ...
          • Keine Zeile wird länger als 75 Zeichen
          • Vor jeder Funktion steht ein optischer Trenner (Kommentar)
              #----------------------------------------------------
          • Vor dem Beginn des Hauptprogramms steht ein optischer Trenner
              #====================================================
              # main
              #====================================================
          • Vor dem Beginn des HTML-Teiles (Am Ende des PHP-Teiles) steht ein
              optischer Trenner
              #####################################################
              # HTML-output
              #####################################################

          na und so weiter.

          So lassen sich Scripte noch lesen und verstehen, auch wenn sie mehrere hundert kByte erreicht haben.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          1. Hallo Tom!
            Herzlichen Dank für Deine Antwort!
            Ich hab jetzt das besprochene Script Deiner Empfehlung folgend umgebaut und der HTML-Quelltext sieht jetzt aus wie ich das wollte.
            Wichtiger ist natürlich die Lesbarkeit des Scripts, hier erkenne ich schon die Vorteile, ein bißchen wird die Umgewöhnung dauern - seit Deinem Beitrag fällt mir das Formatieren schwerer als das scripten :-)

            Beste Grüße
            Viennamade

          2. Hallo Tom,

            "styleguide"? Was soll das sein?
            Typographic Conventions

            if (is_array($trans))
            {
              ?><ol style="list-style-type:lower-alpha"><?php

            foreach ($trans as $x)
              {
                ?><li><?php
                echo $x[0] . ".";
                ?><ol><?php

            while (list ($key, $val) = each ($x))
                {
                  ?>

            jo, das sieht natürlich fürchterlich aus ;-), wenn ich das jetzt mal offen sagen darf ;)

            Auch wenn im PEAR-Standard die Schreibweise

            Was zum teufel ist PEAR?

            • Öffendene und schließende Klammer gleicher Priorität gehören auf
                eine gemeinsame Vertikale.

            sehr oft sieht man sowas

            if(bla) {
            }

            oder war das jetzt dieses PEAR gewesen...!?

            • Vor jedem Entscheidungs-, Verzweigungs- oder Schleifenblock steht
                eine Leerzeile. Die Initialisierung des Schleifenparameters steht
                nach Möglichkeit direkt vor dem Schleifenblock, anderesnfalls wird
                ein Kommentar auf den Zustand und die Herkunft des Parameters hinweisen.

            wo hast du das her?

            • Sequenzen werden zu Sinneinheiten geblockt
            • Vor jedem Block weist ein Kommentar auf den Sinn der Statements hin,
                auch dann, wenn zum Zeitpunkt des Codens "doch alles klar" ist.

            wo sind denn diese strengen regeln her?

            • Jede Variable, Konstante, Funktion die neu eingeführt wird, wird
                mittels Kommentar erläutert. Nutzen, mögliche Übernahmewerte, erwartete
                Rückgabewerte und Typen, ...

            Das würde bei komplexen Programmabläufen zu mehr Kommentaren als Code kommen ;)

            • Keine Zeile wird länger als 75 Zeichen

            lässt sich manchmal kaum verhindern.

            • Vor jeder Funktion steht ein optischer Trenner (Kommentar)
                #----------------------------------------------------

            och nee jetzt, bitte..

            • Vor dem Beginn des Hauptprogramms steht ein optischer Trenner
                #====================================================
                # main
                #====================================================

            pfff..... naja, das macht vielleicht schon mehr sinn....

            • Vor dem Beginn des HTML-Teiles (Am Ende des PHP-Teiles) steht ein
                optischer Trenner
                #####################################################
                # HTML-output
                #####################################################

            aber bitte.... Dann nutze ich lieber einen Syntax-Highlighter ;)

            na und so weiter.

            Quelle?

            So lassen sich Scripte noch lesen und verstehen, auch wenn sie mehrere hundert kByte erreicht haben.

            Es ist imho fraglich, ob sich scripte lesen lassen, wenn sie mit diesen Balken nur so übersäht sind.

            WauWau

            --
            ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
            E-Mail WauWau: mailto:selfforum.wauwau@spameater.org
            1. Hello,

              na, dich würde jeder Projektleiter gleich wieder achtkantig feuern.

              Regeln werden immer von irgendjemand gemacht. Diese hier habe ich festgelegt und wenn mir Leute längere Scripte schicken zur Fehlersuche und haben sich nicht daran gehalten, wird niemand aus unserem Team das Script lesen, geschweige denn Tipps geben.

              Alle, die sich bisher daran gehalten haben, freuen sich über die leichte und einheitliche Lesbareit aller Scripte, auch wenn es vom Kollegen kommt.

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              1. Hallo Tom,

                na, dich würde jeder Projektleiter gleich wieder achtkantig feuern.

                Regeln werden immer von irgendjemand gemacht. Diese hier habe ich festgelegt und wenn mir Leute längere Scripte schicken zur Fehlersuche und haben sich nicht daran gehalten, wird niemand aus unserem Team das Script lesen, geschweige denn Tipps geben.

                Alle, die sich bisher daran gehalten haben, freuen sich über die leichte und einheitliche Lesbareit aller Scripte, auch wenn es vom Kollegen kommt.

                hmm... also ich gebe immer am anfang meiner Dateien eine ausführliche Beschreibung über ihre Aufrufmöglichkeiten (GET/POST...), was sie macht, wo sie mitmacht und was sie dort macht. Ich finde es dann wesentlich übersichtlicher, jede Funktion zu dokumentieren. Folgende Datei ist zwar nicht recht kompliziert, ich konnte sie wegen der Längenbeschränkung aber auch nicht in voller Länge abdrucken:

                START beispiel2.php

                <?php /*                                                     *  *          wauwauWebserver 4 Main Include File        *  *               Aufruf nur über require!              *  *                                                     */

                /* AUFRUF MINIMAL: [text] = Fakultativ  *  <?php  *    require "..../main.php";                       // einbinden  *    $site = new site[(Toplocation, [Sublocation])] // Top-/Sublocation = string, >1  *    [$site->location(Toplocation, [Sublocation])]  // Äquivalent zu initialisation (...) von $site  *    [$site->submenu("TITEL", "TEXT)]               // Eigenes Submenu...  *    [$site->call_submenu(ID)]                      // ...oder Submenu per ID(int) bequem laden  *    [$site->extramenu(INT)]                        // Zusätzlicher text am ende in der pane  *    $site->top(TITEL[, CSS][, SCRIPT]);            // siehe top()  *  ?>  *   TEXT DER SEITE  *  <?php  *    $site->end([NOSOURCECODE?]);                   // wenn NOSOURCECODE TRUE ist, wird kein Link zum  *  ?>                                               // Sourcecode sehen können gegeben.  */

                class site /* Globale Site-Class, muss bei jeder requirenden seite    initialisiert werden    Parameter: - Top-Location (>1) - Sublocation (>1) */ {   var $webserver = array(); // ENV-Vars   var $location = array();  // Lokation ("top", "sub")   var $submenu = array();   // Submenu (string)   var $extramenu = false;   // Extramenu

                var $settings = array(); // Seiteneinstellungen (per Cookie gespeichert)

                function site($top=false, $sub=false) // Konstruktor, Vars siehe Klasseninitialisation (:..)   {     // Initialisation von globalen Umgebungsvariablen (meine schönen ;-)     $this->webserver["server_file"] = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];     $this->webserver["local_file"] = $_SERVER["PATH_TRANSLATED"];     $this->webserver["server"] = 'http://'.$_SERVER["SERVER_NAME"].'/';     $this->webserver["local_root"] = 'e:\homepages\webserver\';     $this->webserver["images"] = $this->webserver["server"].'images/';     $this->webserver["include"] = $this->webserver["local_root"].'librarys\';

                if($top && $sub) // Top/Sub-Vars initialisation       $this->location($top, $sub);

                /* Design-Vars in globale Var $this->settings speichern.        Wurde noch nicht implentiert. Ansonsten:        cookie mit aufbau "elem=wert&elem=wert&elem=wert&..."        wird in $this->settings["elem"] = wert aufgeteilt, elemnte:           - design = mögliche seitendesigns [modern | classic]           - fontsize = Schriftgröße [int]           - search = Searchpane [visible | hidden | expandable]           - tip = Tip of the WauWau [=>search] */     $standart = 'design=modern&fontsize=medium&search=visible&ad=visible&tip=visible';     $settings = (empty($_COOKIES) ? $standart : $_COOKIES["settings"]);     parse_str($settings, $this->settings);

                /* Regeln für Design: Wertigkeit der Einstellungen:        - Standard        - Cookie-Speicherungen        - GET-Sendungen (x-....)        - Einbindene Seiten-einstellungen ($site->my_settings(...);)          NOCH NICHT IMPLENTIERT     */

                if(isset($_GET['x-design'])) $this->settings['design'] = $_GET['x-design'];     if(isset($_GET['x-fontsize'])) $this->settings['fontsize'] = $_GET['x-fontsize'];     if(isset($_GET['x-pane-search'])) $this->settings['search'] = $_GET['x-pane-search'];     if(isset($_GET['x-pane-ad'])) $this->settings['ad'] = $_GET['x-pane-ad'];     if(isset($_GET['x-pane-tip'])) $this->settings['tip'] = $_GET['x-pane-tip'];   }

                function kill($str='') //Beendet sofort die Seite, gibt footer und davor $str aus.   {     print $str;     $this->end();     exit;   }

                function location($top, $sub) // Locationangabe der Seite   {     $this->location[0] = $top;     $this->location[1] = $sub;   }

                function submenu($heading='Undefiniert', $text='<li>Nicht definiert</li>') // Submenü angabe der Seite   {     $this->submenu[0] = $heading;     $this->submenu[1] = trim($text);   }

                function call_submenu($id) // Submenü aus Subemnuspeicherungsdatei auslesen   {     // BTW: evv. XML-basiert machen 8]     include_once($this->webserver["include"] . "menu.php");     $this->submenu = site_navigation_specialmenu($id); // returns array with elements 0 & 1   }

                function extramenu($text) // Eigenes Extramenü/anderer Text in der Pane.   {     $this->extramenu = $text;   }

                function tip_of_the_wauwau($nummer=false) // [INTERNAL] Tip of the Wauwau [nicht von außen aufrufen]   {     $chosentip = ($nummer ? $nummer : (isset($_GET["x-tip"]) ? $_GET["x-tip"] : false));     $datas = file($this->webserver["include"]."tips.txt");     return $datas[($chosentip && isset($datas[$chosentip]) ? $chosentip : mt_rand(0, count($datas)-1))];   }

                /* top:        - title = Seitentitel (<title>)        - style = Zusätzliches CSS (style = "stil" =>> "/css/stil.design.css")        - script = Zusätzlicher Script (script = "script" =>> "/scripts/script.js")   /   function top($title="Nicht angegeben", $style=false, $script=false)   {     echo '<?xml version="1.0" encoding="ISO-8859-1"?>'."\n";     ?>      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">      <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">      <head>        <title>wauwau Webserver :: <?=$title; ?></title>        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />        <link rel="start" href="/" title="Portal (Startseite)" /> ......"projection,tv" />        <link rel="stylesheet" href="/librarys/css/modern.css" type="text/css" title="Modernes Design" media="screen" />      <? if($style) {          /             Wenn keine Endung angegeben ist (.css|.php) wird die CSS-URI per Design zu Rate             gezogen          /          if(!preg_match("/.css|.php/i", $style)) $style .= '.'.$this->settings['design'].'.css';          print '<link rel="stylesheet" href="/librarys/css/'.$style.'" type="text/css" media="all" />'; } ?>        <script type="text/javascript" src="/librarys/scripts/general.js"></script>     <? if($script)          print '<script type="text/javascript" src="/librarys/'.$script.'.js"></script>'; ?>       </head>       <body>       <div id="head">         <div id="banner">wauwau Webserver</div>           <ul id="navigation">             <li id="n1"><a href="/?portal" title="Zum wauwauWebserver Portal">Portal</a>                 <ul>                   <li><a href="/?portal">Portal</a></li> .......           </ul>         <div id="time"><?= date("d.m.Y"); ?></div>       </div>       <div id="pane">       <?php       / Submenu */         if(!empty($this->submenu))         {           print '<div class="menu">';           print '<strong>'.$this->submenu[0].'</strong>';           print '<ul>'.$this->submenu[1].'</ul>';           print '</div>';         }

                /* Extramenu */         print ($this->extramenu ? $this->extramenu : '');

                /* Tip of the wauwau */         if($this->settings["tip"] == "visible" || $this->settings['tip'] == 'expandable')         {           print '<div class="tip" title="Tip of the wauwau">';           print $this->tip_of_the_wauwau();           print '</div>';         }

                if($this->settings['search'] == 'visible' || $this->settings['search'] == 'expandable')         {          ?>           <div class="search">             <strong>Suche</strong> .......           </div>          <?php         }

                print '</div>';         print '<div id="seite">';   }

                function end($no_source=false) // $no_source == true dann kein Link zum Sourcecodeviewn   {     ?></div>     <div id="foot" class="navigation">       <!--          Endnavigation noch zu <ul> machen!!!!       --->       <div id="endnavigation"><b><br />Endnavigation: <br /></b><a ........ Seite:</strong> <var><?php print $this->webserver["server_file"]; ?></var></div>       </div>     </div>     <div> </div>     </body>     </html><?   }

                function print_next($url, $linktext=false, $tooltip=false) // Printet einen Link mit "Weiter"-Pfeil (designspezifisch)   {     print $this->sprint_next($url, $linktext, $tooltip);   }

                function sprint_next($url, $linktext=false, $tooltip=false) // Gibt einen Link mit "Weiter"-Pfeil (designspezifisch) zurück   { // $br not more needed!     return '<div class="next">'.$this->sprint_link($url, $linktext, $tooltip).'</div>';   }

                function print_link($url, $linktext=false, $tooltip=false, $newwin=false) // Printet einen Link   {     print $this->sprint_link($url, $linktext, $tooltip, $newwin);   }

                function sprint_link($url, $linktext=false, $tooltip=false, $newwin=false) // Gibt einen Link zurück   {     return sprintf("<a href="%s"%s%s>%s</a>",         $url,         ($newwin ? " onclick="window.open('$url', 'newwin'); return false;"" : ''),         ($tooltip ? " title="$tooltip"" : ''),         ($linktext ? $linktext : $url));   }

                function print_dictionary($begriff) // Druckt einen WauWauWörterbuch-Link   {     $b = urlencode($begriff);     print '<dfn><a href="/?dictionary='.$b.'" title="" onClick="window.open('/?dictionary='.$b.'', 'DictionaryWindow', 'width=600,height=400,scrollbars=yes,resizable=yes'); return false;">'.$begriff.'</a></dfn>';   }

                // sprint_dictionary fehlt!

                } // end of class

                // EOF

                ?> <<ENDE

                Das nenne ich übersicht. Überall, wo "......" steht, wurde jenachdem viel oder wenig ausgelassen.

                WauWau

                --
                ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:| E-Mail WauWau: mailto:selfforum.wauwau@spameater.org
    2. Hallo Cheatah!

      [...] erzeugt schrecklich unschönen HTML-Quelltext, nämlich sehr viel space zwischen den einzelnen Tags.

      was soll wartbar sein: der PHP-Code oder der HTML-Code?

      Stimmt, ich treibe es mit "Form over Substance" oft zu weit.

      In praktisch allen Styleguides zu praktisch allen Sprachen wird empfohlen, Einrückungen immer mit vier Leerzeichen zu machen.

      Ich hab jetzt ein bißchen getestet mit Leerzeichen anstelle von Tabulatoren. Ist besser so!

      Besten Dank!
      Viennamade

    3. Hi,

      In praktisch allen Styleguides zu praktisch allen Sprachen wird empfohlen, Einrückungen immer mit vier Leerzeichen zu machen.

      4 Leerzeichen habe ich schon immer als schlecht lesbar empfunden.
      Hatte da mal eine Theorie: irgendwer hat das mal willkürlich festgelegt und viele sind gefolgt. Ist wie mit Magen- und Darmgrippe, daran gewöhnt man sich (zwangsweise) auch ;)
      Bei tieferen Verschachtelungen ist der Zusammenhang schwer nachzuvollziehen, sobald ich mal vertikal und horizontal scrollen muss ist ende ^^

      Styleguides machen zwar wirklich Sinn, ich finde aber die gängigen Schreibweisen oft unübersichtlich.

      gruss
      Thorsten

      1. Hi,

        4 Leerzeichen habe ich schon immer als schlecht lesbar empfunden.

        das ist äußerst subjektiv. Ich empfinde mittlerweile jede andere Art der Einrückung als schlecht lesbar.

        Hatte da mal eine Theorie: irgendwer hat das mal willkürlich festgelegt und viele sind gefolgt.

        Natürlich, hier ist jeder Wert ähnlich willkürlich. Allerdings sind vier Leerzeichen genug, um die Ebenen auch über weite Strecken noch zu überblicken, und nicht zu viel, um zu schnell nach rechts zu wandern. Tabulatoren auszuschließen ist jedoch alles andere als willkürlich: deren Breite ist schlicht und ergreifend unbekannt und ergo unvorhersehbar.

        Bei tieferen Verschachtelungen ist der Zusammenhang schwer nachzuvollziehen, sobald ich mal vertikal und horizontal scrollen muss ist ende ^^

        Deswegen sagen die gleichen Styleguides, dass man längere Zeilen umbrechen soll, und geben entsprechende Grenzwerte an. Ich halte mich an 79 Zeichen, im Extremfall (i.e.: wenn ich in einem Umbruch deutliche Nachteile der Lesbarkeit sehe) 132 Zeichen.

        Styleguides machen zwar wirklich Sinn, ich finde aber die gängigen Schreibweisen oft unübersichtlich.

        Wahrscheinlich hast Du sie einfach noch nicht "durchgezogen". Tipp: Programmiere mal in Python, das bedingt eine super Style-Entwicklung.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Tabulatoren auszuschließen ist jedoch alles andere als willkürlich: deren Breite ist schlicht und ergreifend unbekannt und ergo unvorhersehbar.

          Für mich ist das sogar ein Vorteil, denn die physikalische Schrittweite kann in vielen Editoren eingestellt werden. Ich habe z.B. vier als default, kann aber je nach Bedarf mehr oder weniger nehmen (z.B. bei tief verschachtelten XML-Dateien). Das macht in meinen Augen mehr Sinn und ist schneller sowie flexibler als die ewige Leerzeichen-Tipperei. Das ist jedenfalls meine Meinung.

          MfG
          Danny

          1. Hi,

            Tabulatoren auszuschließen ist jedoch alles andere als willkürlich: deren Breite ist schlicht und ergreifend unbekannt und ergo unvorhersehbar.
            Für mich ist das sogar ein Vorteil, denn die physikalische Schrittweite kann in vielen Editoren eingestellt werden. [...]

            bedenke, dass die Einrückungen nicht ausschließlich (bzw. nicht immer) der Ebene-Strukturierung dienen, sondern oft auch der Untereinanderschreibung, z.B. wenn ein einzelner Befehl über mehrere Zeilen geht. Mit Tabulatoren ist die Chance, dies vernünftig hinzubekommen, identisch mit 0; mit Leerzeichen liegt sie so um die 0.7 bis 0.9.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
        2. Hi,

          Natürlich, hier ist jeder Wert ähnlich willkürlich. Allerdings sind vier Leerzeichen genug, um die Ebenen auch über weite Strecken noch zu überblicken, und nicht zu viel, um zu schnell nach rechts zu wandern. Tabulatoren auszuschließen ist jedoch alles andere als willkürlich: deren Breite ist schlicht und ergreifend unbekannt und ergo unvorhersehbar.

          ...und von guten Editoren an den persönlichen Geschmack anpassbar. Unvorhersehbar sind Tabulatoren auch nicht, da man zum programmieren normalerweise eine fixed Font benutzt, d.h. jeder Buchstabe ist gleich breit und somit auch Leerzeichen und Tabulatoren.
          Ich will dir und deinem "Styleguide" nicht zu Nahe treten, aber an solchen Postings erkennt man deutlich, wer keine Ahnung hat. Jeder, der in größeren Teams, Firmen oder an großen Projekten mitgearbeitet hat, weiß, daß man Tabulatoren benutzt, weil sich niemand die Einrückgewohnheiten des Kollegen aufdrängen lassen will. Wenn du immer alleine arbeitest und sich keiner deinen Code antun muß, dann ist es natürlich möglich mit Leerzeichen zu arbeiten, aber bitte informiere dich erstmal, bevor du die Leerzeichen als das einzig ware Einrückinstrument hinstellst.

          Der Tabulator

          1. Hello,

            Der Tabulator

            Da du keinen Namen hast, kann ich ja ruhig sagen: Du bist ein arroganter Spinner. Denn namenlose Anonymous kann man ja nicht beleidigen, oder?

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen