IT-Zeitschriften, Fachbücher, eBooks, digitale Magazine und vieles mehr - direkt im heise shop online kaufen

alle aktuellen Zeitschriften,

ausgewählte Fachbücher, eBooks und digitale Magazine

ab 15€ oder für Heise-Abonnenten versandkostenfrei

Warenkorb Ihr Warenkorb ist noch leer.

iX Developer JavaScript heute 1/2014

Zeitschrift

Highlights dieser Ausgabe:

  • Einsatz in professionellen Projekten
  • Schneller mit asm.js
  • Was ECMAScript 6 bringt
  • Node.js und sein Ökosystem
  • Tipps für sichere Anwendungen
  • 5GByte auf der Heft-DVD
Lieferung: 1-4 Tage
Anbieter: Heise Zeitschriften Verlag
Sprache: Deutsch
EAN: 4018837004548
Veröffentlicht: 05.12.2013

Grundlagen

Bis vor einigen Jahren standen die Chancen ziemlich gut, in Entwicklerkreisen mit einem Lächeln bedacht zu werden, wenn man von seinen JavaScript-Projekten erzählte. Die Konzepte sind die alten, allerdings haben sich die Zeiten geändert und man kann selbst im Unternehmensalltag auf die Sprache treffen.


Sprachen und Standards

Um zu gewährleisten, dass alle Browser trotz unterschiedlicher Laufzeitumgebungen JavaScript verstehen, bedarf es einiger Grundregeln. Der Kern der Sprache ist deshalb im ECMAScript-Standard festgeschrieben und Neuerungen sind immer häufiger auch von „JavaScript-Alternativen“ inspiriert.


Server-side JavaScript

Die weite Verbreitung von Node.js hat einen nicht unerheblichen Einfluss auf JavaScripts Beliebtheit. Die serverseitige Plattform hat dazu beigetragen, dass man Anwendungen nun durchgängig von der Nutzeroberfläche über den Server bis zur Datenbank in nur einer Sprache entwickeln kann.


Qualitätssicherung

Trotz IDE-Unterstützung unterlaufen selbst erfahrenen Entwicklern hin und wieder Fehler, die sich manchmal schon mit Tests oder durch Automatisierung vermeiden lassen. Um Sicherheitslücken nicht zuzulassen, ist zudem fundierte Kenntnis etwaiger Schwachstellen vonnöten.


  • Grundlagen

      Einführung
    • 8 JavaScript verstehen und es hassen und lieben lernen
    • Paradigmen
    • 14 JavaScript als Multiparadigmen-Sprache
    • Code-Struktur
    • 19 Übersicht: Entwurfsmuster in JavaScript
    • Brendan Eich
    • 24 Im Interview mit dem JavaScript-Erfinder
    • Literatur
    • 28 JavaScript – eine Buchauswahl
    • Einsatz
    • 30 Laufzeitumgebungen in JavaScript

  • Sprachen und Standards

      Der Standard
    • 34 Die Zukunft von ECMAScript
    • asm.js
    • 40 JavaScript nähert sich nativer Geschwindigkeit
    • Alternativen zu JavaScript
    • 43 TypeScript – Hoffnung für JavaScript-Hasser
    • 50 Hello CoffeeScript – eine Einführung
    • 55 Dart – es geht auch anders

  • Frameworks

      MVC und MVVM
    • 60 Model View ViewModel mit Knockout.js
    • 64 Model View Controller mit Backbone.js
    • 70 Webanwendungen mit AngularJS
    • 76 Ember.js 1.1 im Einsatz
    • Web-Apps
    • 80 Einstieg in die Entwicklung mit Meteor
    • 85 Anwendungen mit jQuery Mobile entwickeln
    • PhoneGap
    • 90 Cross-Plattform-Apps erstellen

  • Server-side JavaScript

      Node.js
    • 98 Einsatz im Enterprise-Umfeld
    • 102 Das Node.js-Ökosystem im Überblick
    • 107 Projektbericht: Adaptation von Webinhalten mit Node.js
    • 111 Methodik: Webanwendungen mit Node.js

  • Qualitätssicherung

      Sicherheit
    • 116 Worauf bei JavaScript-Anwendungen zu achten ist
    • Headless Browser Testing
    • 120 Webseiten rendern und testen ohne Browser
    • Automatisierung
    • 125 Mit Taskrunner Grunt arbeiten lassen
    • Code überprüfen
    • 128 Behavior-Driven Development mit Jasmine
    • 130 Unit-Tests mit Node.js

  • Praxis

      App-Entwicklung
    • 136 Cross-Plattform-Entwicklung hybrider Web-Apps mit HTML5
    • 144 Offline-fähige Browser-Anwendungen mit JavaScript
    • Integration
    • 149 Mit Taskrunner Grunt arbeiten lassen
    • Anwendungsbeispiel
    • 154 Aktien im Blick mit Yeoman, AngularJS und YQL
    • JavaScript und Big Data
    • 162 Visualisierung mit D3.js
    • Projektbericht
    • 166 Unit-Tests mit Node.js

  • Sonstiges

    • 3 Editorial
    • 161 Inserentenverzeichnis
    • 161 Impressum

