48
Vergiss Java Konzentrier Dich auf Script OOP 2013 Maxim Zaks

Vergiss Java konzentrier Dich auf Script @ OOP2013

Embed Size (px)

Citation preview

Page 1: Vergiss Java konzentrier Dich auf Script @ OOP2013

Vergiss Java Konzentrier Dich auf

ScriptOOP 2013Maxim Zaks

Page 2: Vergiss Java konzentrier Dich auf Script @ OOP2013

Agenda

• JavaScript the good parts

• Embrace objects prototypes and closures

• Think about "this" and "new"

• There is no "super"

• Use Tools that are build specifically for JavaScript

• etc...

Page 3: Vergiss Java konzentrier Dich auf Script @ OOP2013

Autos und Fahrräder

Page 4: Vergiss Java konzentrier Dich auf Script @ OOP2013

Theorie & Praxis

Page 5: Vergiss Java konzentrier Dich auf Script @ OOP2013

Radschule

Page 6: Vergiss Java konzentrier Dich auf Script @ OOP2013

Theorie ist Einfach!

Page 7: Vergiss Java konzentrier Dich auf Script @ OOP2013

Kommen wir zu Java vs. JavaScript

Page 8: Vergiss Java konzentrier Dich auf Script @ OOP2013

Hello Java

Page 9: Vergiss Java konzentrier Dich auf Script @ OOP2013

Java Konzepte

• „package“ und „import“

• Klasse, Objekt und Methode

• „public“ und „static“

Page 10: Vergiss Java konzentrier Dich auf Script @ OOP2013

Hello JavaScript

Page 11: Vergiss Java konzentrier Dich auf Script @ OOP2013

Konzepte JavaScript

• Es gibt Objekte und Funktionen

• Objekte haben Eigenschaften

Page 12: Vergiss Java konzentrier Dich auf Script @ OOP2013

So einfach wie Fahrrad fahren...

Page 13: Vergiss Java konzentrier Dich auf Script @ OOP2013

hat aber auch Nachteile

Page 14: Vergiss Java konzentrier Dich auf Script @ OOP2013

„this“ ist nicht sicher

Page 15: Vergiss Java konzentrier Dich auf Script @ OOP2013

Es gibt keine Klassen und keine Vererbung

Page 16: Vergiss Java konzentrier Dich auf Script @ OOP2013

Und überhaupt ...

Page 17: Vergiss Java konzentrier Dich auf Script @ OOP2013

Warum sollte man dann überhaupt

JavaScript verwenden?

Page 18: Vergiss Java konzentrier Dich auf Script @ OOP2013

Zustand

Page 19: Vergiss Java konzentrier Dich auf Script @ OOP2013

Visualisierung und Interaktion

http://d3js.org

Page 20: Vergiss Java konzentrier Dich auf Script @ OOP2013

Wie sollte ich anfangen?

Page 21: Vergiss Java konzentrier Dich auf Script @ OOP2013

JavaScript ist mehr funktional als

Objekt Orientiert5 Typen Zahle, Strings, Arrays, Objekt und Funtionsobjekt.Dabei können Funktionsobjekte als Prototypen für andere Objekte dienen.

Page 22: Vergiss Java konzentrier Dich auf Script @ OOP2013

Funktionssammlung

http://underscorejs.org/

Page 23: Vergiss Java konzentrier Dich auf Script @ OOP2013

Erweiterung/Vererbung

Page 24: Vergiss Java konzentrier Dich auf Script @ OOP2013

Lösung für „this“

Page 25: Vergiss Java konzentrier Dich auf Script @ OOP2013

Funktionen für Listen

Page 26: Vergiss Java konzentrier Dich auf Script @ OOP2013

UI spezifisches Problem

Page 27: Vergiss Java konzentrier Dich auf Script @ OOP2013

Organisation / Module

Page 28: Vergiss Java konzentrier Dich auf Script @ OOP2013

Benutze Require.js

http://requirejs.org/

Page 29: Vergiss Java konzentrier Dich auf Script @ OOP2013

Einstiegspunkt

Page 30: Vergiss Java konzentrier Dich auf Script @ OOP2013

Geladene Abhängigkeiten

Page 31: Vergiss Java konzentrier Dich auf Script @ OOP2013

models/todo

Page 32: Vergiss Java konzentrier Dich auf Script @ OOP2013

Konfiguriere Abhängigkeiten

Page 33: Vergiss Java konzentrier Dich auf Script @ OOP2013

MV...Frameworks

Page 34: Vergiss Java konzentrier Dich auf Script @ OOP2013

Affe sieht, Affe tut!

http://todomvc.com/

Page 35: Vergiss Java konzentrier Dich auf Script @ OOP2013

Backbone + Require.js

Page 36: Vergiss Java konzentrier Dich auf Script @ OOP2013

BackboneJS

• Model / Collection

• View

• History / Router

Model repräsentiert DatenStandardmäßig gebunden an REST Interface

Views repräsentieren/erzeugen DOM Elemente

History erlaubt „deep linking“ und Zurück Funktionalität von Browser

Page 37: Vergiss Java konzentrier Dich auf Script @ OOP2013

models/todo.js

Page 38: Vergiss Java konzentrier Dich auf Script @ OOP2013

Collection

Page 39: Vergiss Java konzentrier Dich auf Script @ OOP2013

JavaScript Magie

slice.call(arguments)convert arguments object to array

call vs. applyexplicite vs. array parameter

Page 40: Vergiss Java konzentrier Dich auf Script @ OOP2013

Todo View

Page 41: Vergiss Java konzentrier Dich auf Script @ OOP2013

Todo Template

Page 42: Vergiss Java konzentrier Dich auf Script @ OOP2013

Haupt View

Page 43: Vergiss Java konzentrier Dich auf Script @ OOP2013

Hinzufügen der Todos

Page 44: Vergiss Java konzentrier Dich auf Script @ OOP2013

Und jetzt kommen wir zum Router?

Page 45: Vergiss Java konzentrier Dich auf Script @ OOP2013

Zusammenfassung

• JavaScript ist wie Fahrrad fahren!

• Es ist nicht schwer und Umweltfreundlich

• Vergisst aber den Helm nicht

Page 46: Vergiss Java konzentrier Dich auf Script @ OOP2013

Fragen?

Page 47: Vergiss Java konzentrier Dich auf Script @ OOP2013

Danke!http://twitter.com/iceX33