CSS beurteilen / Schlechten Code erkennen

Avatar of Chris Coyier
Von Chris Coyier am

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

In einem kürzlichen Q&A-Artikel auf Smashing Magazine wurde die Frage gestellt, wie man erkennt, ob ein Entwickler schlechtes CSS geschrieben hat. Insbesondere

Was sind die Anzeichen dafür, dass das CSS suboptimal ist oder dass der Entwickler keine gute Arbeit geleistet hat? Worauf achten Sie bei CSS, um zu bestimmen, wie gut oder schlecht es ist?

Ich fand, das war eine interessante Frage, und ich wollte meine Antwort etwas erläutern.


Warum?

Vielleicht haben Sie jemanden beauftragt, CSS für Sie zu schreiben, und möchten einschätzen, wie gut er das gemacht hat. Vielleicht schauen Sie sich das CSS von jemandem an, den Sie potenziell einstellen möchten. Vielleicht möchten Sie Ihr eigenes CSS irgendwie einschätzen.

Der offensichtliche Test

Schauen Sie sich die Website an. Wenn sie völlig durcheinander aussieht, dann hat sie schlechte Arbeit geleistet.

Wenn man das noch weiter treibt, prüfen Sie, ob sie mit den Browsern übereinstimmt, die als unterstützt vereinbart wurden. Das Design sollte in allen davon funktionsfähig sein.

Wenn das Design responsiv sein soll, ändern Sie die Größe Ihres Browserfensters, um sicherzustellen, dass das Design bei jeder Breite und Höhe funktioniert.

Wenn alles gut aussieht, ist das ein guter (und notwendiger) erster Schritt. Aber es ist kein absoluter Beweis dafür, dass das CSS gut ist.

Der Formatierungstest

Schauen Sie sich die *erstellte* CSS-Datei an. Denken Sie daran, dass es bewährte Praxis ist, das minifizierte CSS der Live-Website bereitzustellen (alle unwichtigen Leerzeichen entfernt), also schauen Sie sich das nicht an.

Das ist nicht für Menschen bestimmt. Schauen Sie sich die Datei an, die sie tatsächlich erstellt haben.

Wenn Sie einen etablierten Styleguide hatten, der befolgt werden sollte, wurde er befolgt?

Wenn nicht, sieht es *konsistent* aus – als ob sie einen eigenen Styleguide hätten, an den sie sich halten? Oder ist es etwas nachlässig? Nachlässig bedeutet, manchmal gibt es ein Leerzeichen nach Selektoren und manchmal keines. Manche Codeblöcke sind eingerückt und andere nicht. Einzeilige CSS-Codezeilen sind mit mehrzeiligen CSS-Codezeilen vermischt, ohne Sinn und Verstand.

Sauberer Code ist ein Zeichen eines respektvollen Entwicklers. Eines, das Respekt vor dem Handwerk und der Arbeit hat, die es leistet.

Von Nicolas Gallaghers Idiomatic CSS

Wenn diese ersten beiden Tests bestanden werden, ist das großartig. Aber immer noch kein Beweis dafür, dass das CSS gut ist.

Der Selektortest

Die ersten beiden Tests könnten von fast jedem durchgeführt werden, aber von nun an müssen Sie selbst mit CSS vertraut sein. Beginnen Sie mit dem Lesen des CSS und sehen Sie, ob das, was Sie sehen, für Sie Sinn ergibt.

Sehen die Selektoren rational aus? Wenn Sie einen Selektor wie

.article #comments ul > li > a.button {
  /* Crazy town */
}

Ich wäre besorgt. Das ist ein Entwickler, der sich selbst mit Spezifitätsproblemen bekämpft, etwas, das gutes CSS nicht tut.

Wie sind die Klassennamen? Verständlich? Hoffentlich finden Sie nichts wie „bigGray“ oder „left50“, da die Genauigkeit davon sicherlich kurzlebig sein wird und die zukünftige Entwicklung erschwert.

Wie repetitiv ist es? Wenn Sie zum Beispiel sehen, dass derselbe `box-shadow` an 20 verschiedenen Stellen angewendet wird, ist das wahrscheinlich ein Zeichen für mangelndes Refactoring. Gute CSS-Entwickler erkennen solche Muster und passen sie besser an.

Der Lesestoff-Test

Wie ist die Dateigröße des bereitgestellten CSS? 100k wären absolut riesig für eine CSS-Datei. Klein ist gut. Sogar (besonders) auf komplexen Websites. Riesige Dateien sind oft ein Zeichen für mangelnde Konsistenz.

Der Bearbeitungstest

Ändern Sie einen Stil, den Sie auf der Website ändern möchten, und versuchen Sie, ihn selbst zu ändern. Tauschen Sie zum Beispiel alle verwendeten Schriftarten gegen andere Schriftarten aus. Konnten Sie sich schnell mit dem Code vertraut machen? Hat es sich so angefühlt, als gäbe es einen Plan, wie mit Schriftarten umgegangen wurde? Wie schnell konnten Sie es tun? Schneller oder langsamer als das normalerweise dauert?

Wie machen Sie das?

Waren Sie jemals in der Lage, das CSS anderer zu beurteilen? Haben Sie ähnliche Tests verwendet? Hatten Sie mehr definierte Metriken?