fischlak: Große JS-Dateien

Beitrag lesen

Hallo Rolf,

Fischlaks Folding-Technik

Ich meins ja nicht schlecht. Mir geht es darum, meine Fehlerquote zu reduzieren. Und meine Fehlerquote war recht hoch beim Coden. Und ich weiß von anderen, dass es denen nicht besser ergeht.

Mir geht es darum, unnötige mentale Last zu reduzieren. Ich möchte nicht wissen, wieviele Fehler gerade deshalb entstehen, weil wir beim Auffassen von Codezeilen mental schnell überfordert sind, besonders bei größerer semantischer Kompression.

Und erst recht Anfänger: Anfänger legen über 90% ihrer Zeit nur für Debugging und Fehlersuche hin und nicht für das Coden selbst. Und sowas soll Spaß nachen?

Vielleicht ist Dir der Begriff Chunking bekannt? Aktuell geht man davon aus, dass die Kapazität des Kurzzeitgedächtnisses bei 3 bis 4 Chunks liegt. Und selbst Gedächnis-Genies werden nie auf allerhöchstens 9 Chunks kommen.

Durch den eingeklappten Folding-Status reduziere ich die Anzahl der Chunks, die mir der Screen anzeigt, um mindestens 1. Und das ist sehr viel, wenn ich von einem Auffassungsvermögen von 4 Chunks ausgehe.

Hier mal ein aktuelles Beispiel, woran ich jetzt gerade sitze und was ich zuletzt geschrieben habe:. Jetzt sag mir mal bitte ganz objektiv, was daran verkehrt sein soll:

...Code

(function decodeText() { /* Textinhalt decoden */
    // Quotes
    textContent = textContent.replace(/^"|"$/g, "");
    // Komma, Semikolon
    textContent = textContent.replace(/,/g, "%2C").replace(/;/g, "%3B");
})();

Code...

Eingeklappt sieht es dann so aus:

...Code

(function decodeText(txt) { /* Textinhalt decoden */ ------------------------------------------------------------------
})();

Code...

Natürlich hätte ich auch so schreiben können:

textContent = textContent.replace(/^"|"$/g, "")
                   .replace(/,/g, "%2C").replace(/;/g, "%3B");

Und das, obwohl ich alles in 1 Zeile hätte stopfen können. Jedoch ist es viel einfacher, im eingeklappten Zustand decodeText zu lesen anstatt solch eine lange Zeile, deren Inhalt unweigerlich mentale Last mit sich bringt.

Für sich betrachtet ist die Zeile kein Problem. Aber wenn ich damit beschäftigt bin, im Rahmen eines routinierten Arbeits-Alltags, eine längere Code-Folge nochmal durchzusehen, weil ich mir z.B. das Zusammenspiel zweier Variablen vergegenwärtigen will, dann stellt das Folding eine mentale Entlastung dar, denn ich kann mich dadurch auf das Wesentliche konzentrieren.

Ich pers. gehe sogar noch ein Stück weiter:

Ich brauch die o.a. Funktion 2 mal im Skript, sodass ich sie gem. Dogma normalerweise schön ordentlich in die Gruppe "der anderen" platzieren würde.

Aber die lokale Präsenz ist mir wichtiger als DRY, also wiederhole sie an der anderen Stelle und Pfeife auf die Gruppe, die zur Hälfte meist nur Selbstzweck ist. Und das nur, um hier ein kleines Stückchen mehr mentale Entlastung zu bekommen. Den kleinen Nachteil dieses winzigen Stückchens doppelten Codes nehme ich in kauf.

Gruß, fischlak

0 70

Große JS-Dateien

fischlak
  • javascript
  • software
  1. 0
    Rolf B
    1. 0
      fischlak
      1. 0
        Rolf B
        1. 0
          fischlak
          1. 0
            Felix Riesterer
            1. 0
              fischlak
              1. 0
                Felix Riesterer
                1. 0
                  fischlak
                  1. 1
                    Rolf B
                    1. 0
                      fischlak
                      1. 0
                        Rolf B
                        1. 0
                          fischlak
                    2. 0
                      Hawk
                      1. 0
                        Rolf B
                        1. 0
                          fischlak
                        2. 0
                          Hawk
                        3. 0
                          fischlak
                          1. 0
                            Rolf B
                            1. 0
                              fischlak
                              1. 0
                                Felix Riesterer
                              2. 0
                                Felix Riesterer
                            2. 0
                              fischlak
                              1. 1
                                Rolf B
                                1. 0
                                  fischlak
                                  1. 0
                                    Felix Riesterer
                                    1. 0
                                      fischlak
                                      1. 0
                                        Felix Riesterer
                                        1. 0
                                          fischlak
                                        2. 0
                                          fischlak
                                      2. 0
                                        Rolf B
                                        1. 0
                                          fischlak
                                        2. 0
                                          Robert B.
                                          • javascript
                                  2. 0
                                    Robert B.
                                    • javascript
                                    • performance
                                    • software
                                    1. 0
                                      fischlak
                                      1. 0
                                        Felix Riesterer
                                        1. 0
                                          fischlak
                                        2. 0
                                          fischlak
                                          1. 0
                                            Julius
                                            • editor
                                            • microsoft
                                            • software
                                            1. 0
                                              fischlak
                                          2. 0
                                            encoder
                                            1. 0
                                              fischlak
                                              1. 1
                                                Felix Riesterer
                                                1. 0
                                                  fischlak
                                                2. 0
                                                  fischlak
                                                3. 0
                                                  fischlak
  2. 0
    encoder
    1. 0
      fischlak
      1. 0
        Felix Riesterer
        1. 0
          Rolf B
          1. 0
            Gunnar Bittersmann
            • css
            • html
            • test
            1. 0
              Rolf B
              1. 0
                Gunnar Bittersmann
        2. 0
          fischlak
          1. 0
            Rolf B
    2. 0
      fischlak
      1. 0
        Felix Riesterer
        1. 0
          fischlak
      2. 0
        Rolf B
        1. 0
          fischlak
          1. 1
            Rolf B
            1. 0
              fischlak
              1. 0
                Rolf B
                1. 0
                  fischlak
                  1. 0
                    Felix Riesterer
                    1. 0
                      fischlak
                      1. 0
                        Felix Riesterer
                        1. 0
                          fischlak
            2. 0
              MudGuard
        2. 0
          ottogal