Sie sind hier
E-Book

CoffeeScript

Die Alternative zu JavaScript - eine kompakte Einführung

AutorAndreas Schubert
Verlagdpunkt
Erscheinungsjahr2014
Seitenanzahl188 Seiten
ISBN9783864915994
FormatePUB/PDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis17,99 EUR
CoffeeScript ist eine kleine Programmiersprache, die nach JavaScript u?bersetzt wird und versucht, ungeliebte Eigenschaften von JavaScript durch eine deutlich einfachere Syntax zu umgehen. Sie richtet sich an alle Webentwickler, denen JavaScript zu unhandlich ist oder die bei der Arbeit mit Ruby on Rails die CoffeeScript-Integration nutzen. Dieses Buch gibt Ihnen eine umfassende Einfu?hrung in die Sprache CoffeeScript. Anhand zahlreicher Beispiele lernen Sie die elegante Syntax sowie die Verwendung der Sprache praktisch kennen. Behandelt werden u.a. folgende Themen: • Syntax und Grundlagen • Objektorientierte Programmierung mit CoffeeScript • Testen mit Mocha und Chai • CoffeeScript in Ruby on Rails • Einsatz mit AngularJS und node.js Nach der Lektu?re des Buches sind Sie in der Lage, CoffeeScript zur Entwicklung dynamischer Webapplikationen, fu?r Kommandozeilen-Tools oder serverseitige Komponenten einzusetzen. Die Quellcodes zu diesem Buch findet man unter github.com/aschubert/coffeescript-buch

Andreas Schubert ist Systemadministrator bei der MATHEMA Software GmbH in Erlangen. Neben der Betreuung heterogener Netzwerke beschäftigt er sich mit Ruby, Ruby on Rails und CoffeeScript.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

2 Hinunter in den Kaninchenbau – CoffeeScript im Detail


Als Alice im Wunderland sich hinunter in den Kaninchenbau wagte, fand sie eine ihr völlig fremde und faszinierende Welt vor. Das nun folgende Kapitel soll helfen, dass CoffeeScript nicht mehr fremd für Sie ist und Sie die vielen faszinierenden Aspekte dieser Sprache kennenlernen.

Im nun folgenden Kapitel möchte ich Ihnen die Sprache CoffeeScript detailliert beschreiben, damit Sie einen Überblick über die Funktionalität der Sprache erhalten, einschätzen können, ob CoffeeScript für Ihre Projekte eine Bereicherung sein könnte, und um Sie von der Einfachheit und Eleganz dieser Sprache zu überzeugen.

Sie können das Kapitel von Anfang bis Ende lesen. Sie können allerdings auch nur die für Sie jeweils interessanten Unterkapitel lesen, um eventuell schnell mit einem eigenen Projekt beginnen zu können, und die fehlenden Passagen zu einem späteren Zeitpunkt nachholen.

In den einzelnen Kapiteln wird es viele Beispiele geben, sodass Sie gleich sehen können, wie gewisse Dinge in CoffeeScript gemacht werden (oder auch, wie man sie besser nicht macht). Nicht alle dieser Beispiele sind auch wirklich lauffähige »fertige« Skripte, sie dienen manchmal auch »nur« zur Veranschauung. In diesem Sinne: viel Spaß!

2.1 Alles neu? – Ein paar Basics zu Beginn


Wenn wir uns mit einer neuen Programmiersprache beschäftigen, dann benötigen wir für die ersten Beispiele eigentlich immer die gleichen Grundlagen. Im folgenden Abschnitt 2.2 beschäftigen wir uns mit den Kontrollstrukturen in Coffee-Script, in diesem Abschnitt soll es um ein paar grundlegende syntaktische Charakteristiken gehen.

Fangen wir mit ein paar Unterschieden und Gemeinsamkeiten zu JavaScript an:

  • CoffeeScript kennt keine Strichpunkte am Ende der Zeile.

    alert("Hello World")

  • Klammern bei Funktionsaufrufen können weggelassen werden.

    alert "Hello World"

  • Variablen werden ohne das Schlüsselwort var definiert.

    name = "Max Mustermann"
    i = 10

  • Arrays und Objekte werden (ähnlich) wie in JavaScript definiert.

    a = [0, 1, 2, 3, 4]
    person = { name: "Mustermann", vorname: "Max" }

  • Werden Arrays und Objekte über mehrere Zeilen definiert und stehen die Properties bei Objekten jeweils in einer Zeile, dann können die Kommas am Ende der Zeile weggelassen werden.

    a = [
        0, 1
        2, 3
        4
        ]
    person = {
        name: "Mustermann"
        vorname: "Max"
        }

  • Objekte können in einer YAML1-ähnlichen Syntax definiert werden

    ehepaar =
       mann:
           name: "Mustermann"
           vorname: "Max"
       frau:
           name: "Mustermann"
           vorname: "Anna"

    Nach diesem Kurzüberblick über syntaktische Unterschiede zwischen Coffee-Script und JavaScript kommen wir zum ersten großen Thema: Kontrollstrukturen.

2.2 Alles unter Kontrolle – Kontrollstrukturen in CoffeeScript


Jede Programmiersprache hat sie und ohne wären wir Entwickler auch ziemlich unglücklich: Kontrollstrukturen. Neben den bekannteren wie if/else und while bietet CoffeeScript noch eine Reihe weiterer Möglichkeiten, den Programmablauf zu steuern.

All dies wird in den folgenden Abschnitten Thema sein. Beginnen wir also gleich mit etwas Grundlegendem.

