Die Komplexität eines nützlichen Programms übersteigt die menschliche Auffassungsgabe bei Weitem. Alle Konzepte der Softwareentwicklung zielen deshalb auf die intellektuelle Beherrschbarkeit der Programmierung ab. Funktionen (und in der objektorientierten Programmierung Methoden von Klassen) kommt dabei eine besondere Bedeutung zu: Funktionen sind die erste Ebene der Organisation in jedem Programm.
Um hilfreich für die Übersichtlichkeit und Beherrschbarkeit eines Programms zu sein, müssen Funktionen eine Reihe von Eigenschaften erfüllen: Sie müssen kurz sein, weil nur kurze Funktionen von Menschen in ihrer Gänze erfasst werden können. Funktionen sollten genau eine Sache tun, die dafür aber richtig – das Unix-Prinzip „Do one thing, and do it well“. Innerhalb einer Funktion sollte möglichst eine Abstraktionsebene vorherrschen, da sie sonst schnell schwer verständlich und unnötig lang wird. Schließlich sollten Funktionen so wenige Parameter wie möglich haben. Der Idealfall von Funktionen ohne Parametern ist fast nur in der objektorientierten Programmierung erreichbar, da aber der Regelfall, weil das Objekt bzw. die Klasse den notwendigen Kontext bereitstellt. Wo immer möglich sollte die Reihenfolge mehrerer Parameter aus dem Funktionsnamen eindeutig hervorgehen.
Diese Fragen dienen der persönlichen Beschäftigung mit der Thematik, es werden aber keine Antworten zur Verfügung gestellt.
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.