Power Workshops
CouchDB – Eine Einführung
Kore Nordmann
Qafoo
|
Dieser Workshop wird einen Einstieg in die Möglichkeiten von CouchDB, einer dokumentenorientierten, skalierbaren Datenbank geben. Es werden die grundlegenden Technologien und Eigenschaften der Datenbank diskutiert, sowie erste Schritte zur Abfrage und Verabreitung von Daten mit Map-Reduce aufgezeigt.
Architektur: Applikationen mit JavaScript richtig aufbauen
Bastian Feder
Liip Ag
|
Unterstützt von den Browser-Herstellern ist die Renaissance von JavaScript in voller Fahrt. Es ist also nur natürlich, dass viele Internetseiten und -Applikationen die Annehmlichkeiten der ansynchronen Kommunikation, der bereitgestellten Rahmenwerke und Bibliotheken und nicht zuletzt der neuen Browsergenerationen nutzen wollen. Segen oder Schmach ist jedoch, dass mit zunehmenden und umfassenderen Einsatz von JavaScript auch Architektur-Überlegungen immer mehr an Bedeutung gewinnen; vorbei ist die Zeit, dass man sogenannten »Spagetti-Code« produzieren sollte. Dieser Workshop dreht sich genau um dieses Thema, Architektur. Ihr Trainer wird Ihnen anhand von Beispielen, die Stärken und Schwächen verschiedener Ansätze erläutern und Ihnen sinnvolle Lösungsansätze an die Hand geben, wie sie Schwächen langfristig umgehen können.
Funktionen und Closures – JavaScript Scoping verstehen
Jakob Westhoff
Qafoo
|
JavaScripts Behandlung von Funktionen als First-Level-Citizens ist eines der mächtigsten Features dieser Sprache. Als JavaScript-Entwickler ist mit Sicherheit auch ihnen bereits die besondere Bedeutung von Funktionen aufgefallen. Eingesetzt zur Lösung der unterschiedlichsten Problemstellungen tauchen diese in den verschiedensten Situationen auf. Sei es als einfacher Callback eines registrierten Ereignisses, oder als Bestandteil eines Objekts, auf dem diese mit dem Schlüsselwort "this" aufgerufen wird. Doch worauf genau bezieht sich "this" bei einer Funktions-Aktivierung? Welche Variablen stehen zur Verfügung und welche nicht? Was hat es mit dem Konzept der Closures auf sich und kann man auf Variablen eines äußeren Kontextes zugreifen oder diese sogar verändern? Welche Dinge sollte man über die spezielle Variable "arguments" wissen? Alle diese Fragen und noch viel mehr werden in dieser Session beantwortet. Durch die Betrachtung diverser Beispiele und die inneren Abläufe einer JavaScript-Engine wird verdeutlicht wie genau Closures und Scoping in JavaScript funktioniert und wo mögliche Fallstricke liegen.
CouchDB – Fortgeschrittene Techniken
Kore Nordmann
Qafoo
|
Dieser Workshop beschäftigt sich mit fortgeschrittenen Map-Reduce-Abfragen an CouchDB und deren Eigenschaften. Anschliessend setzen wir uns mit der Skalierbarkeit von Datenbanken im Allgemeinen und CouchDB im Besonderen auseinander. Dabei wird auf Clustering, Replication, Sharding und Ausfallsicherheit eingegangen.
Dependency Management mit JavaScript
Jakob Westhoff
Qafoo
|
Abhängigkeiten innerhalb von Softwareprojekten sind alles andere als eine Seltenheit. Seien dies Abhängigkeiten auf externe Bibliotheken, oder Abhängigkeiten auf einzelne Bestandteile der eigenen Applikation. Unterschiedliche Sprachen bieten unterschiedliche Lösungsansätze für diese Problematik. Python sucht die nötigen Dateien anhand einer definierten Verzeichnisstruktur für Modul- und Klassennamen. PHP nutzt einen definierten Pfad oder versucht mittels benutzerdefiniertem Autoloader die Dateien mit zugehörigen Klassen zu finden. C und C++ erwarten explizite "include"-Statements, sowie entsprechende Bibliotheksangaben beim späteren Linken der Executable. Viele Sprachen, viele Ansätze. Doch wie geht JavaScript mit dieser Problematik um? Als noch recht junge Sprache bietet JavaScript diverse Lösungsansätze für das Problem des Dependency-Management: Teils sind diese spezialisiert auf Browser, teils auf Server-side-JavaScript, wie nodejs abgestimmt. Aber auch in beiden Umgebungen nutzbares existiert. Dieser Workshop gibt Ihnen einen Überblick über die verschiedenen Techniken, damit Sie sich selbst ein Bild von der für Ihren Anwendungsfall geeigneten machen können.
Prototypen, die etwas andere Objektorientierung
Bastian Feder
Liip Ag
|
Die Modularität von Applikationen ist auch aus der Welt der Internet-Applikationen (RIAs) nicht mehr wegzudenken. Im Gegenteil, es wird immer mehr Wert auf qualitativ hochwertige Software gelegt. Hier kommt objektorientiertes Design (OOD) ins Spiel. JavaScript bietet hier einen spannenden Spielplatz, weil es sich nicht in die Liste der üblichen Verdächtigen einreiht. In diesem Workshop werden Sie einen tiefen Einblick in OOD mit JavaScript bekommen. Ihr Trainer wird Ihnen anhand von praxisnahen Beispielen das sogenannte Prototyping erklären und mit Ihnen einen umfassenden Einblick in diese Technik geben.
Webapplikationen reloaded mit node.js und HTML5 - Die Grundlagen
Thorsten Rinne
Yatego GmbH
Sebastian Springer
Mayflower GmbH
|
Moderne Webapplikationen kann man heute rein mit JavaScript entwickeln, hierfür bietet sich das serverseitige JavaScript-Framework node.js an, welches auf der V8 JavaScript-Engine von Google aufsetzt. Zusammen mit einem HTML5 Frontend mit den vielen neuen JavaScript APIs wie Web Worker und WebSocket lassen sich moderne Applikationen für den Mobil- und Webbereich entwickeln. Sebastian Springer und Thorsten Rinne beschreiben beide Technologien und erläutern die Konzepte und Architektur moderner, event-getriebener Applikationen. Im Anschluss wird noch der aktuelle Stand von CSS3 für eine moderne Gestaltung der Anwendungen dargestellt.
What, why and how to unit test your code
Christian Johansen
gitorious.org
|
In this session I'll introduce you to the wonderful world of automated testing and the wave of confidence and productivity that follows. You'll learn what an automated test is, what it can help you with, and how to write an run it. The workshop will be dense on code. Live coding is used to drive home the "lecturing" parts of the workshop, while attendees will make use of their laptops to work through a set of problems.
Spielend Rich-Internet-Applications entwickeln mit Ext JS
Hans-Christian Otto
crosscan
|
Rich Internet Applications sind in aller Munde und Frameworks dazu sprießen überall aus der Erde. ExtJS ist eines der etablierten RIA-Frameworks in der Javascript-Welt. Es ermöglicht mit einem Objektsystem, dass an Programmiersprachen wie Java angelehnt ist, eine GUI zu entwickeln. Dieser Workshop führt in die Grundkonzepte von ExtJS und seinem Klassensystem ein.
Webapplikationen reloaded mit node.js und HTML5 - Hands-On
Thorsten Rinne
Yatego GmbH
Sebastian Springer
Mayflower GmbH
|
Aufbauend auf den theoretischen Grundlagen, die im ersten Teil des Workshops vermittelt wurden, steigen wir im zweiten Teil in die praktische Umsetzung einer modernen Webapplikation ein. Ziel ist es, die Features, die HTML5 im Zusammenspiel mit CSS3 bietet, mit den Fähigkeiten eines dynamischen Backends auf Basis von Javascript zu kombinieren. Dabei werden die klassischen Elemente einer traditionellen Webapplikation wie beispielsweise einzelne Requests und Persistierung betrachtet und die Applikation um neue Möglichkeiten wie Echtzeitkommunikation über Websockets und Local Storage erweitert. Die Applikation wird dabei auf einer virtuellen Maschine entwickelt, die den Teilnehmern zur Verfügung gestellt wird.
Stubbing and Mocking with Sinon.JS
Christian Johansen
gitorious.org
|
Test spies, stubs and mocks can be very helpful when testing units of functionality separately. In this workshop I will take you for a tour of some "advanced" unit testing/TDD practices, and look at how Sinon's features can help you test "legacy" code, contracts between objects and functions, timers, ajax and more. This workshop requires previous exposure to unit testing/TDD/BDD, and assumes good knowledge of the JavaScript language.
Tiefere Einblicke in die RIA-Entwicklung mit Ext JS
Hans-Christian Otto
crosscan
|
ExtJS bietet eine große Menge von Komponenten an, welche bei der Erstellung von RIAs helfen, und welche nicht User Interface Widgets repräsentieren, sondern auch z.B. die Kommunikation zwischen Client und Server abstrahieren. Dieser Workshop gibt einen tieferen Einblick, wie man Komponenten wie z.B. Datentabellen in größeren Applikationen strukturiert einsetzt.
Mit dem Mobile-Web auf alle Devices
Hans-Christian Otto
crosscan
|
Der Begriff "mobiles Web" in der heutigen IT-Landschaft bezieht sich nicht mehr nur auf ein für Mobiltelefone zugeschnittenes Webseitenangebot, sondern auch auf komplexe Applikationen für eine Vielzahl verschiedener Geräte. Dieser Workshop zeigt sowohl Wege, Websites für Mobile Endgeräte anzupassen, als auch Wege, mit Webtechnologien mobile, plattformübergreifende, Applikationen zu entwickeln. Außerdem wird ein einfacher Weg vorgestellt, diese Applikationen über die diversen AppStores zu vertreiben.
TDD in the browser
Christian Johansen
gitorious.org
|
When creating applications for the browser, we frequently stumble upon APIs that are hard to test: The DOM, Ajax requests, various event handlers and more. In this workshop you will learn how to apply TDD to the unfriendly browser environment and still keep your code clean, loosely coupled and always in a working state. As it turns out, TDD is a design discipline, and this session emphasizes design and how design solves most of the "hard to test" problems in web applications.
jQuery's Vielfalt
Bastian Feder
Liip Ag
|
"Kennt man eine, kennt man alle."… ist einer der Aussagen, die man hört, wenn es um Rahmenwerke oder Bibliotheken geht. Das Gegenteil ist jedoch der Fall. Der Teufel liegt wie meist im Detail. Ihr Trainer, Bastian Feder, wird Sie in diesem Workshop in die tiefen Windungen des JavaScript Frameworks jQuery einführen. Er wird Ihnen zeigen, dass es um weit mehr, als nur um »langweilige« Manipulationen des Document Object Modells geht. Neben vielen anderen Themen, werden Sie ihre eigenen CSS-Selektoren definieren, Custom Events emmitieren und verarbeiten und sich über versteckte Optionen und Funktionalitäten des Rahmenwerkes hermachen und diese zu Ihren Gunsten verändern.
Multi-Platform Webapplikationen mit Sencha Touch entwickeln
Hans-Christian Otto
crosscan
|
Wenn die Entscheidung getroffen wird, eine Mobile Applikation mit Webtechnologien zu entwickeln, stellt sich häufig die Frage nach einem Framework, dass sich als Sprungbrett anbietet. Eines dieser Frameworks ist der kleine Bruder von ExtJS — „Sencha Touch“. Sencha Touch ermöglicht es, objektorientiert eine Mobile Applikation mit Javascript zu entwickeln, die ein User Interface bietet, welches an die Nativen User Interfaces von mobilen devices angelehnt ist, ohne sich dabei auf einzelne Devices zu beschränken.
CouchApps – CouchDB als Umgebung für Applikationen
Kore Nordmann
Qafoo
|
Da mit CouchDB über HTTP kommuniziert wird, lassen sich Web-Applikationen vollständig aus einer CouchDB ausliefern - Daten und statische Seiten. Mit den in CouchDB eingebauten Features für VHosts, Rewrites und Absicherung von Anfragen lassen sich sogar ernsthafte Web-Applikationen entwickeln. Zusammen mit den Replikations- und Offline-Synchronizations-Fähigkeiten eröffnen diese gerade für mobile Appliaktionen neue Möglichkeiten.
CoffeeScript – Das etwas andere JavaScript
Jakob Westhoff
Qafoo
|
JavaScript ist eine extrem mächtige und durchaus elegante Sprache. Vielerorts wirkt JavaScript Quelltext jedoch unsauber und unübersichtlich. Leider bringen die vielen Freiheiten dieser Sprache ebenfalls die Freiheit mit sich dreckigen Code zu schreiben. Wie lässt sich dieses Problem also lösen? Sauberes JavaScript zu schreiben ist möglich, jedoch schwer innerhalb eines Teams durchzusetzen. CoffeeScript stellt eine weitere Lösung für dieses Problem dar. Hierbei handelt es sich um eine eigenständige Sprache, welche in reines JavaScript compiliert wird. CoffeeScript bietet viele in JavaScript eher umständlich umzusetzende Features als Sprachkonstrukte an und zwingt durch seine an Python angelehnte einrückungsbasierte Blocksyntax alle Entwickler einen einheitlicheren Codingstyle zu pflegen. Es gibt viele Gründe für und auch viele Gründe gegen den Einsatz von CoffeeScript. Machen Sie sich in dieser Session anhand von vielen Beispielen selbst ein Bild, um zu entscheiden, ob diese Sprache Ihnen nicht vielleicht doch das Leben leichter machen kann.
Workshops
- CouchDB – Eine Einführung
- Architektur: Applikationen mit JavaScript richtig aufbauen
- Funktionen und Closures – JavaScript Scoping verstehen
- CouchDB – Fortgeschrittene Techniken
- Dependency Management mit JavaScript
- Prototypen, die etwas andere Objektorientierung
- Webapplikationen reloaded mit node.js und HTML5 - Die Grundlagen
- What, why and how to unit test your code
- Spielend Rich-Internet-Applications entwickeln mit Ext JS
- Webapplikationen reloaded mit node.js und HTML5 - Hands-On
- Stubbing and Mocking with Sinon.JS
- Tiefere Einblicke in die RIA-Entwicklung mit Ext JS
- Mit dem Mobile-Web auf alle Devices
- TDD in the browser
- jQuery's Vielfalt
- Multi-Platform Webapplikationen mit Sencha Touch entwickeln
- CouchApps – CouchDB als Umgebung für Applikationen
- CoffeeScript – Das etwas andere JavaScript

