Tim Tepaße: Ästhetik und Klarheit von Code

Beitrag lesen

ich halte das Beispiel für problematisch, um daran über sprechenden Code zu diskutieren, schließlich sind schon zwei Funktionen vorgegeben:

Ja. Ich hab das auch nur nebenbei aufgeschnappt und hab das eher genommen, weil es das aktuellste war, wo ich über so etwas nachgedacht habe. Und die API ist doof, aber ich wollte da ja nur ein Gegenbeispiel bringen.

nodes.fontnames.unique.length > 2
nodes.map(:fontname).unique().length > 2
nodes.unique?(:fontname, 2)

Ich vermeide unique, wenn ich keinen Überblick über die ungefähre Datenmenge habe, weil zu viele Vergleiche und zuviel benötigter Zwischenspeicher. Premature, vielleicht, aber irgendwo in mir eingegraben. Und hier weiß ich ja nicht, was der Kerl eigentlich bezwecken will. ;)

(Es gibt irgendwo ein unique, dass so überladen ist? Doch nicht in Ruby, oder? Ich war ja da kurz davor, mir ein Array.prototype.differentValues zu monkeypatchen.)

fontNames = nodes.map(function (node) { return node.fontName });
...
fontNames = nodes.map(function (node) {
  // Get the node's font name
  return ugly.api.getEffectiveValue(node, "fontname", null, ugly.api.FOO | ugly.api.BAR, -2);
});
...
editableTextNodes = nodes.filter(function (node) { return isEditable(node) && node.nodeType == Node.TEXT_NODE });

Das ist eine anderer Programmierstil, den ich mag – die deskriptive Information steckt in der Bezeichnung der Collection, Filtern passiert subsequent. Was auch eine Art deklarativer Stil ist. Ich hab diese Präsentation da als etwas in Erinnerung, was mich mal stark beeinflusst hat. Python, ab Seite 100 oder so wird's aber sehr rocket sciencig.

3 88

Ästhetik und Klarheit von Code

Tim Tepaße
  • programmiertechnik
  1. 2
    asdf
    1. 0
      Jeena Paradies
      1. 0
        asdf
      2. 2
        molily
        1. 0
          Jeena Paradies
      3. 2
        Stefanie M.
    2. 0
      Tim Tepaße
      1. 1
        dedlfix
  2. 0
    Jeena Paradies
    1. 2
      Tim Tepaße
      1. 2
        Jeena Paradies
  3. 0
    Der Martin
    1. 1
      Jeena Paradies
    2. 1
      Tim Tepaße
      1. 0
        Der Martin
        1. 0
          Jeena Paradies
          1. 0
            Der Martin
            1. 3
              DaBear
              1. 0
                Der Martin
                1. 1
                  DaBear
                  1. 0
                    Der Martin
                    1. 1
                      Jeena Paradies
                      1. 4
                        Christian Kruse
                        1. 0
                          Christian Seiler
                          1. 0
                            Christian Kruse
                          2. 0
                            molily
                2. 0
                  Tom
            2. 2
              Tim Tepaße
              1. 0
                Der Martin
                1. 1
                  dedlfix
                  1. 0
                    Tom
                    1. 1
                      Jeena Paradies
                      1. 0
                        Tom
                        1. 0
                          Tom
                          1. 4
                            Christian Kruse
                        2. 4
                          Kai345
                2. 3
                  Christian Seiler
                  1. 0
                    Tom
                    1. 0
                      Don P
                      • menschelei
                      1. 0

                        Currying

                        Tom
              2. 0
                Stefanie M.
                1. 0
                  Tom
                  1. 0
                    Tim Tepaße
                    1. 0
                      dedlfix
                    2. 1
                      Der Martin
                      1. 2
                        molily
                2. 1
                  molily
            3. 3
              molily
              1. 0
                Der Martin
                1. 0
                  dedlfix
                  1. 0
                    Tom
                    1. 5
                      molily
                      1. 0

                        Ein Nachruf

                        Christian Seiler
                        1. 0
                          Christian Kruse
                          1. 0
                            Tom
                        2. 0
                          Der Martin
                          1. 3
                            Christian Seiler
                            1. 0
                              Der Martin
                        3. 0

                          Der Unterschied zwischen Nachwuchsföderung und Arroganz

                          Tom
                          • menschelei
                          1. 0

                            Was ist aus dem einstigen Nachwuchs geworden?

                            Tom
                          2. 0
                            Jeena Paradies
                        4. 1
                          dedlfix
                      2. 0
                        Tom
                        1. 0
                          Tim Tepaße
                          1. 0
                            Der Martin
                            1. 5
                              molily
                              1. 1
                                dedlfix
                                1. 3
                                  molily
                                  1. 3
                                    Don P
                          2. 0
                            Tom
                            1. 0
                              Tim Tepaße
                              1. 0
                                dedlfix
        2. 0
          Christian Seiler
        3. 0
          Don P
    3. 0
      Tom
      1. 0
        Der Martin
    4. 0
      Don P
      1. 0
        Jeena Paradies
        1. 0
          Christian Seiler
          1. 0
            Christian Kruse
          2. 0
            molily
  4. 1
    molily
    1. 0
      Tim Tepaße
  5. 0
    reborn
  6. 0
    Buchtipp
  7. 0
    jobo
    1. 0
      jobo