„Schlechter Code“, Dogmatismus usw.

Avatar of Chris Coyier
Chris Coyier am

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

  1. In einem Q&A-Artikel auf Smashing Magazine habe ich eine Frage beantwortet, wie man CSS betrachtet und feststellt, ob es gut oder schlecht ist.
  2. Harry Roberts erläuterte meine Antwort mit vielen spezifischeren Beispielen für schlechte Dinge, die man in CSS finden kann (z. B. magische Zahlen, qualifizierte Klassen, zu vage Selektoren). Harry sagt in diesem Artikel:

    Verwenden Sie IDs in HTML für Fragment-Identifikatoren und JS-Hooks, aber niemals in CSS.

  3. Jeffrey Zeldman reagiert darauf und verteidigt die Verwendung von IDs. Jeffrey vergleicht die Aufgabe von IDs mit OOCSS und der Vermeidung von Nachfahrenselektoren.
  4. Wir haben Jeffrey im ShopTalk zu Gast, um das zu diskutieren. Wir verbringen nicht zu viel Zeit mit Uneinigkeit – sondern konzentrieren uns auf eine viel größere Übereinstimmung: zu dogmatisch bei diesen Dingen zu sein, ist die schlimmste Haltung überhaupt.
  5. Völlig zufällig haben wir nächste Woche Harry Roberts im ShopTalk zu Gast.

Jetzt bin ich wieder dran. Ich liebe es zu bloggen.

Ich habe das Gefühl, wenn sich jemand über Harrys oder andere Artikel aufregt, dann weil er manchmal dogmatisch wirkt. Wenn Ihnen dieser Begriff nichts sagt, denken Sie einfach daran als unflexibles Denken. So ist das eben, verdammt, und basta. Starke Meinungen zu haben ist großartig, unflexible sind es nicht. Darüber zu schreiben, was für Sie funktioniert, ist großartig, über unveränderliche Manifeste zu schreiben, nicht.

Ich habe Harry getroffen. Er ist ein netter Kerl. Ich bin mir nicht sicher, wie dogmatisch er in seinem Denken ist (ich bezweifle es stark). Das werden wir im ShopTalk besprechen.

Jeffrey bezeichnete die Anweisung, dass IDs niemals verwendet werden sollten, als „Unsinn“.

Sagen Sie es mit mir: Es ist nichts falsch daran, eine ID zu verwenden, wenn sie angemessen verwendet wird (semantisch, strukturell, sparsam). Es gibt viel Falsches an der Vorstellung, dass Klassen immer Klassen vor Nachfahrenselektoren und semantischen, strukturellen IDs vorzuziehen sind.

Das kommt mir genauso nahe an Dogmatismus heran wie Harrys Aussage. Und ich bin da auch schuldig. Ich habe darüber in meinem Artikel „Eine Linie im Sand, eine Geschichte über deftiges Chili und die Verwendung von Klassen“ geschrieben.

Ich werde keine IDs zum Stylen von Dingen verwenden. Kein Kompromiss. Selbst wenn eine ID kurzfristig rettend erscheinen mag, sind die langfristigen Vorteile, sie niemals zu verwenden, größer.

Die vollständige Vermeidung von IDs hat mir zu einer besseren Erfahrung beim CSS-Authoring verholfen. Wahrscheinlich hätte ich es mehr so formulieren sollen, aber naja.

Ich habe das Gefühl, Jeffrey denkt, dass die Vermeidung von IDs bedeutet, alles andere zu überklassen, auf die Kaskade zu verzichten und keine intelligenten Selektoren zu verwenden, die sauberen Markup fördern. Ich glaube nicht, dass IDs etwas mit diesen Dingen zu tun haben. Überklassen ist dumm, das sollte man nicht tun, und man sollte nicht denken, dass das OOCSS bedeutet (ich denke daran wie: finde ein Muster, gib diesem Muster eine Klasse). Die Kaskade ist immer noch nützlich, aber in begrenztem Umfang. Man könnte argumentieren, dass sie genauso viel schadet wie nützt. Und schließlich bin ich ganz auf Nachfahrenselektoren eingestellt. Sie funktionieren gleichermaßen gut mit Klassen wie mit IDs. Besser, würde ich argumentieren, da die Klasse wiederverwendbar ist.

Ich habe auch das Gefühl, dass Jeffrey eine tiefere Perspektive darauf hat als Harry oder ich. Wie wir im ShopTalk-Podcast besprochen haben, hat Jeffrey einige Ären durchlaufen, in denen Markup extrem hässlich war, und hat dazu beigetragen, ein Zeitalter des sauberen Markups einzuläuten, das wir heute gewohnt sind. Ich kann verstehen, dass er nervös wird, wenn er das Gefühl hat, dass die Dinge sich in die andere Richtung bewegen.