28
Zeitgemäße Webentwicklung Anforderungen, Vorgehen und Best Practices

Zeitgemäße Webentwicklung

Embed Size (px)

DESCRIPTION

Eine wilde Jagd durch's Gemüßebeet

Citation preview

Page 1: Zeitgemäße Webentwicklung

Zeitgemäße WebentwicklungAnforderungen, Vorgehen und Best Practices

Page 2: Zeitgemäße Webentwicklung

MotivationErfahrungen in Agenturen:Viel Potential ging verloren, weil Vorgehen oft sehr chaotisch.

Besser:Feste Regeln und Strategien um auf der Höhe der aktuellen Anforderungen fokussiert und sorgenfrei entwickeln zu können.

Page 3: Zeitgemäße Webentwicklung

Anforderungen...an das Frontend und Backend.

Page 4: Zeitgemäße Webentwicklung

Separation of Concerns

Page 5: Zeitgemäße Webentwicklung

Lade-Geschwindigkeit● Möglichst wenig HTTP-Requests

○ Konkatenieren von CSS- und JS-Dateien○ Spritesheets

● Minify CSS und JS

● Frühes gezieltes Leeren des Ausgabe-Buffers im Server

Page 6: Zeitgemäße Webentwicklung

Lade-Geschwindigkeit● Bild-Optimierung (verlustfrei)

2.8 KB 1.13 KB ~70%

● Caching Zeiten und Strategie für erzwungenes Neuladen

Page 7: Zeitgemäße Webentwicklung

Lade-Geschwindigkeit

Page 8: Zeitgemäße Webentwicklung

Lade-Geschwindigkeit 1

Page 9: Zeitgemäße Webentwicklung

Lade-Geschwindigkeit 1

2

Page 10: Zeitgemäße Webentwicklung

Lade-Geschwindigkeit 1

23

...

Page 11: Zeitgemäße Webentwicklung

Darstellungs-Ebene (CSS)Features● Transitions zwischen States / Animationen● Responsiveness durch Media Queries● Weitere optische Features in CSS3

Programmierung● Modular (Imports, Nesting und Mixins)● DRY (Variables)● Rad nicht neu erfinden

(Bibliotheken)● Cross-Browser (Bibliotheken und Mixins)● Besseres Namespacing (Nesting)● Minified Kompilierung● On-Change Kompilierung

Page 12: Zeitgemäße Webentwicklung

SASSVariables Nesting Mixins

Page 13: Zeitgemäße Webentwicklung

SASS

main.scss

*.scss *.scss *.scss *.scss *.scss *.scss *.scss *.scss

styles.css

Page 14: Zeitgemäße Webentwicklung

ResponsivenessVerschachtelung mit Media Queries:● nach innen (Graceful Degradation)● nach außen (Progressive Enhancement)

Page 15: Zeitgemäße Webentwicklung

ResponsivenessGraceful Degradation

@media (max-width: 432px)

@media (max-width: 999px)

definierenüberschreibenzurücksetzen

Page 16: Zeitgemäße Webentwicklung

Responsiveness

Page 17: Zeitgemäße Webentwicklung

AjaxVorteile:● Schnell Daten “on the fly” nachladen● Kein neuer Pageload (nur der Zustand ändert sich)● Geringere Serverlast (auch weil cachebar)

Nachteile:

● Es muss auch ohne gehen! (JavaScript, XMLHttpRequest und history.pushState)

● Im Frontend müssen geänderte Zustände “gepusht” werden● Das Backend muss beides unterstützen können:

Initialer Pageload

AJAX-Request

HTML-Wrapper

ContentBootstrap MVC

Page 18: Zeitgemäße Webentwicklung

SicherheitStudie der Cenzic zu Vulnerabilität von Webanwendungen

99% aller getesteten Webanwendungen hatten Sicherheitslücken in 2012

Page 19: Zeitgemäße Webentwicklung

Sicherheit

Sanitization

Top-Level Sanitization

Tiefer-gehende Validierung im Model

Page 20: Zeitgemäße Webentwicklung

SicherheitServerKonfigurationSichtbarkeiten einstellen

Error-Reporting: AUS

HTTP-Header ohne Server-Version

Webserver User nur mit nötigsten Rechten

Page 21: Zeitgemäße Webentwicklung

Barrierefreiheit● Struktur und Semantik (auch SOC!)

● Text-Alternative für graphische Elemente (Wenn Deko dann CSS)● “Unobtrusive” JavaScript● WAI-ARIA (Role, States, tabindex)● Skip-Links● Skalierbarkeit (relative Größenangaben)● Sensibler Umgang mit Plugin-Content, Videos, Sound usw

Page 22: Zeitgemäße Webentwicklung

Barrierefreiheit

Skiplink

Navigation

Content

Titel (richtige Reihenfolge)

Page 23: Zeitgemäße Webentwicklung

Barrierefreiheit WAI-ARIARole

States

Page 24: Zeitgemäße Webentwicklung

Suchmaschinen● Titel (<title>)

○ Reihenfolge beachten (Von Spezifischen zum Allgemeinen)○ kurz aber treffend○ einzigartig, singulär

● Beschreibung <meta name="description" content="...”/>○ Genauere und umfassendere Inhaltsangabe

● URL○ lesbar:

http://www.stephanlindauer.de/blog/post/eintrag-über-thema-xyz

Page 25: Zeitgemäße Webentwicklung

Soziale NetzwerkeKennzeichnung der Relevanten Elemente

Page 26: Zeitgemäße Webentwicklung

HTML

➔ Neue semantische Features

➔ 2D / 3D Kontext

➔ Multimedia

➔ Application Features

➔ CSS3

ABER: Fallback!

Page 27: Zeitgemäße Webentwicklung

Fragen?

Page 28: Zeitgemäße Webentwicklung

Danke für Ihre Aufmerksamkeit