Ich bin Claudio Schwarz und ich bin Frontend Entwickler aus Zürich. Seit 2005 setze ich in meiner Freizeit WordPress Themes um und habe 2011 unihockey-fotos.ch gegründet.

Foto: BEM Aufbau, Claudio Schwarz
Claudio Schwarz
2 Minuten, 41 Sekunden Lesezeit

Erfahrungen mit BEM

Seit bald einem Jahr arbeiten wir bei Guave Interactive mit BEM. Zeit eine Zwischenbilanz zu ziehen.


Bevor ich im Dezember 2014 bei Guave Interactive meine Arbeit aufnahm wurden alle CSS-Anweisungen mehr oder weniger in eine einzige LESS-Datei content.less geschrieben.
Da ich in der Vergangenheit so konditioniert wurde, mich gegebenen Umständen und Standards anzupassen, schrieb auch ich meine Anweisungen in diese eine Datei.

Projektstruktur vorher
Projektstruktur vorher

In meinem ersten Projekt umfasste dieses eine File über 3500 Zeilen (verschachtelter) LESS-Code. Wie man sich unschwer vorstellen kann: es ist sehr schwierig, daran Code anzupassen.

Internes Barcamp änderte alles

Nach meinen ersten beiden grösseren Projekten bei Guave stellte ich Mitte September 2015 an unserem internen Barcamp (finden ca. halbjährlich statt) das Konzept von BEM vor. Zur Vorbereitung schrieb ich erste Code-Beispiele, damit ich meinen Kollegen anhand von praktischen Beispielen das Prinzip von BEM näher bringen konnte. Nach anfänglicher Skepsis gegenüber dem Konzept, lernte ich beim Ausprobieren die Vorteile von BEM kennen. Aus diesen ersten Code-Beispielen resultierte schlussendlich unser kleines Framework, das “Guave-Blocks”.

Erste Anwendungen in der Praxis

In der Nachbesprechung des Barcamps entschieden wir, künftig BEM bei uns einzusetzen, da wir uns besser strukturierte LESS-Files davon erhofften.

BEM fürs Onepager-Projekt
BEM für den Onepager

Ein kleiner Onepager, welcher mit WordPress umgesetzt wurde, sollte der erste Gradmesser sein. Nachdem ich das Projekt innerhalb kürzester Zeit durch hatte, war ich überzeugt: BEM ist genau das, was wir brauchen. Die Kollegen traten etwas auf die Euphorie-Bremse, da es nur ein kleines Projekt war. Dennoch, ich war überzeugt davon.

Der richtige Gradmesser folgte Anfang dieses Jahres. Wir setzten für die UPC einen Produktberater um, welcher prominent auf der Webseite der UPC platziert wurde. Zeitgleich arbeiteten bis zu 3 Leute am Code und die von mir initiierten Strukturen wurden grösstenteils eingehalten.

Projektstruktur nachher
Projektstruktur nachher

Erst kürzlich haben wir diesen Code aufgeräumt und noch einmal überdacht. Dies ist ein normaler Prozess und durchaus sinnvoll. Dadurch sparten wir total über 300 Zeilen Twig-Code sowie einiges an LESS-Code.

Nach bald einem Jahr mit BEM sind wir noch immer im Prozess des Lernens. Aber wir werden immer besser im Schreiben von BEM.

Einführung von Codelinting und Styleguides

Auch dieses Jahr führten wir ein Barcamp durch. Ein Mitarbeiter stellte Codelinting für JS (jshint) und LESS (lesshint) vor, welches durch Regeln zu einheitlicherem Code führt. Ich kämpfte schon länger dafür, da wir immer öfters zu dritt im Code herumwuselten. Aus meiner Sicht hat die Einführung von Codelintern ebenfalls zu besserem Code geführt.

Ich meinerseits stellte das Thema Styleguides vor und erhielt danach Zeit einen wiederverwendbaren Styleguide umzusetzen. Das Gute daran: wir können gewisse LESS-Files wie Farbdefinitionen, Schriftarten- und grössen sowie Basics direkt in unser „Guave Blocks“ übernehmen und von da weiterverarbeiten.

Es braucht Offenheit

Was ich an Guave Interactive sehr schätze: die Firma ist offen für Inputs, welche das Unternehmen besser machen. Denn nur so ist es möglich, neue Standards wie BEM oder Codelinting einzuführen.

Ich bin gespannt, was wir als nächstes einführen werden, was unsere Abläufe, Standards, whatever verbessert.