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

44

description

 

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

Page 1: 10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
Page 2: 10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung

WER BIN ICH?

• Sebastian Springer

• https://github.com/sspringer82

• @basti_springer

• Consultant, Trainer, Autor

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

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

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

Webapplikationen?

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

vs

einfache Webseiten mit wenig Interaktion geocities? anyone?

Umfangreiche Webapplikationen Verhalten sich wie Applikationen

z.B. cloud9IDE

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

Webapplikationen• Multi-User-Systeme

• Benutzer interagiert mit der Anwendung

• Daten werden persistiert

• Browser als Laufzeitumgebung

• Logik auf Client und Server

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

Die schöne heile Welt?

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

1. Auswahl

Dieter Schütz / pixelio.de

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

Sprachen, Frameworks Entwicklungsumgebungen

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

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

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

Webentwicklung, kein Glaubenskrieg

pepsprog / pixelio.de

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

2. Software von der Stange?

lichtkunst.73 / pixelio.de

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

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

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

Frameworks und Tools

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

3. Ressourcen?

Kurt Michel / pixelio.de

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

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

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

Ressourcen

• Minifizierung von HTML, CSS, JavaScript

• CSS Sprites

• Gezippte Kommunikation zwischen Client und Server

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

4. Qualitätssicherung

uygar sanli / pixelio.de

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

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

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

Qualitätssicherung• Manuelle Testpläne

• Automatisierte Tests

• Unittests

• Statische- und dynamische Codeanalyse

• Metriken

• Der richtige Grad zwischen Kosten und Nutzen

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

Continuous Inspection & Integration

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

5. Umgebung

berggeist007 / pixelio.de

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

Umgebung

• Die Serverkomponente ist unter unserer Kontrolle

• Die Clientkomponente nicht

• Unterschiedliche Systeme, Browser, Auflösungen

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

Feature Detection vs Browser Sniffing

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

Modernizr

• Prüft, ob ein Feature existiert

• Option, zusätzliche Dateien zu laden

• Polyfills - ersetzen natives Verhalten durch Alternativen

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

6. Aktualisierung der Daten

Tim Reckmann / pixelio.de

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

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

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

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

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

7. Releases

Rainer Sturm / pixelio.de

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

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

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

Wie machen die das denn?

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

Releases• Agile Entwicklung

• Feature-Toggles

• Multi-Varianten Testing

• Sehr viel messen

• Roll-Back-Strategien

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

8. Performance

Thomas Siepmann / pixelio.de

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

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!

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

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

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

9. Erweiterbarkeit

Bernd Kasper / pixelio.de

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

Erweiterbarkeit

• In den seltensten Fällen ist eine Webapplikation wirklich fertig

• Neue Features müssen integriert werden

• Erweiterung muss kostengünstig erfolgen

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

Nicht erweiterbar === tot

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

Erweiterbarkeit

• Modularer Aufbau

• Lose Kopplung

• Verwendung Schnittstellen

• Keep it Simple

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

10. Rewrite?

Lupo / pixelio.de

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

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

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

Rewrite

• Kompletter Rewrite mit hohem Risiko

• Modulweiser Rewrite und Parallelbetrieb

• Kontinuierliche Modernisierung von Anfang an

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

Fragen

Angela Parszyk / pixelio.de

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

KONTAKT

Sebastian Springer [email protected] !Mayflower GmbH Mannhardtstr. 6 80538 München Deutschland !@basti_springer !https://github.com/sspringer82