WER BIN ICH?
• Sebastian Springer	

• https://github.com/sspringer82	

• @basti_springer	

• Consultant,Trainer,Autor
Warum erzähle ich euch
das?
• Wir schlagen uns schon länger mit
Webapplikationen herum
• Wir haben es schon mal falsch gem...
Webapplikationen?
vs
einfache Webseiten
mit wenig Interaktion
geocities? anyone?
Umfangreiche Webapplikationen
Verhalten sich wie Applikatio...
Webapplikationen
• Multi-User-Systeme
• Benutzer interagiert mit der Anwendung
• Daten werden persistiert
• Browser als La...
Die schöne heile Welt?
1. Auswahl
Dieter Schütz / pixelio.de
Sprachen, Frameworks
Entwicklungsumgebungen
Auswahl
• Es gibt nicht die eine richtige Sprache
• Die gewählte Technologie sollte sich für die Lösung
eignen
• Erfahrung...
Webentwicklung, kein
Glaubenskrieg
pepsprog / pixelio.de
2. Software von der
Stange?
lichtkunst.73 / pixelio.de
Frameworks
!
• Nicht für jede Aufgabe das Rad neu erfinden
• Frameworks lösen die meisten Standardprobleme
• Vorteil: Bugfix...
Frameworks und Tools
3. Ressourcen?
Kurt Michel / pixelio.de
Ressourcen?
• Eine der wichtigsten Ressourcen: Bandbreite
• Die Zeiten von Modems und ISDN sind vorbei?
• Geschwindigkeits...
Ressourcen
• Minifizierung von HTML, CSS, JavaScript
• CSS Sprites
• Gezippte Kommunikation zwischen Client und
Server
4. Qualitätssicherung
uygar sanli / pixelio.de
Qualitätssicherung?
• Qualität der Software
• Fehler möglichst früh erkennen
• Umgang mit sensiblen Daten
• Kritische Tran...
Qualitätssicherung
• Manuelle Testpläne
• Automatisierte Tests
• Unittests
• Statische- und dynamische Codeanalyse
• Metri...
Continuous Inspection
& Integration
5. Umgebung
berggeist007 / pixelio.de
Umgebung
• Die Serverkomponente ist unter unserer Kontrolle
• Die Clientkomponente nicht
• Unterschiedliche Systeme, Brows...
Feature Detection vs
Browser Sniffing
Modernizr
• Prüft, ob ein Feature existiert
• Option, zusätzliche Dateien zu laden
• Polyfills - ersetzen natives Verhalten...
6. Aktualisierung der
Daten
Tim Reckmann / pixelio.de
Aktualisierung der Daten
• Webapplikationen sind sehr dynamisch
• Viele Benutzer generieren Daten
• Anzeige der Daten soll...
Aktualisierung der Daten
• Bidirektionale Kommunikation
• Verschiedene Lösungen: Long Polling,
Websockets, etc.
• Strategi...
7. Releases
Rainer Sturm / pixelio.de
Releases
• Die Zeiten von Releasezyklen von einem Jahr und
mehr sind vorbei
• Neue Features/Bugfixes müssen schnell auf den...
Wie machen die das
denn?
Releases
• Agile Entwicklung
• Feature-Toggles
• Multi-Varianten Testing
• Sehr viel messen
• Roll-Back-Strategien
8. Performance
Thomas Siepmann / pixelio.de
Performance
• Benutzer warten nicht gerne
• Wenn Benutzer warten müssen, muss man ihnen
das sagen
• Graceful degrade - es ...
Performance
• Profiling - wo geht die Performance verloren
• Priorisierte Performanceverbesserungen - die
Cheap Wins zuerst...
9. Erweiterbarkeit
Bernd Kasper / pixelio.de
Erweiterbarkeit
• In den seltensten Fällen ist eine Webapplikation
wirklich fertig
• Neue Features müssen integriert werde...
Nicht erweiterbar === tot
Erweiterbarkeit
• Modularer Aufbau
• Lose Kopplung
• Verwendung Schnittstellen
• Keep it Simple
10. Rewrite?
Lupo / pixelio.de
Rewrite
• Lebenserwartung einer durchschnittlichen
Webapplikation: ca. 5 Jahre
• Lebenserwartung von Frameworkversionen: 2...
Rewrite
• Kompletter Rewrite mit hohem Risiko
• Modulweiser Rewrite und Parallelbetrieb
• Kontinuierliche Modernisierung v...
Fragen
Angela Parszyk / pixelio.de
KONTAKT
Sebastian Springer
sebastian.springer@mayflower.de
!
Mayflower GmbH
Mannhardtstr. 6
80538 München
Deutschland
!
@b...
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
Nächste SlideShare
Wird geladen in …5
×

10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung

673 Aufrufe

Veröffentlicht am

