Grippe überstanden und ich bin wieder unter den lebenden. Los geht es mit einem Artikel der schon ewig in der Queue lag. Er vervollständig die Artikelserie Einblicke in die Software Entwicklung. Funktionen sind in der Entwicklung ein wichtiges Element zur Strukturierung von Quellcode. In manchen Sprachen werden sie auch Subroutinen genannt. Auch im Objektkontext gibt es sie. Da heißen sie Methoden. Dieses essentielle Konzept lernst Du nun kennen.

Warum überhaupt Funktionen?

Bei einer Funktion handelt es sich im wesentlichen um Unterprogramme – daher auch die Bezeichnung Subroutine. Ganz alte Sprachen kannten zwar Sprungbefehle. Im wesentlichen bedeutete Programmausführung die Abarbeitung aller Anweisungen von oben nach unten, eine Zeile nach der anderen. Wenn Du mehrfach die gleiche Logik brauchtest, z.B. Berechnungen anstellen, musstest Du die gleichen Anweisungen mehrfach hinterlegen. Eine separate Funktion löst genau dieses Problem.

Ein Beispiel wäre die Umrechnung von Dollar nach Euro. Stell Dir vor, Du musst in einer Software an mehreren Stellen die Währung umrechnen. Der Normalfall heute: Du hinterlegst eine zentrale Logik – eine Funktion. An allen Stellen wo die Berechnungen notwendig sind, greifst Du auf sie zurück – beliebig oft. Ändert sich der Dollarkurs, änderst Du ihn nur an einer Stelle – nämlich in Deiner Funktion.

Merkmale von Funktionen

Funktionen haben nahezu unabhängig von der gewählten Programmiersprachen grundlegende Eigenschaften. Das ist in den meisten Fällen mindestens der Name. Es gibt auch anonyme Funktionen. Due haben keinen Funktionsnamen.

Außerdem können Funktionen Parameter übernehmen. Die Details sind von Sprache zu Sprache unterschiedlich. Teilweise legst Du die Anzahl im Code statisch fest. Manche Sprachen erlauben aber auch eine dynamische Anzahl an Funktionsparametern. Auch Standardwerte können meist festgelegt werden. Diese werden gesetzt, falls Du den Parameter beim Funktionsaufruf nicht angibst.

Ein letztes Merkmal sind Rückgabewerte. Eine Funktion kann Werte an den Aufrufer zurückgeben. Die kannst Du in einer Variablen speichern, auf dem Bildschirm ausgeben oder wieder an Funktionen übergeben. Anders ausgedrückt: Die Werte kannst Du anschließend ganz normal weiterverarbeiten. Mindestens allgemeine Werterückgabe bieten alle modernen Sprachen. Ein Unterschied gibt es bei der Art der Werte. Bei Funktionen in C wird vorab festgelegt welche Daten zurückgegeben werden. In PHP oder JavaScript ist das konzeptbedingt nicht möglich.

Logik in Funktionen auslagern

Das Konzept der Funktionen klingt schon mal gut? Fantastisch! In der Praxis ist aber nicht immer so einfach zu entscheiden, wann eine eigene Funktion Sinn macht. Gleiches gilt im Objektkontext für die Entscheidung ob eine Methode benötigt wird. Jede Anforderung, jede Aufgabe und Situation kann unterschiedlich gelöst werden. Viele Wege führen nach Rom. Genau das macht Software-Entwicklung so komplex. Aber, es gibt einige Richtlinien.

Eine Funktion sollte nicht zu lang werden. Als Richtlinie gilt ein Maximum von ca. 50 bis höchstens 100 Zeilen. Klingt ziemlich pauschal? Ist es auch. Es geht noch konkreter. Die zweite Gedankenstütze ist das Single Responsibility Prinzip. Es besagt, jede Funktion sollte nur eine Verantwortlichkeit haben. Am Beispiel erklärt: Du hast Mitarbeiter in einer Datenbank. Die willst Du in einer HTML Tabelle ausgeben. Sinnvoll wäre eine Funktion zum Verbindungsaufbau zur Datenbank. Eine weitere liest die Mitarbeiter aus der Datenbank. Die dritte Funktion bereitet die Daten auf und erzeugt die HTML-Tabelle. Jede Funktion hat nur noch eine Aufgabe.

Beispiele für Funktionen

Es gibt eine ganz Reihe sinnvoller Beispiele. Die folgenden Funktionen sind mit der Sprache JavaScript umgesetzt. Sie stehen sinnbildlich für Idee definierbare Abläufe als eigene Funktion zu definieren.

Funktionen die Berechnungen durchführen

Eine Prüfung

Ohne Rückgabewert

Es gibt natürlich noch viele weitere Möglichkeiten. Ich glaube aber hier ist genau zu sehen worum es geht. Das Keyword “function” ist Nebensache. Jeder Sprache löst die Details etwas anders. Viel wichtiger: Du legst einen Namen fest, kannst Parameter übergeben. Dann folgen eigene Aktionen im Funktionskörper (zwischen den geschweiften Klammern). Anschließend gibst Du ggf. einen Wert zurück.

Funktionen in der Objektorientierung

Die Grundidee gibt es auch in der Objektorientierung. Methoden sind in vielerlei Hinsicht auch Funktionen. Der große Unterschied: Eine Methode gehört zu einer Klasse. Sie bezieht sich auf das Objekt. Die Objektorientierung ist ein separates Thema für einen späteren Beitrag. Du findest aber alle Details zur Objektorientierung in der Akademie lernen. Der Kurs Programmieren lernen mit Java geht auf alle grundlegenden Aspekte ein.

Schreib einen Kommentar

Your email address will not be published.