Web Technologien

Modul im Schwerpunkt «Weaving the Web»

Modulbeschreibung

Dem Modul liegt folgende Modulbeschreibung zugrunde.

Aufbau der Veranstaltung

Die Veranstaltung zielt zusammengefasst auf die Erweiterung der Kompetenzen in vier Bereichen:

  • Strukturierung und Initialisierung eines Web-Projekts (structure)
  • Technische Ausrichtung eines Web-Projekts (direction)
  • Nachhaltige Entwicklung im Team und Weiterentwicklung des Teams (cooperation)
  • Technologiescouting (perspectives)

Darüber hinaus sollen die individuellen Web-Coding Skills reflektiert und erweitert werden (improve).

Themen Sommersemester 2019

Folgende Themen, bezogen auf die vier Hauptbereiche der Veranstaltung, werden in diesem Semester bearbeitet. Die Liste ist offen. Vorschläge für weitere/ andere Themen bitte in die Issues.

Direction: JAMstack & Living Styleguides

JAMstack

“Static is the new dynamic”, ist einer der Slogans, der einiger Zeit immer wieder vom JAMstack Lager in der Web-Developer Gemeinde widerhallt. Tatsächlich bietet JAMstack als Architekturansatz und die damit verbundenen Technologien und Konzepte einige wirklich interessante Möglichkeiten. Im Rahmen der Veranstaltung werden verschiedene Ansätze am Beispiel eines Community Website Projekts implementiert und bewertet. Dabei stehen folgende Ziele im Fokus:

  • GIT Managed Content
  • Reusable, Structured Content
  • Meaningful URL for every Page (or Piece) of Content
  • Curlable & Crawlable URLs
  • Isomorphic Rendering: HTML can be rendered on client- and serverside with the same engine
  • Thrifty Data Transfer
  • Good Perceived Performance
  • Minimal Hosting Complexity

Im Modul Web-Development war das Thema JAMstack im letzten Jahr schon auf der Agenda.

Living Styleguides

Dieses Thema ist nicht sonderlich neu, aber gerade bezogen auf das «Cooperation» und «Structure» sehr interessant und eine nachhaltige Implementierung sehr schwer. Gerade in großen, heterogenen und langfristigen Web-Projekten, weiß irgendwann niemand mehr so genau, welche Designelemente und Komponenten es eigentlich gibt, so dass ständig neue oder angepasste Elemente hinzugefügt werden. Mit zunehmender Laufzeit und Komplexität eines Projekts traut sich auch kaum ein Entwickler bestehende Elemente und Komponenten zu modifizieren/ erweitern, weil die Seiteneffekte oftmals schwer abzuschätzen sind. Dadurch entsteht ein sich selbst verstärkender Effekt: die Codebase wird immer größer als auch heterogener und das Design immer inkonsistenter, so lange bis der berüchtigte Satz fällt: „Also eigentlich müsste man das noch mal komplett neu aufbauen.” Damit beginnt das Spiel von vorne.

Living Styleguides sind eine Möglichkeit dieses Problem zu reduzieren und zumindest eine systematische und automatisch erzeugte Übersicht über die Elemente und Komponenten zu erhalten.

Cooperation: Guidelines, Codeconventions und Co.

Wie, auf welcher Basis und mit welchen Hilfsmitteln organisieren, strukturieren und optimieren wir die Arbeit und den Code im Team? Welche Probleme ergeben sich beim arbeitsteiligen Development? Inwieweit helfen Tools, Guidelines und Methodologien beim Web-Development und welche Auswirkungen haben sie auf das Projekt und den resultierenden Code? In diesem Jahr mit einem Fokus auf CSS Methodologien.

Structure: MI Communicate

Die Kommunikationskanäle der Medieninformatik werden momentan konsolidiert und restrukturiert. Eine Reihe der Kanäle sind web-basiert. Wie lassen sich die verschiedenen Projekte und Teilprojekte sinnvoll aufsetzen und verknüpfen?

Perspective: Wohin geht die Reise in den nächsten zwei Jahren?

Web-technologien sind eine extrem dynamische Anwendungsdomäne. Welche Trends sind erkennbar? Wie können diese bewertet und zur Anwendung gebracht werden? Welche Entwicklungen bei der Standardisierung von Web-technolgien sind abzusehen? Welche Frameworks und Polyfills werden ggf. obsolet? Wie ist die Entwicklungslinie bei wichtigen Frameworks? Welche Architekturkonzepte sind zukunftsfähig und warum? Wie entwickeln sich Web-technologien außerhalb des Browsers?

Improve: Kleine Challenges zu verschiedenen Problemstellungen

Übung macht den Meister. Im Rahmen der Veranstaltung werden Challenges zu unterschiedlichen Problemstellungen herausgegeben. Diese müssen innerhalb eines definierten Zeitrahmens, in der Regel zwischen ein und drei Wochen gelöst und nachher innerhalb der Veranstaltung vorgestellt, erläutert und diskutiert werden. Vorschläge für Challenges bitte in die Issues. Die Bearbeitungsdauer einer Challenge sollte maximal 20 Stunden umfassen.

Prüfung/ Bewertung

Die Prüfungsleistung besteht aus einem individuellen Lernportfolio (70% der Gesamtnote) und einer mündlichen Prüfung (30% der Gesamtnote). Das Lernportfolio muss aus mindestens einem Workshop, einem Tutorial, einer Ausarbeitung/Abwägung und einer praktischen Challenge bestehen. Mehr dazu finden sie unter Formate.

Individuelles Lernportfolio

Im Lernportfolio werden alle Zwischen- und Endergebnisse gesammelt, die im Rahmen der Veranstaltung erarbeitet wurden. Das Lernportfolio ist ein Git Repository, das öffentlich auf GitHub zugänglich ist. Alle Ergebnisse müssen über die zugehörige Github.io Seite des Repositories zugänglich sein. Es werden am Ende nicht alle Ergebnisse bewertet, sondern es wird individuell ausgehandelt, welche Endergebnisse bewertet werden. Insgesamt müssen die bewerteten Elemente des Portfolios einem Workload von mindestens 120 Stunden entsprechen. Aus dem Portfolio muss auch hervorgehen, welche Frameworks, Konzepte und wesentlichen Vorarbeit von Dritten für die Erstellung und Darstellung des Portfolios verwendet wurden.

Fachgespräch (mündliche Prüfung)

Im Rahmen einer mündlichen Prüfung werden die Ergebnisse des Lernportfolios vorgestellt und diskutiert. Die Prüfung dauert maximal 20 Minuten. Bitte bereiten Sie sich dahingehend vor, die Ergebnisse und interessanten Aspekte Ihres Lernportfolios vorzustellen und in einem kurzen Fachgespräch zu verteidigen und zu diskutieren.