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

572 views
489 views

Published on

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
572
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×