blob: 847ce20be99a2f97c775ecae0f0cbc18a3ff435c [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001Wollt ihr Code in der allgemeinen, oeffentlichen Mudlib anschliessen, bitte
2beachtet die folgenden Hinweise zum Codestyle (nicht erschoepfend):
3
4* Einrueckungen per Leerzeichen, nicht Tabs
5* Einrueckung von 2 Leerzeichen pro Ebene
6* praegnante und viele Kommentare
Zesstra396e9c12018-02-18 23:22:22 +01007* Kommentare sollen nicht (nur) beschreiben, was der Code tut, sondern
8 vor allem, was er tun soll und warum.
MG Mud User88f12472016-06-24 23:31:02 +02009* keine lambdas
10* Bei inline-closures die function-Syntax statt der (: :)-Syntax verwenden.
11* else, else if in eine eigene Zeile
12* { am Beginn von Bloecken soll in eine eigene Zeile.
13* Nach ifs, Loops & Co: umfasst der davon kontrollierte Code mehr als eine
14 physische Zeile Code, einen Block mit { } formulieren.
15* keine return fun(), 0;
Zesstrae04c0202020-04-12 12:25:22 +020016* (type) Casts sollten vermieden werden.
17 (type) konvertieren nur, wenn die Typen zur Compilezeit *bekannt* und
18 unterschiedlich sind. Eine Alternative sind to_type(), wenn noetig.
19* Bei Callother in Programmen mit #pragma strict_types muessen deklarative
20 Casts ({type})call_other(...) verwendet werden, um dem Compiler zu sagen,
21 Typ das Ergebnis haben sollte. Der Compiler fuegt an der Stelle im Code auch
22 eine Pruefung ein, welche zur Laufzeit ausgefuehrt wird.
MG Mud User88f12472016-06-24 23:31:02 +020023* Pfade, die absolut sind, sollen auch mit / beginnen, z.B.
24 inherit "/std/thing", nicht inherit "std/thing"
25
Zesstra396e9c12018-02-18 23:22:22 +010026Commits und Patches
27* Bei Patches bitte keine inhaltlichen Aenderungen mit jeder Menge
28 Whitespace-Aenderungen vermischen.
29* Pro Patch bitte nur eine inhaltliche Aenderungen einschliessen
30* Jeder Commit muss eine aussagekraeftige Commitmeldung haben und
31 folgendem Style entsprechen:
32 * Die erste Zeile ist der Betreff
33 Dieser beschreibt in 50-60 Zeichen, worum es geht
34 * Eine leere Zeile
35 * Beliebig viele Zeilen mit Beschreibung von max. 70 Zeichen Laenge
36 Dieser Text sollte erklaeren, Warum und Wieso der Aenderung.
37* Commits sollten sich sauber auf die aktuelle Spitze vom master-Zweig
38 anwenden lassen. (Bzw. zumindest nicht schon Wochen alt sein.)
39
MG Mud User88f12472016-06-24 23:31:02 +020040Benennung von Properties:
41* der interne Name von Properties in der Basis-Mudlib beginnt immer mit
42 "p_lib_". Niemand sonst sollte Properties mit diesem Praefix erstellen.
43
44Sonstiges:
45* In der Mudlib wird keine neue Funktion(alitaet) angeschlossen, bevor die
46 Dokumentation dafuer fertig ist.
47 Am liebsten ist mir, bei der Konzeptentwicklung zuerst die fertige
48 Dokumentation (Manpage) fuer Nutzer/Spieler zu entwickeln, bevor ein Magier
49 ueberhaupt eine Zeile Code schreibt.
50* Patches muessen eine Zusammenfassung haben, welche kurz erlaeutert,
51 was dieser Patch fixen/aendern/verbessern soll und auf welche Weise
52 diese umgesetzt wird. (Anders gesagt: eine Commit-Message)
Zesstra6049baf2018-02-18 23:03:17 +010053* Bei Aenderungen von Manpages bitte nur bei inhaltlichen Aenderungen den
54 Abschnitt "Letzte (inhaltliche) Aenderung" aktualisieren.
MG Mud User88f12472016-06-24 23:31:02 +020055
Zesstra6049baf2018-02-18 23:03:17 +010056LETZTE INHALTLICHE AeNDERUNG:
57 18.2.2018, Zesstra
MG Mud User88f12472016-06-24 23:31:02 +020058