Overengineering: Weniger ist mehr | handbuch-programmieren.de (2024)

handbuch-programmieren.de

Ein praxisnahes Handbuch für Programmierer und alle die es werden wollen.

Aktualisiert am 26.06.2019

4. Vom Anfänger zum Profi

Overengineering ist ein Problem, mit dem jeder Programmierer im Laufe seiner Karriere zu kämpfen hat, wahrscheinlich sogar immer wieder. Wir Entwickler haben schöpferische Qualitäten, können mit ein einfachen Fingerbewegungen ganze Welten erschaffen. Und wenn wir nicht gerade Probleme von Kunden lösen, werkeln wir schon am nächsten Design Pattern um unsere eigenen Probleme bei der Entwicklung zu lösen oder erträglicher zu machen. Selbst wenn es nicht von uns verlangt wird: wir denken voraus, um die Ecke und drüber und drunter, um Probleme zu vermeiden, uns die Arbeit zu erleichtern oder einfach weil wir gerne unsere Welt in Ordnung halten.

An sich sind das alles durchaus wünschenswerte Eigenschaften. Blöderweise sorgen genau diese Dinge dafür, dass wir manchmal über die Stränge schlagen und versuchen Probleme zu lösen, die wir gar nicht haben. Zum Beispiel versuchen wir in der Programmierung gerne die Anforderungen von morgen mitzudenken, um nicht irgendwann alles um- oder neu bauen zu müssen. Das mag heute vielleicht ein bisschen mehr Arbeit sein, spart uns dafür aber in der Zukunft sehr viel Zeit, weil wir ja schon alles vorbereitet haben. Das mag auch so sein, wenn diese Zukunft tatsächlich eintritt; da wir aber nicht hellsehen können, kann es durchaus sein, dass wir uns irren und in der Zukunft ganz andere Anforderungen auf uns zukommen.

Das Schwierige and der Sache ist hier nicht nur, dass wir Arbeitszeit verschwendet haben, um eine Lösung für ein Problem vorzubereiten, dass wir am Ende gar nicht haben. Mindestens genauso kritisch ist, dass wir unseren Code unnötig verkompliziert haben und technische Schulden aufgebaut haben, die wir irgendwann wieder auflösen müssen, um an dem Code sinnvoll weiterarbeiten zu können.

Es macht nicht nur aus Gründen der akuten Zeitersparnis Sinn, deinen Code so einfach wie möglich zu halten. Ganz abgsehen davon, dass weniger Code schneller zu schreiben ist, ist weniger Code desweiteren einfacher zu verstehen, sondern auch leichter zu ändern, zu warten und zu erweitern.

Gerade zu Beginn deiner Karriere wirst du so viele Möglichkeiten kennenlernen, Probleme zu lösen, dass du dich kaum gegen den Wunsch wehren können wirst, diese auch einzusetzen, frei nach dem Prinzip, wer einen Hammer hat, sieht überall Nägel. Aber bei vielen anderen Dingen im Leben ist bei der Programmierung meist weniger mehr. Buzz Andersen hat es mit folgendem Tweet meines Erachtens schön auf den Punkt gebracht:

I think most programmers spend the first 5 years of their career mastering complexity, and the rest of their lives learning simplicity.

— Buzz Andersen (@buzz) December 30, 2009

Overengineering betrifft übrigens nicht nur die Lösungen, die du in Code gießt. Auch die Entscheidung zu gewissen Best Practices, Design Patterns und dergleichen kann klar ein Fall von Overengineering sein. Wenn du dich für ein bestimmtes Pattern zu Beginn deines Projekts entscheidest, aber im Laufe der Entwicklung feststellst, dass das Pattern dich mehr Zeit und Mühe kostet als es dir Nutzen bringt, dann solltest du dich nicht scheuen, dieses Pattern über Bord zu werfen.

Am Ende geht es immer darum, deine Zeit möglichst effizient einzusetzen, damit du an den Dingen arbeiten kannst, die Spaß machen. Nicht umsonst gibt's in der Entwicklungswelt gleich mehrere Akronyme, die das Prinzip des Minimalismus bewerben: KISS (keep it simple stupid) oder YAGNI (you ain't gonna need it) zum Beispiel.