2.2.1 Am Anfang die Basics – If /Else

If und else gibt es vermutlich in nahezu jeder Programmiersprache, also auch in CoffeeScript.

Schauen wir uns die Verwendung am besten gleich in einigen Beispielen an, sodass die Unterschiede zu JavaScript am schnellsten deutlich werden.

if kosten < 50
     console.log "Bei einem Betrag unter 50,- EUR"
     console.log "benötigen wir bei der Bestellung keine weiteren"
     console.log "Details."
else
     console.log "Bei einem Betrag ab 50,- EUR"
     console.log "benötigen wir bei der Bestellung bitte eine"
     console.log "gültige Kreditkarte."

Listing 2–1 If und Else in CoffeeScript

Bei der Betrachtung des Listings 2–1 fallen ein paar Dinge im Vergleich zu JavaScript auf:

  • Es werden keinerlei Klammern benötigt.

  • Blöcke werden durch Einrücken gebildet.

Der letzte Punkt ist besonders wichtig und womöglich aus einer Sprache wie Python2 bekannt: Logische Blöcke werden in CoffeeScript durch Einrücken gebildet. Das bedeutet, dass CoffeeScript zu den Sprachen zählt, die Whitespace als syntaktisches Element verwenden.

Dieses Konzept soll Entwickler dazu bringen, »schönen« Code zu schreiben. Allerdings birgt es auch einen gravierenden Nachteil: Sie sollten nie die Art der Einrückung innerhalb einer Datei mischen; also entweder Tabulator oder Leerzeichen. Und bei Leerzeichen natürlich immer die gleiche Anzahl für die gleiche Ebene. Wenn Sie das berücksichtigen, sind Sie vor ungewollten Fehlermeldungen sicher.

Wie bereits im ersten Kapitel gezeigt, kennt CoffeeScript auch die nachgestellte Variante des if. Diese Version ist besonders praktisch, wenn es sich um kurze Codestücke handelt, und sie erhöhen die Lesbarkeit3:

console.log "DEBUG: eine Meldung!" if debug

Nicht so negativ – unless

Wenn Sie in JavaScript eine negative Überprüfung implementieren wollen, dann verwenden Sie normalerweise etwas in dieser Art:

if (!coffeescript) { ... }

Der Operator ! negiert den booleschen Ausdruck. Das können wir natürlich ebenso in CoffeeScript schreiben:

if !coffeescript
  ...

Allerdings gibt es auch noch die elegantere bzw. gerade für Programmieranfänger verständlichere Variante unless:

unless coffeescript
     ...

Alles gleich – der ==-Operator in CoffeeScript

In JavaScript gibt es den Operator ==, um zwei Werte auf Gleichheit zu überprüfen. Dieser Operator sorgt für so manchen WTF4-Moment beim Programmieren, vor allem, wenn Sie nicht so firm in JavaScript sind.

Die folgende Tabelle gibt einen kleinen Überblick5 über Ausdrücke und das nicht immer einleuchtende Ergebnis:

Ausdruck

Ergebnis (boolescher Wert)

'' == '0'

false

0 == ''

true

0 == '0'

true

false == 'false'

false

false == '0'

true

false == undefined

false

false == null

false

null == undefined

true

"\t\r\n" == 0

true

Tab. 2–1 Logische Ausdrücke und deren Ergebnisse (nach Douglas Crockford)

Was ist das Problem? Der Operator == und auch der negative != werden in vielen Programmiersprachen verwendet, so auch in JavaScript. Solange die Datentypen, die verglichen werden, identisch sind, funktionieren diese beiden Operatoren auch so, wie wir es erwarten würden. Problematisch sind jedoch die Fälle, in denen es um ungleiche Datentypen geht.

JavaScript wird in diesem Fall eine Umwandlung in gleiche Datentypen vornehmen und dann vergleichen. Die Regeln für diese Umwandlung sind kompliziert und man kann sie sich nur schwer merken. Als ein weiteres Beispiel: true == 1 ist wahr, da das true in eine 1 umgewandelt wird.

JavaScript bietet einen Ausweg aus diesem Dilemma, die Operatoren === und !==, die eigentlich immer verwendet werden sollten, da sie typsicher vergleichen. Nur wenn beide Datentypen identisch sind, liefert === ein true zurück.

Und CoffeeScript? Hier wird immer aus == ein === in JavaScript erzeugt (und aus != ein !==), sodass in CoffeeScript immer typsicher verglichen wird.

Alles is === – Aliase in CoffeeScript

Da CoffeeScript beim Übersetzen die Vergleichsoperatoren ersetzt, haben die Entwickler noch einige Aliase für diverse Operatoren hinzugefügt, die ich Ihnen nicht vorenthalten...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

BONSAI ART

BONSAI ART

Auflagenstärkste deutschsprachige Bonsai-Zeitschrift, basierend auf den renommiertesten Bonsai-Zeitschriften Japans mit vielen Beiträgen europäischer Gestalter. Wertvolle Informationen für ...

EineWelt

EineWelt

Lebendige Reportagen, spannende Interviews, interessante Meldungen, informative Hintergrundberichte. Lesen Sie in der Zeitschrift „EineWelt“, was Menschen in Mission und Kirche bewegt Man kann ...

VideoMarkt

VideoMarkt

VideoMarkt – besser unterhalten. VideoMarkt deckt die gesamte Videobranche ab: Videoverkauf, Videoverleih und digitale Distribution. Das komplette Serviceangebot von VideoMarkt unterstützt die ...