Grunt ist ein Task Runner (nicht nur) für und in JavaScript. Grunt ist ein Kommandozeilenwerkzeug, das in Node.js geschrieben ist. Ich war in den letzten Wochen darüber gestolpert, hatte mich dann ein wenig damit beschäftigt und bin zunehmend fasziniert von den Möglichkeiten, die diese Software bietet. Um tiefer einzusteigen, habe ich in den letzten Tagen zusätzlich auch drei Bücher darüber gelesen.
Angefangen habe ich mit Automate with Grunt: The Build Tool for JavaScript von Brian P. Hogan. Das Büchlein (knappe 70 Seiten) ist pragmatisch aufgebaut (die Reihe heißt schließlich auch The Pragmatic Programmers) und hilft einen, den Einstieg in die Automatisierung immer wiederkehrender Aufgaben mit Grunt zu erleichtern. Es beginnt mit den einfachsten Grundlagen, zeigt dann, wie man Dateien liest und schreibt und als Höhepunkt wird eine kleine Applikation erstellt, die online und on the fly Markdown-Input in HTML-Output verwandelt. Zu guter Letzt erfährt man noch, wie man ein Grunt-Plugin und ein Projekt-Template schreibt. Alles wird sehr kompakt behandelt und auf eine Erklärung über das warum wird häufig verzichtet, man muß sich mit dem wie zufriedengeben. Dafür bekommt man mit dem Büchlein einen schnellen Einstieg geboten und ich habe alle Beispiele nachprogrammiert und auch keine Fehler im Code gefunden (bei Programmierbüchern leider nicht immer eine Selbstverständlichkeit). Dem Buch habe ich nur anzulasten, daß die Codeschnipsel häufig recht isoliert dastehen und gerade ein Anfänger oft nicht weiß, an welcher Stelle im Quellcode der Datei Gruntfile.js
oder anderer er diese Zeilen denn nun einfügen soll. Mit ein wenig Herumprobieren habe ich es dann aber doch immer herausgefunden. Daher: Für absolute Anfänger in Grunt ist dieses Heftchen ein Muß, was Besseres gibt es zur Zeit meines Wissens nicht.
Getting Started with Grunt: The JavaScript Task Runner von Jaime Pillora fängt da an, wo Automate with Grunt aufhört. Ohne das obige Heft vorher gelesen zu haben, hätte ich das fast doppelt so dicke Büchlein (knapp 120 Seiten) – speziell das erste Kapitel – nicht verstanden. Denn dort wird der Nutzer mit use cases ins kalte Wasser geworfen, um ihm zu zeigen, was er mit Grunt alles anstellen kann. Ab dem zweiten Kapitel wird dem Leser dann aber alles ausführlich erklärt und die Autor hat die stärkere Seitenzahl dann lobenswerterweise dazu genutzt, nicht nur das wie, sonder auch das warum zu erklären. Daher weiß ich nun, warum es sinnvoll ist, das Grunt Command Line Interface (grunt-cli
) global zu installieren und vom eigentlichen Grunt zu trennen, das man jeweils lokal zum Projekt installiert und warum man die lokale Installation mit der --save-dev
-Option durchführen sollte. Auch das warum bei Tasks, Multitasks und asynchronen Tasks wird hinreichend ausführlich erläutert. Großen Wert wird auf eine plattformübergreifende Distribution gelegt und Jaime Pillora zeigt, wie man mithilfe von Grunt-Plugins seine Dateien via FTP und SFTP hochladen und/oder synchronisieren kann. Und für den Sync mit Amazons S3 hat er freundlicherweise ein eigenes Plugin geschrieben und der Öffentlichkeit zur Verfügung gestellt. Das große Beispielprojekt (Grunt in Action) ist nicht so ambitioniert wie das bei Automate with Grunt, es ist eher ein »Hello World«, aber dafür wird auch hier überall das Warum erklärt und der Leser nicht im Regen stehen gelassen. Sehr großen Wert scheint der Autor auf die Uglifizierung des Codes zu legen – das hat mich zu der Überschrift dieser Rezension inspiriert. Häßlich (ugly) finde ich auch, daß alle externen Links über die Webseite zum Buch (http://gswg.io/) umgeleitet werden. Linkverkürzung in allen Ehren, aber aus den Namen der Originallinks kann man oft schon entnehmen, ob sich das Klicken überhaupt lohnt.
Dennoch: Wer sich schon ein wenig mit Grunt auskennt oder über den Inhalt des oben zuerst erwähnten Büchleins hinaus Informationen zu Grunt sucht, der wird mit Getting Started with Grunt bestens bedient.
Ein Wort vorab: Ich mag grundsätzlich keine Programmierbücher, bei denen man sich den Beispielcode erst von einem Server herunterladen muß, um überhaupt etwas mit dem Buch anfangen zu können. Leider funktioniert Mastering Grunt von Daniel Li genau so. Wohl um den gedruckten Text (gute 90 Seiten) möglichst kompakt zu halten, findet man nur isolierte, alleinstehende Quellcode-Schnipsel in dem Büchlein, die ohne den Rest des Codes nicht zu verstehen sind. Ich mag es, Quellcode auch ohne direkten Computerzugang zu lesen, so wie ich es auch mag, Musiknoten zu lesen, ohne gleich zum Klavier zu rennen. Daher fühle ich mich bei solchen Büchern immer um eine Erwartung beschissen. Dabei besteht das Buch eigentlich auch nur aus drei Projekten, der Entwicklung eines Blogs mit Jade und SASS, dem Bau eines Mitarbeiter-Verwaltungs-Systems mit CoffeeScript und der Entwicklung eines einfachen Bulletin Board Systems (BBS) und einer dafür sinnvollen Test Suite. Die dann noch folgenden 20 Seiten Best Practices for Modern Web Applications mit mehr oder weniger sinnvollen SEO-Tricks hätte sich der Autor ruhig schenken können, sie machen im Zusammenhang mit diesem Büchlein keinen Sinn. Man hätte diesen Platz ruhig dafür verwenden können, mehr Quellcode abzudrucken … ich weiß, ich wiederhole mich.
Fazit: Automate with Grunt und Getting Started with Grunt sind beides Bücher, die ich umstandslos empfehlen kann. Sie ergänzen sich nicht nur, sie bauen sogar sinnvoll aufeinander auf. Ob man sich dann auch noch Mastering Grunt beschaffen sollte, muß jeder Leser selber wissen, mich hat es jedoch komplett enttäuscht.
Über …
Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!
Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.
Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.
Werbung