Veröffentlicht in: Software
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
673
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
11
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung

  1. 1. WER BIN ICH? • Sebastian Springer • https://github.com/sspringer82 • @basti_springer • Consultant,Trainer,Autor
  2. 2. Warum erzähle ich euch das? • Wir schlagen uns schon länger mit Webapplikationen herum • Wir haben es schon mal falsch gemacht, deswegen sollt ihr es nicht auch verkehrt machen
  3. 3. Webapplikationen?
  4. 4. vs einfache Webseiten mit wenig Interaktion geocities? anyone? Umfangreiche Webapplikationen Verhalten sich wie Applikationen z.B. cloud9IDE
  5. 5. Webapplikationen • Multi-User-Systeme • Benutzer interagiert mit der Anwendung • Daten werden persistiert • Browser als Laufzeitumgebung • Logik auf Client und Server
  6. 6. Die schöne heile Welt?
  7. 7. 1. Auswahl Dieter Schütz / pixelio.de
  8. 8. Sprachen, Frameworks Entwicklungsumgebungen
  9. 9. Auswahl • Es gibt nicht die eine richtige Sprache • Die gewählte Technologie sollte sich für die Lösung eignen • Erfahrung im Umgang mit der Technologie • Evaluation
  10. 10. Webentwicklung, kein Glaubenskrieg pepsprog / pixelio.de
  11. 11. 2. Software von der Stange? lichtkunst.73 / pixelio.de
  12. 12. Frameworks ! • Nicht für jede Aufgabe das Rad neu erfinden • Frameworks lösen die meisten Standardprobleme • Vorteil: Bugfixes, Support, Community • Die meisten Webframeworks sind Open Source
  13. 13. Frameworks und Tools
  14. 14. 3. Ressourcen? Kurt Michel / pixelio.de
  15. 15. Ressourcen? • Eine der wichtigsten Ressourcen: Bandbreite • Die Zeiten von Modems und ISDN sind vorbei? • Geschwindigkeitsdrosselung bei Mobilgeräten • Kunden in Strukturschwachen Gebieten • Rechenkapazität auf den Client-Geräten
  16. 16. Ressourcen • Minifizierung von HTML, CSS, JavaScript • CSS Sprites • Gezippte Kommunikation zwischen Client und Server
  17. 17. 4. Qualitätssicherung uygar sanli / pixelio.de
  18. 18. Qualitätssicherung? • Qualität der Software • Fehler möglichst früh erkennen • Umgang mit sensiblen Daten • Kritische Transaktionen • Features, die Umsatz für das Unternehmen bedeuten
  19. 19. Qualitätssicherung • Manuelle Testpläne • Automatisierte Tests • Unittests • Statische- und dynamische Codeanalyse • Metriken • Der richtige Grad zwischen Kosten und Nutzen
  20. 20. Continuous Inspection & Integration
  21. 21. 5. Umgebung berggeist007 / pixelio.de
  22. 22. Umgebung • Die Serverkomponente ist unter unserer Kontrolle • Die Clientkomponente nicht • Unterschiedliche Systeme, Browser, Auflösungen
  23. 23. Feature Detection vs Browser Sniffing
  24. 24. Modernizr • Prüft, ob ein Feature existiert • Option, zusätzliche Dateien zu laden • Polyfills - ersetzen natives Verhalten durch Alternativen
  25. 25. 6. Aktualisierung der Daten Tim Reckmann / pixelio.de
  26. 26. Aktualisierung der Daten • Webapplikationen sind sehr dynamisch • Viele Benutzer generieren Daten • Anzeige der Daten soll möglichst aktuell sein • HTTP als Protokoll sieht vor allem unidirektionale Kommunikation vor
  27. 27. Aktualisierung der Daten • Bidirektionale Kommunikation • Verschiedene Lösungen: Long Polling, Websockets, etc. • Strategien zur Aktualisierung: Request for Reload, Nutzdaten übermitteln • Sichere Verbindung über https und wss
  28. 28. 7. Releases Rainer Sturm / pixelio.de
  29. 29. Releases • Die Zeiten von Releasezyklen von einem Jahr und mehr sind vorbei • Neue Features/Bugfixes müssen schnell auf den Markt • Viele Unternehmen releasen täglich oder wöchentlich • Ein Fehler beim Kunden, der innerhalb von 5 Minuten behoben ist, ist OK
  30. 30. Wie machen die das denn?
  31. 31. Releases • Agile Entwicklung • Feature-Toggles • Multi-Varianten Testing • Sehr viel messen • Roll-Back-Strategien
  32. 32. 8. Performance Thomas Siepmann / pixelio.de
  33. 33. Performance • Benutzer warten nicht gerne • Wenn Benutzer warten müssen, muss man ihnen das sagen • Graceful degrade - es fällt nur das weg, was nicht geht • Keine weißen Seiten, niemals!
  34. 34. Performance • Profiling - wo geht die Performance verloren • Priorisierte Performanceverbesserungen - die Cheap Wins zuerst • Rückmeldungen wie Loading Indicators • Performance ist Responsibilität - Hardware ist billig
  35. 35. 9. Erweiterbarkeit Bernd Kasper / pixelio.de
  36. 36. Erweiterbarkeit • In den seltensten Fällen ist eine Webapplikation wirklich fertig • Neue Features müssen integriert werden • Erweiterung muss kostengünstig erfolgen
  37. 37. Nicht erweiterbar === tot
  38. 38. Erweiterbarkeit • Modularer Aufbau • Lose Kopplung • Verwendung Schnittstellen • Keep it Simple
  39. 39. 10. Rewrite? Lupo / pixelio.de
  40. 40. Rewrite • Lebenserwartung einer durchschnittlichen Webapplikation: ca. 5 Jahre • Lebenserwartung von Frameworkversionen: 2 Jahre • Ab einem bestimmten Zeitpunkt wird der Betrieb einer Software teuer • Rewrite oder doch lieber Modernisierung • 96% aller Rewrite-Projekte laufen aus Time & Budget
  41. 41. Rewrite • Kompletter Rewrite mit hohem Risiko • Modulweiser Rewrite und Parallelbetrieb • Kontinuierliche Modernisierung von Anfang an
  42. 42. Fragen Angela Parszyk / pixelio.de
  43. 43. KONTAKT Sebastian Springer sebastian.springer@mayflower.de ! Mayflower GmbH Mannhardtstr. 6 80538 München Deutschland ! @basti_springer ! https://github.com/sspringer82

×