Anstatt drauflos zu coden, solltest du zweimal nachdenken, ob du dieses Feature tatsächlich brauchst und ob deine Lösung die einfachste ist, die dir einfällt. Stell dich darauf ein, dass sich die Anforderungen ändern und du deinen Code immer wieder anfassen wirst, was wesentlich einfacher wird, je einfacher dein Code und deine Lösungen sind. Ziehe zwischendurch Bilanz, ob deine Arbeitsweise und Design Patterns ihrem Ziel gerecht werden oder du dir selbst im Weg stehst.

Am Ende wirst du es dir selbst danken. Und mach dir keine Sorgen, wenn das mit der Einfachheit nicht sofort klappt: wahre Einfachheit erreichst du sowieso nicht mit dem ersten Wurf, sondern erst über Iteration.

Wer noch mehr zu diesem Thema lesen möchte, hier eine Auswahl an spannenden Artikeln zum Thema:

Nächstes Kapitel:

Refactoring: Nur durch Iteration wird Code richtig gut

Overengineering: Weniger ist mehr | handbuch-programmieren.de (2024)
Top Articles
75 Homemade Mussel Recipes PDF, Epub Download
The Tragic Demise Of Nikki Catsouras
Bank Of America Financial Center Irvington Photos
Craigslist Monterrey Ca
Euro (EUR), aktuální kurzy měn
Lifebridge Healthstream
oklahoma city for sale "new tulsa" - craigslist
Myhr North Memorial
Dr Doe's Chemistry Quiz Answer Key
Tugboat Information
Uvalde Topic
Planets Visible Tonight Virginia
R Tiktoksweets
Inside California's brutal underground market for puppies: Neglected dogs, deceived owners, big profits
Programmieren (kinder)leicht gemacht – mit Scratch! - fobizz
Seattle Rpz
Most McDonald's by Country 2024
Cvs Appointment For Booster Shot
Charter Spectrum Store
Aspen Mobile Login Help
Kp Nurse Scholars
Hobby Stores Near Me Now
Evil Dead Rise Showtimes Near Regal Sawgrass & Imax
Www.publicsurplus.com Motor Pool
Costco Gas Hours St Cloud Mn
Cars & Trucks - By Owner near Kissimmee, FL - craigslist
Coindraw App
Copper Pint Chaska
How rich were the McCallisters in 'Home Alone'? Family's income unveiled
Google Flights To Orlando
Uky Linkblue Login
Plasma Donation Racine Wi
Jeep Cherokee For Sale By Owner Craigslist
About Us | SEIL
Hannibal Mo Craigslist Pets
Claim loopt uit op pr-drama voor Hohenzollern
Hometown Pizza Sheridan Menu
968 woorden beginnen met kruis
Ross Dress For Less Hiring Near Me
Walmart Pharmacy Hours: What Time Does The Pharmacy Open and Close?
All Characters in Omega Strikers
Tripadvisor Vancouver Restaurants
Pulitzer And Tony Winning Play About A Mathematical Genius Crossword
Busted Newspaper Mcpherson Kansas
Rs3 Nature Spirit Quick Guide
Woody Folsom Overflow Inventory
Citizens Bank Park - Clio
2013 Honda Odyssey Serpentine Belt Diagram
Noga Funeral Home Obituaries
Syrie Funeral Home Obituary
Joe Bartosik Ms
Who We Are at Curt Landry Ministries
Latest Posts
Article information

Author: Clemencia Bogisich Ret

Last Updated:

Views: 5524

Rating: 5 / 5 (60 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Clemencia Bogisich Ret

Birthday: 2001-07-17

Address: Suite 794 53887 Geri Spring, West Cristentown, KY 54855

Phone: +5934435460663

Job: Central Hospitality Director

Hobby: Yoga, Electronics, Rafting, Lockpicking, Inline skating, Puzzles, scrapbook

Introduction: My name is Clemencia Bogisich Ret, I am a super, outstanding, graceful, friendly, vast, comfortable, agreeable person who loves writing and wants to share my knowledge and understanding with you.