Totgesagte leben länger


Douglas Crockford, Autor von „JavaScript: The Good Parts“ und Schöpfer des Codeanalyse-Werkzeugs JSLint, hat JavaScript einmal als die wohl am meisten missverstandene Programmiersprache der Welt bezeichnet. Nun denkt man beim Wort „missverstanden“ nicht unbedingt an so etwas Technisches wie eine Skriptsprache. Genies – ja, Künstler – okay, aber JavaScript?


Den niederländischen Künstler Vincent van Gogh kann man ohne Zweifel als missverstanden bezeichnen: Nach einigen Jahren im Kunsthandel steckte er zehn Jahre lang alle Energie in seine Werke. Das schien die restliche Welt allerdings nur marginal zu interessieren, verkaufte er doch Zeit seines Lebens nur wenige Bilder und war finanziell bis zuletzt von seinem jüngeren Bruder Theo abhängig. Erst einige Zeit nach seinem Tod nahm das Geschäft mit seiner Kunst richtig Fahrt auf. Heute kennt hingegen fast jeder zumindest seine Sonnenblumen, die einem von Einkaufsbeuteln und Regenschirmen entgegenlachen.


JavaScript war im Gegensatz zu van Gogh nie wirklich tot und konnte sich immer einer nicht zu vernachlässigenden Anhängerschaft erfreuen. Wie jede Sprache hat auch diese Elemente, mit denen man als Entwickler mehr oder weniger gut zurechtkommt – und wem die Namensähnlichkeit zu Java nach all den Jahren tatsächlich noch ein Dorn im Auge ist, sollte sich einmal eine halbe Stunde mit einem C-Programmierer über C++ unterhalten.


Der neuerliche Aufschwung, den JavaScript erlebt, ist also weder die Stimme aus dem Grab noch eine späte Würdigung, wie es bei anderen Missverstandenen der Fall ist. Vielmehr ist er dem technischen Fortschritt und den vielen Entwicklern zu verdanken, die sich von den allzu häufig in den Vordergrund gestellten Makeln nicht abschrecken ließen und sich stattdessen an die Verbesserung des Vorhandenen gewagt haben. Durch sie ist das Ökosystem der Sprache heute bunter und vielfältiger denn je, und langsam, aber sicher ist JavaScript auch in großen Unternehmen angekommen.

Gegen die letzten Reste des Unverständnisses kann, wie so häufig, nur eins helfen: Information. Ähnlich wie es Theo van Goghs Frau übernahm, die Öffentlichkeitsarbeit für den toten Maler zu leisten, soll dieses Heft ein wenig Licht ins Dunkle bringen, wenn es um den heutigen Stand von JavaScript geht. Quereinsteiger können durch die Lektüre einiger Artikel zu Grundlagen der Sprache eine gute Basis für erste Projekte schaffen, während sich fortgeschrittene Entwickler durch Hinweise zu qualitativ hochwertigen und sicheren Webanwendungen eventuell in die Lage versetzt sehen, das eine oder andere in ihrem Workflow zu verbessern.


