[W3Conf] Nicolas Gallagher: „Die Reinigung der Webentwicklung“

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Nicolas Gallagher (@necolas) ist ein Frontend-Entwickler bei Twitter und hat an großen Projekten wie HTML5 Boilerplate und Normalize.css mitgearbeitet. Nicolas sprach darüber, alte Annahmen über die Frontend-Webentwicklung zu hinterfragen.

Dies sind meine Notizen von ihrem Vortrag auf der W3Conf in San Francisco als Teil dieser Live-Blog-Serie.

„Best Practices“ sind keine „absoluten Wahrheiten“.

Nicolas war länger Anthropologiestudent als Webentwickler.

Heraklit (535 v. Chr.): Philosoph. Verachtung für die Menschheit. Elend ist der Weg. Trauriger Keanu seiner Zeit. Starb, indem er Kuhmist auf sich rieb und sich in die Sonne legte. Hauptidee: Alles ist eine Illusion. „Man kann nicht zweimal in denselben Fluss treten; denn frisches Wasser fließt auf dich ein.“

Demokrit (460 v. Chr.): Auch Verachtung für die Menschheit. Der „lachende Philosoph“. Der erste Troll der Welt. Erhaltung von Masse und Energie. Atome.

Diese Ideen blieben Tausende von Jahren liegen, bis die Wissenschaft sie entdeckte. Platon und Aristoteles lehnten diese Ideen ab, aber man kann es ihnen nicht verübeln. Die Ideen kamen zurück, als die Zeit reif war.

Die Webentwicklung ist ebenfalls eine Welt sich ständig ändernder Kontexte. Nicolas zweifelt weiterhin an Annahmen, die selbst vor sechs Monaten noch wahr waren.

HTML-Klassenattribute wurden für CSS1 hinzugefügt, „um die Granularität der Kontrolle über Elemente zu erhöhen“.

Der CSS Zen Garden (2003) bestand aus einer HTML-Seite, aber es gab viele verschiedene Designs dafür, bei denen nur das CSS geändert wurde.

Echte Aussagen von echten Leuten und echten Spezifikationen

„Verwenden Sie keine unsemantischen Klassennamen.“

„Ihr HTML ist wie Diamanten, für immer.“

„Autoren werden ermutigt, Klassenattributwerte zu verwenden, die die Art des Inhalts beschreiben, anstatt Werte, die die gewünschte Darstellung des Inhalts beschreiben.“

Das ist für Nicolas verrückt. Er hat seinen Blog einmal mit null Klassen gestaltet. Er machte (sogenannte „perfekte Semantik“). Aber Änderungen vorzunehmen wurde unpraktisch. Schwer zu lesen. Schwer zu verstehen. Schwer, Stiländerungen vorzunehmen.

Das ist wahrer

Es gibt jedoch die Vorstellung von „hässlichen“ HTML-Klassennamen. Diese Art von Klassennamen ist im Moment angesagt: `hyphenated-lowercase-4-life`. Z.B.

.button { }
.button-group {}
.button-primary {}
.button-group-item {}

Diese Art von Dingen vermittelt nicht viel. Vergleichen Sie das mit diesen „hässlichen“ Klassennamen

.Button {}
.ButtonGroup {}
.Button--primary {}
.ButtonGroup-item {}

Diese Namenskonvention vermittelt viel mehr. Doppelte Bindestriche sind ein Modifikator. Ein einfacher Bindestrich ist ein Elementkind. Diese sind nicht hässlich. Sie sind im Moment vielleicht nicht angesagt, aber vielleicht werden sie es ja. Dieses Muster stammt vom russischen Suchmaschinenanbieter Yandex.

Hinweis: Möglicherweise gibt es historische Gründe dafür, warum Klassennamen bestimmte Zeichen haben

Eine weitere alte Best Practice lautet: „Verwenden Sie keine zusätzlichen Elemente.“ Nicolas ist tief in die Welt der Pseudo-Elemente eingetaucht, um die Verwendung zusätzlicher Elemente zu vermeiden. Rückblickend hat dies das Verständnis dessen, was vor sich geht, erheblich erschwert. Nicht, dass „Junk“-Markup gut ist, aber Dinge wie Web Components ergeben viel mehr Sinn.

CSS ist das falsche Werkzeug, um dem Inhalt/Design Struktur zu verleihen. HTML ist dafür da. Web Components gibt uns die Möglichkeit, die richtigen Werkzeuge zu verwenden, ohne sich Gedanken über „Junk“-Markup machen zu müssen.