@ -3,101 +3,101 @@
## Was
## Was
- Wo findet sich Komplexität
- Wo findet sich Komplexität
- Unterschied Technische Komplexität und Fachliche Komplexität
- Unterschied Technische Komplexität und Fachliche Komplexität
- Schlaue Lösungen / Schlaues Denken
- Schlaue Lösungen / Schlaues Denken
- Reinsteigern in Verfeinerung von Lösungen
- Reinsteigern in Verfeinerung von Lösungen
- Rauszoomen
- Rauszoomen
- Nur langweiliger Code ist guter Code
- Nur langweiliger Code ist guter Code
- Über Dinge reden, die nicht da sind
- Über Dinge reden, die nicht da sind
- Dinge so bauen, dass sie nicht fehlschlagen können
- Dinge so bauen, dass sie nicht fehlschlagen können
- Bei bestehenden Mustern bleiben
- Bei bestehenden Mustern bleiben
- Der Marsianer
- Der Marsianer
- Clojure
- Clojure
- cli build tool
- cli build tool
- Simple vs Easy
- Simple vs Easy
- Functional design patterns
- Functional design patterns
- https://de.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt
- https://de.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt
- Tools -> Spargelschäler der IT-Welt
- Tools -> Spargelschäler der IT-Welt
- https://medium.com/the-minimalist/the-minimalist-programmer-c36e16ebf8ef
- https://medium.com/the-minimalist/the-minimalist-programmer-c36e16ebf8ef
- Definitionen von Complexity
- Definitionen von Complexity
- Complexity is anything that makes software hard to understand or to modify.
- Complexity is anything that makes software hard to understand or to modify.
- Wieviel Dinge muss man im Kopf behalten, um eine Aufgabe umsetzen zu können
- Wieviel Dinge muss man im Kopf behalten, um eine Aufgabe umsetzen zu können
- Dazu zählt auch eine gute Umgebung - IDE und Arbeitsumgebung
- Dazu zählt auch eine gute Umgebung - IDE und Arbeitsumgebung
- Wieviele Aufgaben wurden mir erteilt
- Wieviele Aufgaben wurden mir erteilt
- In wie vielen Projekten stecke ich drin
- In wie vielen Projekten stecke ich drin
- Aussagen zu Complexity
- Aussagen zu Complexity
- Complexity is more apparent to readers than to writers. If other people think a piece of code is complex, it is
- Complexity is more apparent to readers than to writers. If other people think a piece of code is complex, it is
- Isolating complexity in places that are rarely interacted with is roughly equivalent to eliminating complexity.
- Isolating complexity in places that are rarely interacted with is roughly equivalent to eliminating complexity.
- Complexity is caused by obscurity and depen dencies.
- Complexity is caused by obscurity and depen dencies.
- Lindbergh war der Meinung, dass beim Ausfall eines Motors eines voll beladenen mehrmotorigen Flugzeugs die verbleibenden Motoren die Maschine auch nicht in der Luft halten könnten. Das Risiko eines Motorenausfalls steige aber mit der Zahl der Motoren.
- Lindbergh war der Meinung, dass beim Ausfall eines Motors eines voll beladenen mehrmotorigen Flugzeugs die verbleibenden Motoren die Maschine auch nicht in der Luft halten könnten. Das Risiko eines Motorenausfalls steige aber mit der Zahl der Motoren.
- https://de.wikipedia.org/wiki/Spirit_of_St._Louis
- https://de.wikipedia.org/wiki/Spirit_of_St._Louis
- Messy codebase die funktioniert, ist besser als eine saubere, die nicht funktioniert
- Messy codebase die funktioniert, ist besser als eine saubere, die nicht funktioniert
- Sarah Mei: Carving services out of a monolith and carving objects out of a large class are the same skill
- Sarah Mei: Carving services out of a monolith and carving objects out of a large class are the same skill
- Object boundaries sind einfacher anzupassen als service boundaries
- Object boundaries sind einfacher anzupassen als service boundaries
- Was will man mit einer Architektur erreichen?
- Was will man mit einer Architektur erreichen?
- Einfache Erweitbarkeit
- Einfache Erweitbarkeit
- Der Fachlichkeit gerecht werden
- Der Fachlichkeit gerecht werden
- Best Practices einhalten
- Best Practices einhalten
- Technologische Neugier befriedigen
- Technologische Neugier befriedigen
- Dem Code Struktur geben
- Dem Code Struktur geben
- Wo will man lose Kopplung erhalten?
- Wo will man lose Kopplung erhalten?
- DB und Backend, Applikationen, Services, Layer, Slices, Klassen, Objekten, Funktionen
- DB und Backend, Applikationen, Services, Layer, Slices, Klassen, Objekten, Funktionen
- Wer kennt die Anforderungen
- Wer kennt die Anforderungen
- Tradeoff zwischen Cost of Understanding und Cost of Change
- Tradeoff zwischen Cost of Understanding und Cost of Change
- Was sind Layer
- Was sind Layer
- Systemgrenzen
- Systemgrenzen
- Klassengrenzen
- Klassengrenzen
- Packages
- Packages
- Proxies in Menschenkommunikation
- Proxies in Menschenkommunikation
- Architekturgewichse
- Architekturgewichse
- Patterns
- Patterns
- Factory
- Factory
- Decorator
- Decorator
- Systemische Hürden
- Systemische Hürden
- Docker
- Docker
- Paradigmenwechsel
- Paradigmenwechsel
- Coderauschen
- Coderauschen
- Wer hat schon OO so richtig verstanden?
- Wer hat schon OO so richtig verstanden?
- Warum benutzen wir es denn?
- Warum benutzen wir es denn?
- Teamowner lädt jemanden in ein Team ein, Eingeladener erhält Mail
- Teamowner lädt jemanden in ein Team ein, Eingeladener erhält Mail
- Entities: Team, Owner, Account, Member
- Entities: Team, Owner, Account, Member
- Wer ist Akteur?
- Wer ist Akteur?
- Wo ist das Aggregate Root?
- Wo ist das Aggregate Root?
- DDD oder OO nach ursprünglicher Lehre?
- DDD oder OO nach ursprünglicher Lehre?
- Domänenservice?
- Domänenservice?
- Wer verschickt die E-Mail?
- Wer verschickt die E-Mail?
- Event-Hub?
- Event-Hub?
- Für ein Programm, das < 5k Locs hat und zwei verschiedene Events ?
- Für ein Programm, das < 5k Locs hat und zwei verschiedene Events ?
- Wer hindert mich daran, alles in den MVC-Controller zu packen und es funktioniert?
- Wer hindert mich daran, alles in den MVC-Controller zu packen und es funktioniert?
- Refactoring ist immernoch möglich
- Refactoring ist immernoch möglich
- Tesla wird von einer Reihe Python-Skripten zusammengehalten
- Tesla wird von einer Reihe Python-Skripten zusammengehalten
- https://twitter.com/atomicthumbs/status/1032939617404645376
- https://twitter.com/atomicthumbs/status/1032939617404645376
- Alles hat seine Kosten
- Alles hat seine Kosten
- Ist man bereit sie zu zahlen
- Ist man bereit sie zu zahlen
- Ist es wert
- Ist es wert
- Hat man genug Budget
- Hat man genug Budget
- SOLID
- SOLID
- Single Responsibility
- Single Responsibility
- Was ist eine Responsibility überhaupt
- Was ist eine Responsibility überhaupt
- Open/Closed
- Open/Closed
- Aber wir wollen doch Code ändern können!
- Aber wir wollen doch Code ändern können!
- "Code bauen ist einfacher, als ihn zu verändern"
- "Code bauen ist einfacher, als ihn zu verändern"
- Mehr Code oben drauf? Ernsthaft?
- Mehr Code oben drauf? Ernsthaft?
- Liskov substitution
- Liskov substitution
- A: B, überall wo A, auch B benutzen können
- A: B, überall wo A, auch B benutzen können
- Composition over Inheritance?
- Composition over Inheritance?
- Wer kümmert sich schon darum?
- Wer kümmert sich schon darum?
- Interface Segregation
- Interface Segregation
- Keine großen Klassen!
- Keine großen Klassen!
- Ach was
- Ach was
- Dependency Inversion
- Dependency Inversion
- Von Abstraktionen abhängen
- Von Abstraktionen abhängen
- Interface - Impl
- Interface - Impl
- DI ist Implementierung von D
- DI ist Implementierung von D
- Objekte reingeben lassen
- Objekte reingeben lassen
- Entscheidungen nach außen delegieren
- Entscheidungen nach außen delegieren
- Gute Idee
- Gute Idee
- Global State?
- Global State?
- Wer kennt überhaupt alle einzelnen Bedeutungen
- Wer kennt überhaupt alle einzelnen Bedeutungen
- Ist es dann so wichtig?
- Ist es dann so wichtig?
- Verhalten testen, nicht Implementierung
- Verhalten testen, nicht Implementierung