In separaten Artikeln beleuchten einige Autoren momentan interessante Frameworks und Bibliotheken, und auch serverseitiges JavaScript kommt mit Ausführungen zum Thema Node.js nicht zu kurz. Erscheint dann immer noch vieles wirr und umständlich, können „Sprachaufsätze“ wie CoffeeScript oder TypeScript Alternativen bieten oder Module zur Integration von Code aus anderen Sprachen helfen.


Um nicht zu sehr in der Theorie zu verharren, runden Projektberichte aus der Praxis und einige Programmierbeispiele das Heft ab. Letztere liegen in großen Teilen gemeinsam mit nützlichen Werkzeugen auf der Heft-DVD bei, womit es mehr als genug Möglichkeiten gibt, sich sofort in die Entwicklung zu stürzen oder einfach mal wieder etwas auszuprobieren. Und sollte es dann nicht auf Anhieb funktionieren, kann man sich wieder des missverstandenen Niederländers erinnern, der einmal sagte: „Und gerade dadurch, dass man sich irrt, findet man manchmal den Weg.“


Julia Schmidt

Auf der Heft-DVD


Visual Studio Express 2013 fürs Web:
Die kostenlose Express-Version von Microsofts Entwicklungsumgebung zum Erstellen von Webanwendungen und -diensten.


Wakanda: Das Open-Source-JavaScript-Framework soll dem gezielten Erstellen von Business-Webanwendungen dienen.

Tools: Aktuelle Versionen der im Heft vorgestellten Frameworks und Bibliotheken AngularJS, Backbone.js, Ember.js, jQuery, jQuery Mobile, Knockout, Meteor sowie der Node.js-Plattform.

Außerdem: Sprachalternativen zu JavaScript, Codebeispiele aus dem Heft, kleine Helfer, Leseproben aus aktuellen JavaScript-Publikationen und 40 Episoden des SoftwareArchitekTOUR-Podcasts.

Hinweis für Käufer der digitalen Ausgaben
• PDF- und iPad-Version: In der iX-App finden Sie einen Button zum Download des DVD-Images.

