3. 3
• Kai Donato
• Seit Januar 2014 bei der MT AG in Ratingen
• Senior Berater APEX Development
• Themenverantwortlicher HTML5 und JavaScript bei der
DOAG
• Seit über 10 Jahren in der Web-Entwicklung
• Fachinformatiker für Systemintegration
• UNIX-Server und Netzwerkadministration
Über mich
@_KaiDonat
o
9. • Seit dem Jahr 2009 in stetiger Entwicklung (aktuell in Version 7.9.0)
• Serverseitiges JavaScript
• Basiert auf der Chromium JavaScript-Engine V8 (Mittlerweile kann auch Chakra genutzt
werden)
• Lightweight (minimaler Ressourcenverbrauch)
• Problemlos erweiterbar (ca. 466.119 Pakete auf „npmjs.org“ verfügbar. Stand: 22. April 2017)
• Plattformunabhängig
• Non-Blocking
9
Node.js
10. • Wofür setze ich Node.js ein?
• Microservices (klein, flexibel und clustering-fähig)
• APIs (auch als Technologie-Brücke)
• Webserver (nur die minimalen Anforderungen erfüllend)
• Echtzeit-Dienste (Messaging Middleware)
10
Basics
11. • Wofür setze ich nicht Node.js ein?
• Rechenintensive Prozesse ( 🤔)
• CRUD-basierte Anwendungen (Möglich aber mit Vorsicht zu behandeln)
• ...
11
Basics
12. • LTS oder Current Version?
• Mehrere parallele Versionen stehen zur Verfügung
• Sehr schneller Produkt-Zyklus mit neuen Features in der Current Version
• Long Term Support für eine stabile Produktionsumgebung
• Mit Tools wie „NVM“ auch parallel zu betreiben (DEV und PROD)
12
Basics
15. • Umgebungen (Windows, Linux oder MacOS)
• Entwicklungsumgebung (ggf. vorinstallierte Test- und Performance-
Frameworks)
• Testumgebung (Umgebung auf Produktionsniveau mit ausgewählten
Testern)
• Produktionsumgebung (Monitored und weitere andere
Umgebungsparameter)
• Versionierungssystem (Git, SVN etc.)
• Kein Source-Code geht verloren
15
Handwerkszeug
16. • Editor (Sublime Text, Visual Studio Code, Atom, Bracket o.Ä.)
• Plugins für Code Formatting, Linting, Syntax Highlighting etc.
16
Handwerkszeug
21. Jenkins
• Kostenlos (CC by SA 4.0)
• Schnell installiert (wenn man möchte...)
• Enorme Zeitersparnis (wenn die Konfiguration einmal passt)
• Viele Plugins für verschiedene Sprachen und Zwecke
• Gute Integration anderer Dienste (Versionierungs- und Build-Tools)
• Verschiedene Benachrichtigungskanäle (Slack, Email etc.)
21
Continuous Integration / - Deployment