Inhaltsverzeichnis

12. Funktionen und Methoden

Themen
Länge: So kurz wie möglich
Fokus: Immer nur eine Aufgabe
Parameter: Je weniger, desto besser
Modularität: Don't Repeat Yourself
Folien
PDF
Glossar
PDF


Zentrale Aspekte

Fragen zur Vertiefung und Wiederholung

Diese Fragen dienen der persönlichen Beschäftigung mit der Thematik, werden aber nicht separat in der Vorlesung besprochen.

Grenzen sinnvoller Abstraktion

Die Frage, die sich immer stellt: Wann ist eine sinnvolle Grenze der Abstraktion erreicht? Das Gegenprinzip zu DRY („Don't repeat yourself“) lautet nicht umsonst YAGNI („You ain't gonna need it“). Letztlich ist das immer eine Einzelfallentscheidung. Wenig überraschend hat Randall Munroe in seinem XKCD-Webcomic diese Frage mehrfach aufgegriffen:

I find that when someone's taking time to do something right in the present, they're a perfectionist with no ability to prioritize, whereas when someone took time to do something right in the past, they're a master artisan of great foresight.
Abbildung 1: XKCD 974: The General Problem. © Randall Munroe, CC-By-NC 2.5, https://xkcd.com/974/. Man beachte hier besonders (wie bei jedem xkcd-Comic) den zusätzlichen Text, der als „Tooltip“ erscheint, wenn man den Mauszeiger über das Bild bewegt…
Don't forget the time you spend finding the chart to look up what you save. And the time spent reading this reminder about the time spent. And the time trying to figure out if either of those actually make sense. Remember, every second counts toward your life total, including these right now.
Abbildung 2: XKCD 1205: Is It Worth the Time?. © Randall Munroe, CC-By-NC 2.5, https://xkcd.com/1205/. Man beachte hier besonders (wie bei jedem xkcd-Comic) den zusätzlichen Text, der als „Tooltip“ erscheint, wenn man den Mauszeiger über das Bild bewegt…
'Automating' comes from the roots 'auto-' meaning 'self-', and 'mating', meaning 'screwing'.
Abbildung 3: XKCD 1319: Automation. © Randall Munroe, CC-By-NC 2.5, https://xkcd.com/1319/. Man beachte hier besonders (wie bei jedem xkcd-Comic) den zusätzlichen Text, der als „Tooltip“ erscheint, wenn man den Mauszeiger über das Bild bewegt…

Weiterführende Literatur

Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.

Funktionen sind ein wesentlicher Aspekt von sauberem und lesbarem Code. Entsprechend prominient wird die Thematik von Robert C. Martin in seinem Buch „Clean Code“ [Martin, 2008Martin, Robert C. (2008): Clean Code. A Handbook of Agile Software Craftmanship, Prentice Hall, Upper Saddle River, New Jersey] und dort in Kapitel 3 behandelt.

Weitere gute Hinweise finden sich in Kapitel 7 in [McConnell, 2004McConnell, Steve (2004): Code Complete. A practical handbook of software construction, Microsoft Press, Redmond, Washington].

Ein sehr lesenswertes Buch ist „The Art of UNIX Programming“ von Eric S. Raymond [Raymond, 2004Raymond, Eric S. (2004): The Art of UNIX Programming, Addison Wesley, Boston]. Hier findet der geneigte Leser sehr viele Beispiele und eine solide Einführung in die Grundprinzipien von UNIX, neben vielen Tipps für wirklich modulare Programme.