• PDF-E-Book: Folgen Sie im Browser der unter„Alle Links“ angegebenen URL zum DVD-Image.
Um bewerten zu können, melden Sie sich bitte an
  • unklarheiten
    04.01.2014
    von: Anonym
    In muss mich meinem Vorredner anschließen, für mich ist ebenfalls einiges unklar geblieben.

    Artikel Grundstoff:
    - Sortierung: Was läuft bei dem Funktionsaufruf sort.sortfunction im Hintergrund ab ?
    - Listing 2: "callback.call(...)" - was ist das ? wird nicht erklärt

    Artikel "Alles drin":
    - Wo ist Listing 8 ??? Es fehlt
    - Hier wird jetzt die Methode "call" erklärt nachdem es im ersten Artikel ohne erklärung verwendet wurde. Einzelne Punkte sind doppelt erklärt. Die beiden Artikel sind kein Stück aufeinander abgestimmt.

    Artikel "Gut in Form":
    - Wiederholungen (Closures/Namensräume) die wohl vertiefen sollen, jedoch verirrt es eher wenn die selbe Sache in 3 Artikeln auf unterschiedlichste Weise beschrieben wird.

    Etwas enttäuschend bisher.


    ----------------------------------------
    ANTWORT DER REDAKTION:
    ----------------------------------------
    Sehr geehrter anonymer Leser,

    - - Der Nutzen von callback.call wird allerdings im Text erklärt. An dieser Stelle wird eine Funktion aufgerufen und ihr der Inhalt des http.Request als XML übergeben.

    - - Listing 8 fehlt tatsächlich, ich habe es unter www.ix.de/ix1317014 als Link eingefügt. Was die doppelte Erklärung der einzelnen Punkte angeht ist zu sagen, dass jeder Artikel für sich stehen muss und es so durchaus zu Überschneidungen kommen kann. Wir können nicht davon ausgehen, dass jeder jeden Artikel liest oder das auch mal eine Zeit zwischen dem Lesen liegen kann. Viele Leser finden eine Wiederholung gewisser Aspekte auch hilfreich.

    Wenn Sie weitere Fragen haben, können Sie sich mit diesen gern direkt an mich wenden, die Adresse finden Sie im Impressum.

    Julia Schmidt


  • Schon der erste Artikel ist voller Fehler...
    28.12.2013
    von: Anonym
    Ich lese gerade den ersten Artikel des Hefts (Grundlagen Javascript) von Marcus Ross und es scheint mir, dass dieser Artikel nicht mal gegengelesen wurde. Er ist voller offensichtlicher Fehler und enthält viele Unklarheiten:
    * Warum funktioniert die sortfunction mit a-b?
    * Argumente zur Funktion splice bitte erklären, sonst macht das Beispiel keinen Sinn
    * Was heisst "Hier wird geprüft, ob die Variable stunde den Wert 12 besitzt und mit wahr evaluiert" (ist das Deutsch?)
    * Angebracht wäre wohl, die Unterschiede von == und === zu erklären, da dies doch speziell ist bei JavaScript
    * While loops werden nicht solange durchlaufen, _bis_ die angegebene Bedingung erfüllt ist, sondern solange _wie_ die Bedingung erfüllt ist
    * Was passiert bei addition(wert1, wert2); ? (da gibt es keine Zuweisung des Rückgabewertes, bitte erklären)
    * Einmal wird von calculateTo100 gesprochen, einmal von calculateTo1000
    * Das Listing von calculateTo1000 ist fehlerhaft, callback(result) muss ja wohl in den for loop, oder?
    * Und was macht denn calculateTo1000 genau? Die Ausgabe (des korrigierten) Skripts ist 1, 3, 6, 10, ... Vielleicht ein etwas sprechenderes Beispiel verwenden?

    Weiter habe ich noch nicht gelesen, ich hoffe, die restlichen Artikel sind von höherer Qualität.


    ----------------------------------------
    ANTWORT DER REDAKTION:
    ----------------------------------------
    Sehr geehrter anonymer Leser,

    - - (a-b) in der sort-Funktion dient zum Vergleich. Es wird geprüft, ob a größer oder kleiner als b ist indem man die Differenz bildet. Ist diese kleiner 0 ist b größer, ist sie größer 0 ist a größer. sort prüft alle Vergleichsergebnisse und bringt sie in die richtige Reihenfolge.

    - - Das erste Argument der splice-Funktion gibt den Startindex an, also die Stelle im Array, an der etwas entfernt (oder hinzugefügt) werden soll. Das zweite besagt, wie viele Elemente zu entfernen (oder
    hinzuzufügen) sind. Anscheinend ist das durch den Folgesatz nicht klar genug geworden.

    - - Es wird geprüft, ob die Variable stunde den Wert 12 enthält. Ist das der Fall, die Bedingung also true (= wahr), kommt der if-Zweig zum Einsatz.

    - - Ja man hätte sicher mehr auf den Unterschied zwischen == und === eingehen können, allerdings musste der Artikel aus Platzgründen auf diese Ausführung verzichten. Wir dachten den Fall im Fließtext zumindest für ein Grundverständnis abgehandelt zu haben und haben bei einem größeren Interesse auf die Eigeninitiative des Lesers gehofft.

    - - Dieser Formulierungsfehler ist uns leider allen entgangen, genauso wie die 0 in der calculate1To100-Funktion.

    - - Der Callback ist tatsächlich falsch gesetzt. Leider habe ich im speziellen Fall nur auf Syntax geprüft, sodass mir dieser Patzer entgangen ist. Richtig müsste es heißen:

    function calculate1To1000(callback) {
    var result = 0;
    for (var i = 1; i <= 1000; i++){
    result = i;
    callback(result);
    }
    }

    var cb = function(data){
    // beim Rhino Interpreter
    // print(data);
    // Im Webbrowser
    console.log(data);
    };

    calculate1To1000(cb);


    Wenn Sie weitere Fragen haben, können Sie sich mit diesen gern direkt an mich wenden, die Adresse finden Sie im Impressum.
    Julia Schmidt