SAS-Programmierrichtlinien

Auf der 10. KSFE in Hamburg ist die Idee entstanden, gemeinsam auf Redscope SAS-Programmierrichtlinien zu entwickeln. Jeder kann an diesem Projekt mitarbeiten. Man kann als Redscope-Mitglied also neue Seiten in das Projekt einfügen oder einfach vorhandene Seiten kommentieren. Jeder kann die Seiten, die er selbst erstellt hat, beliebig oft überarbeiten, sobald sie freigeschaltet sind.

Programmierrichtlinien fördern die Lesbarkeit, Verständlichkeit und die Wartbarkeit von Programmen. Dies wird erreicht durch Regeln für die Strukturierung und die Vereinheitlichung und durch Tipps zur Fehlervermeidung.

Da ein großer Teil des Software-Lebenszyklus auf Wartung entfällt und da es erfahrungsgemäß oft vorkommt, dass ein SAS-Programmierer die Programme eines Kollegen ändern oder weiterentwickeln muss, sind Programmierrichtlinien für die effiziente Softwareentwicklung im Team unerlässlich.

Für manche Programmiersprachen, wie zum Beispiel Java, gibt es allgemein akzeptierte Programmierrichtlinien. Für SAS ist das bisher nicht der Fall.

In diesem Redscope-Projekt können wir gemeinsam SAS-Programmierrichtlinien entwickeln, siehe Anleitung.

Diese Programmierrichtlinien beziehen sich zunächst auf die SAS/BASE- und Makro-Sprache und nicht auf die SAS Component Language (SCL) oder auf die Interaktive Matrixsprache (IML).

Folgende Themen sollten aus meiner Sicht behandelt werden, diese Liste ist offen und die Inhalte werden sich entwickeln, ich möchte nur einen Anfang machen. Viele Themen werden strittig bleiben. Es wäre aber wünschenswert, wenn sich zumindest ein Kern von Regeln finden ließe, der als Ausgangpunkt für firmenspezifische Richtlinien verwendet werden kann. Metaregeln für die Anwendbarkeit (z.B. wann kann es sinnvoll sein, von den Regeln abzuweichen) können helfen, die Richtlinien im Alltag brauchbarer zu machen.

  • Codelayout: Verwendung von Einrückungen und Leerzeilen, platzieren von Anweisungen, Groß- und Kleinschreibung, etc.
  • Modularisierung: wie sollen die Programme in Dateien, Makros und Abschnitte aufgeteilt werden?
  • Kommentare: wo sollen / müssen / dürfen Kommentare stehen, wann verwendet man welche Form von Kommentaren?
  • Namenskonventionen: wie sollen Dateien, Variablen, Makros, Makrovariablen benannt werden?
  • Fehlervermeidung: allgemeine und SAS-spezifische Fallstricke und ihre Vermeidung
  • sonstiges, zum Beispiel Aufräumen von unnötigem Code
  • Metaregeln zur Entwicklung und zur Anwendbarkeit von Programmierrichtlinien

Als Startpunkt habe ich einige Links gefunden.

Verwandte Themen sind sicher Testen und Dokumentation von Programmen, Fehlerbehandlung und Änderungsverwaltung. Ich schlage vor, diese komplexeren Themen zunächst außen vor zu lassen.

Bitte um Vorschläge und Kommentare

vielen Dank an HansKneilmann für seine bisherige Mitarbeit! Weitere Vorschläge und Kommentare sind sehr wünschenswert.