Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Übersicht

Hauptseiten

Benutzerseiten

(Sofern diese eine eigene Seite erstellt haben)

  • kea 2017/04/05 10:44
  • obel1x 2017/06/12 06:23

Testbereich

content:programmentwicklung

Kleiner Leitfaden zur Programmentwicklung

Dieser kleine Leitfaden soll Entwicklern einige Tipps aus der Praxis geben, wie der Quelltext und die Programmentwicklung verbessert werden kann. Die Hinweise sind als Vorschlag gemeint und sollen Anregungen geben.

Quelltext

Eine unstrittig sinnvolle Vorgehensweise bei der Programmentwicklung ist, den Quelltext zu kommentieren um die Verständlichkeit zu verbessern. Deshalb findet sich in vielen Richtlinien die Aufforderungen zur ausgiebigen Kommentierung.
Nicht gesagt - und häufig falsch verstanden - wird meistens, in welcher Form dies sinnvoll ist. Deshalb findet man häufig etwas in dieser Art (am Beispiel von SAP- ABAP):

clear LV_MONEY.
* Schleife über Verträge
loop at LT_CONTRACTS into LS_CONTRACT.
  ADD LS_CONTRACT-LOAN to LV_MONEY. " Gehalt hinzurechnen
endloop.
write LV_MONEY. "Ausgabe LV_MONEY

Der Kommentar „Schleife über“ erklärt in diesem Fall, was die nachfolgende Anweisung tut. Sowas ist natürlich völlig überflüssig und hilft weder im Verständnis der Logik, noch verbessert es die Leserlichkeit.

Besser wäre es deshalb, den Quelltext so zu kommentieren, dass er beim Verständnis der Arbeitsweise hilft:

* Summierung aller Löhne aus Tabelle Verträge in LV_MONEY
clear LV_MONEY.
loop at LT_CONTRACTS into LS_CONTRACT.
  ADD LS_CONTRACT-LOAN to LV_MONEY.
endloop.
write LV_MONEY. "Ausgabe Summe aller Löhne

D.h. der Kommentar dient in dieser Form zu erklären, wozu die folgenden Anweisungen dienen.
Speziell bei komplexen Logiken, erleichtert dies dabei, den Gesamtzusammenhang zu erfassen und zu beurteilen, ob das gewünschte Ziel eventuell durch einen Fehler in der Umsetzung verfehlt wurde.

Endemische Prozeduren

Prozeduren (Funktionen, Methoden, wiederverwendbare Codeblöcke) sind ein wichtiges Hilfsmittel zur Strukturierung des Programmcodes. Sie ermöglichen es, Logiken zu kapseln und diese als „Blackbox“ aufzurufen, was Arbeit spart und die Übersichtlichkeit erleichtert.
Leider wird häufig ein wichtiger Punkt übersehen: Die Wiederverwendbarkeit. So passiert es relativ häufig, dass der Code zwar gut strukturiert wird, aber die verwendeten Prozeduren so spezifisch für die jeweiligen Anwendungsfälle ausgelegt sind, dass sich diese nicht wieder für andere Einsatzzwecke verwenden lassen (endemisch).
Das führt dann dazu, dass die Entwickler bei neuen Funktionen dazu gezwungen werden, einen „fast“ passenden Codeblock nochmal - aber etwas anders - abzubilden, was dann wiederum die Gesamtqualität erheblich mindert. Denn zuerst einmal gibt es so im Laufe der Zeit N Prozeduren, die alle „fast“ das gleiche machen, bei welchen es aber einen hohen Aufwand darstellt, diese einzeln auf Unterschiede zu sichten und zweitens werden grundsätzliche Programmfehler so vervielfältigt, was eine saubere Fehlerbehebung unmöglich macht.
Das Ziel der Wiederverwendbarkeit ist deshalb nicht nur ein Neben, sondern ein Haupt- oder gar das Hauptziel der Prozeduralisierung und darf nicht missachtet werden.
Hinweis: Eine saubere Wiederverwendbarkeit stellt hohe Anforderungen und birgt auch Risiken (wenn z.B. Logiken eingebaut werden müssen, die nicht zur eigentlichen Aufgabe gehören). Wie in den meisten Fällen gilt deshalb: eine gründliche Abwägung der Vor- und Nachteile wie die Strukturierung erfolgt ist in jedem Fall sinnvoll.

Programmdokumentation

TODO: Pflichtenheft / Fachkonzepte / IT-Konzepte vs dynamischer Entwicklung

Anwendbarkeit

TODO: Fehlerlogging und Rückmeldung

content/programmentwicklung.txt · Zuletzt geändert: 2017/06/07 12:52 von Daniel