Was ist eigentlich Over-Engineering? Und wann ist es einfach nur gutes Engineering? Ist das eigentlich immer nur negativ? Oder auch mal positiv? Gibt es auch Under-Engineering? In dieser Episode philosophieren Andy und Wolfgang darüber, wann der Drang nach dem perfekten Source-Code Overenegineering ist und warum es in der akademischen Welt nur dreckig programmiert wird.
Bonus: Warum Wolfgang seine Kletterschuhe nach Tschechien sendet
Feedback an stehtisch@engineeringkiosk.dev oder via Twitter an https://twitter.com/EngKiosk
Andy (https://twitter.com/andygrunwald) und Wolfgang (https://twitter.com/schafele) sprechen im Detail über
Sprungmarken
(00:00) Intro
(01:25) Was ist Over-Engineering?
(03:20) Umfeld vom Over-Engineering und die Anforderungen vom Projekt
(08:15) Ist alter Source-Code Over- oder Underengineered?
(09:00) Leiden Akademiker mehr unter Over-Engineering?
(10:10) Wann weiß ich, ob ich etwas mehr Arbeit in ein Projekt stecken soll?
(11:50) Ist die meiste Java-Software Over-Engineered?
(12:55) Kann man nicht mit alles einfach dreckig starten?
(14:40) Neue Technologie vs. das was ich schon kenne
(17:55) Twitter-Umfrage, was Leute unter Over-Engineering verstehen
(21:50) Das DRY-Prinzip
(25:15) Ein ORM / Object-Relational Mapping
(28:12) Dependency Injection
(30:04) Hackernews Driven Development
(33:20) Positives Over-Engineering
(35:15) Methoden um sich selbst vor dem Over-Engineering zu schützen
(37:30) Wolfgang's Glaskugel
(38:07) Overengineering findet viel zu selten statt
(41:55) Bei Google steht ein staubiger Server im Datacenter, der die Suchmaschine betreibt
(45:23) Underengineering bei der Reparatur von Kletterschuhen
(46:40) Do things that don’t scale - Wie startet man ein Projekt möglichst einfach
(47:55) Over-Engineering in der Automation
(48:35) Fazit
(50:20) Kontakt und Outro
Artikel
- Do things that don't scale von Paul Graham: http://paulgraham.com/ds.html
- Hackernews Driven Development: https://devdriven.by/hn/
- Byte Shifting: https://de.wikipedia.org/wiki/Bitweiser_Operator
Konzepte
- You Aren’t Gonna Need It (YAGNI): https://de.wikipedia.org/wiki/YAGNI
- Don’t repeat yourself (DRY): https://de.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself
Projekte
- Hackernews: https://news.ycombinator.com/
- JavaScript library "left-pad": https://www.npmjs.com/package/left-pad
- Terraform: https://www.terraform.io/
- HashiCorp configuration language: https://github.com/hashicorp/hcl
- Go / Golang: https://go.dev/
Engineering Kiosk Podcast
Anfragen an stehtisch@engineeringkiosk.dev