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

Post on 20-Jan-2015

221 views 0 download

description

 

Transcript of 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

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

Webapplikationen?

vs

einfache Webseiten mit wenig Interaktion geocities? anyone?

Umfangreiche Webapplikationen Verhalten sich wie Applikationen

z.B. cloud9IDE

Webapplikationen• Multi-User-Systeme

• Benutzer interagiert mit der Anwendung

• Daten werden persistiert

• Browser als Laufzeitumgebung

• Logik auf Client und Server

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 im Umgang mit der Technologie

• Evaluation

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: Bugfixes, Support, Community

• Die meisten Webframeworks sind Open Source

Frameworks und Tools

3. Ressourcen?

Kurt Michel / pixelio.de

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

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 Transaktionen

• Features, die Umsatz für das Unternehmen bedeuten

Qualitätssicherung• Manuelle Testpläne

• Automatisierte Tests

• Unittests

• Statische- und dynamische Codeanalyse

• Metriken

• Der richtige Grad zwischen Kosten und Nutzen

Continuous Inspection & Integration

5. Umgebung

berggeist007 / pixelio.de

Umgebung

• Die Serverkomponente ist unter unserer Kontrolle

• Die Clientkomponente nicht

• Unterschiedliche Systeme, Browser, Auflösungen

Feature Detection vs Browser Sniffing

Modernizr

• Prüft, ob ein Feature existiert

• Option, zusätzliche Dateien zu laden

• Polyfills - ersetzen natives Verhalten durch Alternativen

6. Aktualisierung der Daten

Tim Reckmann / pixelio.de

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

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

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 Markt

• Viele Unternehmen releasen täglich oder wöchentlich

• Ein Fehler beim Kunden, der innerhalb von 5 Minuten behoben ist, ist OK

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 fällt nur das weg, was nicht geht

• Keine weißen Seiten, niemals!

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

9. Erweiterbarkeit

Bernd Kasper / pixelio.de

Erweiterbarkeit

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

• Neue Features müssen integriert werden

• Erweiterung muss kostengünstig erfolgen

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 Jahre

• Ab einem bestimmten Zeitpunkt wird der Betrieb einer Software teuer

• Rewrite oder doch lieber Modernisierung

• 96% aller Rewrite-Projekte laufen aus Time & Budget

Rewrite

• Kompletter Rewrite mit hohem Risiko

• Modulweiser Rewrite und Parallelbetrieb

• Kontinuierliche Modernisierung von Anfang an

Fragen

Angela Parszyk / pixelio.de

KONTAKT

Sebastian Springer sebastian.springer@mayflower.de !Mayflower GmbH Mannhardtstr. 6 80538 München Deutschland !@basti_springer !https://github.com/sspringer82