Flo/Froh: Buzz! HTML5 Audio Demo
Do What te fuck you want licence
Froh:
Diskussion über EntityBaseModel in einem Wicket-Projekt
Wicket: Java-Web-Framework, Verpackung von angezeigten Daten in Models, relativ normales Model aber einfacher (set/get)
deserialisierung der session beim Request, wieder serialisierung
⇒ alles soll serialisierbar sein
detachable (wird bei serialisierung verworfen)
Umgang mit sowohl objekten in der Datenbank als auch noch nicht gespeicherten
ggf. auch neuladen
Kritikpunkt: Vermischung von Objekten mit DB-hintergrund/ transient und nicht-t
Problemlösung:
entweder Verwendung (nicht schön)
oder Erweiterung aber dann Abhängigkeit, Verhindert erweiterbarkeit weil sonst erbende Klassen zerstört
Code gewachsen als Ansatz zu Framework-Code aber ohne die entsprechenden Vor-Überlegungnen
UI-Komponenten verlassen sich auf genau diese Implementierung
wie kann man sowas verhindern?
Joe: Meint das Wrapper statt Inheritance
Factory, die Model mit gewünschten Fähigkeiten erzeugt
Diskussion über die Verwendung von Reflections
API: anfällig?
Joe: Aktion von vor 3 Jahren, 3 Tage coding, verwerfen, am 4. Tag Umsetzung des Konzepts: keine «ausgefüllten Obkekte» vom Client, sondern nur Requests zur Änderung
-
Mapping: UI-Model ⇔ Entitties in DB
Entities Ziel: Vorhalten von Daten
zweite Verwendung für Transfer
Konflikt, besser Vorüberlegung
Frage in die Runde: Welche Erfahrungen habt ihr gemacht?
Thomas: d.h. ihr refactort jetzt
Froh: Zum glück regelmäßig
Sinnvolles Refactoring: Management wusste nicht was geht, Team nicht was der Kunde will ⇒ Demos und regelmäßiges Verwerfen von Teilen der Architektur zu iterativen Annäherung
Joe:
Empfehlung Froh: cleancoders.com Videos
Wie kann man den Spagat machen zwischen notwendigem speziellem Wissen und der gewünschten Abstraktion
Wir können refactorn, aber momentan einfach weil noch nicht released
Einschub Testing
* Joel Spolsky: Don't Let Architecture Astronauts scare you ( http://german.joelonsoftware.com/Articles/ArchitectureAstronauts.html )
* Froh Bsp: Architekt mit der Idee: Treiben der Architektur durch Ansporn zu Ideen, Doku etc. statt vorschreiben
* Architkekturdeifinition: Summe aller Design-Entscheidungen
* Anekdote:
wie komme ich an diese Summe aller Designentscheidungen
muss jetzt alles in Subversion
Suche? geht nicht!
nicht dokumentiert: Welche entscheidungen sind wie alt/ nocht gültig etc.
* Froh: Nichts ersetzt Treffen und Gespráche (zum Abgleich der unterbewusster Erwartungen)
* Joe: constructor creep:
Flo: coole Sache in Python: named arguments
* Diskussion: Wie kann man google-stabile IDs für Artikel in einem Publishing-System erzeugen, die leicht zu der neueren Version führt?
Compound Key mit Quelle, Verwendung, Lokalisierung, Format etc.
Brute Force: Liste geänderter elemente ⇒ Liste nachfolgender portentiell geänderter Elemente
Distributed Responsibility: