Ordnerstruktur - Software Development Folders

Alle Dateien liegen im Original auf dem Live-Server
bzw. in der „gültigen Fassung“.
(Bearbeitet werden ausschließlich lokale Kopien der Dateien,
die im Anschluß an die Bearbeitung kontrolliert auf den Server geladen
und dort von der CVS Software gemergt werden.)


Versionierung:

Unter dem Ordner htdocs/devel befindet sich die
sog. Developer- oder Alphaversion der Software.
Diese Version enthält alle Änderungen und an ihr wird gearbeitet.
Unter dem Ordner htdocs/live befindet sich die sog. Live- oder Betaversion,
die nicht mehr für die Entwickler bestimmt ist, sondern für die Tester.
Diese Version stellt eine Freezeversion (Feature-, Designfreeze) dar
und wird nicht geändert.
Unter dem Ordner htdocs/secure befindet sich die sog. Stable Version,
die für die Entwickler und Tester nur eine Sicherheitskopie von altem Code darstellt.
Zu einem bestimmten Zeitpunkt findet ein gleichzeitiges Freeze
der Devel und Live-Versionen statt,
bei dem die secure-version durch die beta version
und die betaversion durch die developerversion ausgetauscht wird.
Letzter Freeze: 27.11.2002


Pfade:

WBT muss nicht direkt unter htdocs/ installiert werden,
kann also z.b. auch htdocs/wbt sein.
Ab dort gilt folgende Ordnerstruktur:
-css: enthält NUR css dateien
-phorum: hier wird eine version des bekannten Forumsystems von www.phorum.org installiert,
die ins WBT integriert ist (sein soll)
-system: hier liegen php-include-dateien, die schützenswert sind
(bsp. Passwörter besitzen bzgl. sql-login)
dieser Bereich ist .htaccess geschützt (soll)
-template: contentbezogene dateien, die das Aussehen vom WBT bestimmen
(Template lohnt nur wenn man mehrere templates hat,
also besser z.b. templates/standart, templates/fluffy und templates/simple machen?
Sonst kann mans auch weglassen)
-tmp: hier sollen standartmässig KEINE dateien drinliegen,
dieser Ordner wird regelmässig gelöscht und enthält nur kurzfristig dateien,
die zum Ablauf nötig sind
-uploaded: dieser Ordner enthält Dateien, die vom Benutzer über das WBT hochgeladen wurden


Coding Standards

Allgemein
- Namen von Variablen sind in englisch und selbsterklärend zu wählen
- Die Einrücktiefe sollte stets auf 2 Leerzeichen gesetzt werden. das gilt für CSS, PHP, SQL-Statements

SQL
Datenmodell (Server):
- Datenbankname: beliebig (beinhaltet alle möglichen kurs- und benutzerdaten)
- Tabellennamen:
Tabelle wbt_tbl_lexicon enthält ein kursübergreifendes Lexikon
Tabelle wbt_tbl_error_codes enthält kursübergreifende Fehlermeldungen
- Feldernamen: id feldernamen: name_id
·Systemworte („SQL-statements“) sind in Grossbuchstaben zu schreiben
·Zusammengesetzte Namen sind mit Unterstrich (_) zu verbinden („USER_ID“)
·Übergabeparameter an gespeicherte Abfragen sind mit führendem @ zu versehen („@USER_ID“)
- Einrückungen sollten sinnvoll gewählt werden und die Schachtelung der SQL Skripte verdeutlichen.
Bsp.:
SELECT
USER_ID,
USERNAME
FROM tbl_wbt_user
WHERE….
·$row = mysql_fetch_object($objRcsResult) statt $row = mysql_fetch_row($objRcsResult) verwenden,
da man dann $row->course_id verwenden kann

PHP
- Einrückungen sind sinnvoll zu wählen und sollen der Schachtelung der PHP- Befehle entsprechen.
Bsp. s.u.
Klammerungen sind in der Zeile der eröffnenden Anweisung zu öffnen
und auf Höhe dieser Anweisung wieder zu schließen
function sayHello(){
$sayString = „Hello“;
echo($sayString);
}
·Namen von Variablen sind mit Kleinbuchstaben zu beginnen
und zusammengesetzte Namen mit Grossbuchstaben fortzuführen
Bsp. $userId, $errorCode
·Wiederkehrender Quelltext ist in Funktionen zu kapseln,
die vorzugsweise in einer functions.php bei Bedarf inkludiert werden kann.
·immer $_POST['name'] verwenden statt $name und statt $HTTP_POST_VARS['name']
php.ini: Flag umsetzen: register_globals=off
·Variablen die ein array darstellen sollten auch so benannt werden z.B. arrCourseAdmin
·Variablen die ein object darstellen (z.b. mysql-menge)
sollten auch so benannt werden z.B. objCourseAdmins

Dokumentation im Quelltext
·Die Dokumentation im Quelltext ist in Deutsch anzufertigen
·Zu dokumentieren ist eine Zeile vor einer erklärungsbedürftigen Anweisung,
oder nach der Anweisung in der gleichen Zeile, wenn ausreichend Platz zur Verfügung steht.
Zum leichteren Verständnis sollten möglichst kurze und eindeutige Erklärungen gegeben werden.
·Viele kleine Anmerkungen an der richtigen Stelle sind effektiver als eine lange Erklärung,
die versucht einen ganzen Block von Anweisungen auf einmal zu erläutern