Ich bin da auch Deiner Meinung! Hast Du dazu 'ne Quelle?
http://www.wikiservice.at/dse/wiki.cgi?AgileSoftwareEntwicklung (Links)
Martin Fowler, Craig Larman, Kent Beck, Phillipe Kruchten, Alistair Cockburn.
http://www-140.ibm.com/developerworks/rational+ Einheitliches Coding
- einheitliches Kommentar-Template zu Beginn jeder Funktion:
%rem
eindeutige_ID:(kann zum generieren ein kleines Java-Tool programmieren, das per Icon vom desktop gestartet wird)
Ersteller:<email>
categories:String-Handling, Validation
version:
datum:
ziel_kurz:
beschreibung:
bemerkung:
benutzt_folgende_funktionen:id_Funktion, id_Funktion
%end rem
- Sprechende Variablennamen mit "Typmarkierung" zu Anfang:
strName
varName
intName
docName
colName
sName
dbName
und in "camel-case", dh Gross und Kleinschreibung in Form eines Kamels:
strEmailOrganisation = "ttt@jupp.com"
Ich neige oft dazu Variablennamen extrem auszuschreiben. Vermutlich ist strEmailOrg leichter lesbar. Ich weiss es nicht.
Ich bin ein grosser Freund rein englischer Variablennamen (docEmployee statt docAngestellter).
Notes-Objekte die sich im Scope des Aufrufers befinden immer mit This.
Eine Funktion, die hauptsächlich aus einem Notes-Dokument heraus aufgerufen wird (querySave, Button) hat so: docThis (Dokument, aus dem code aufgerufen wurde), sThis (User-Session), dbThis (Datenbank, in der sich der code befindet).
(hoffe das ist verständlich).
Ich finde, man sollte hier aber nicht päpstlicher als der Pabst sein.
Ein sehr einflussreiches Buch der OO/Agile-Bewegung (Fowler, Refactoring) sagt imnsho sehr richtig, dass man schlechten code sowieso als solchen erkennt und die Formalia nicht sooo wichtig sind (bad code smells).
+ einheitliches Dokumentieren
Dafür sind Kommentarzeilen da.
+ Einheitlicher Aufbau
Alle Dim statements zu Beginn.
Einheitliches Errorhandling
Ansonsten ist dieses wichtige Anliegen schwer in wenigen Worten zu formalisieren.
Z.B. sollten komplexe Funktionen in Unterroutinen aufgeteilt werden, die kohäsive (d.h. klar abgegrenzte nicht zu viele Aufgaben/Verantwortungen übernehmen).
- Test(verfahren) inkl. Protokoll
Mir nicht ganz klar, wie das gemeint ist.
Der Ideengeber mag es mir Verzeihen, aber das riecht für mich ein bischen nach Formalismus.
Das hängt auch mit dem eigentlichen Ziel zusammen und da mag den Beteiligten unterschiedliches Vorschweben.
Was mich anbetrifft, soll es eine Sammlung an feingranularen, kohäsiven Funktionen werden (deutsch: kleine Funktionen).
Beispiel: Alle Arbeitstage zwischen Tag_x und Tag_y ausrechnen als eigenes Code-Dokument und nicht die Suche nach der endgültigen allumfassenden Skript-Bibliothek für Datumshandling.
Feingranulare Funktionen erfüllen klar definierte Aufgaben und sind somit ohne viel Formalismus vom Ersteller zu testen.
Gruß Axel