S&D Checkliste Programmierung
Create a new checklist
based on this one

Wird vor jedem Commit und bei jedem Code Review ausgefüllt

Wurde der geschriebene Quelltext gemäß den Programmierrichtlinien erstellt?

OK Not OK Not checked

Wurden alle öffentliche Klassen, Methoden, etc. dokumentiert?

OK Not OK Not checked

Entspricht die Dokumentation den Dokumentationskriterien?

OK Not OK Not checked

Wurden private Methoden und Methodenimplementationen mit Kommentaren versehen, falls notwendig?

OK Not OK Not checked

Wurde geprüft, ob Unit-Tests erstellt werden sollten?

OK Not OK Not checked

Wurde an Quelltextstellen, die nicht erreicht werden dürften oder an denen die Umgebung einen nicht vorgesehenen Zustand hat, ein SDASSERT mit deutscher Meldung und möglichst vielen/sinnvollen Informationen zur Umgebung eingefügt?

OK Not OK Not checked

Falls SDASSERT mit Formatvariablen (%1%, %2%, etc.) verwendet wurde, wurde das SDASSERT künstlich ausgelöst, um zu prüfen, dass die Meldung korrekt dargestellt wird?

OK Not OK Not checked

Wurden, falls eine Fehlermeldung (sowohl SDASSERT als auch normale Fehlermeldungen) ausgegeben wird, die folgenden drei Fragen darin beantwortet: 1) Was ist passiert? 2) Was könnten die Ursachen sein? 3) Wie könnte man es beheben?

OK Not OK Not checked

Wurde, falls in C# ein IValueConverter oder IMultiValueConverter implementiert wurde, in der .Convert-Methode der Fall behandelt, dass theValue bzw. theValues den Wert DependencyObject.UnsetValue haben können?

OK Not OK Not checked

Wird in der Programmfunktion auf Drucker oder Dateien zugegriffen?

Yes No

Wurde geprüft, dass das Programm nicht "hängen" bleibt, wenn der Drucker offline ist?

OK Not OK Not checked

Wurde geprüft, dass das Programm nicht "hängen" bleibt oder ohne Fehlermeldung nicht die gewünschten Operationen ausführt, wenn die Datei nicht verfügbar ist? Mindestens zu testen: Datei Gelöscht, Netzlaufwerk nicht verfügbar, Server von Netzlaufwerk ausgeschaltet, Zugriffsrechte nicht gegeben

OK Not OK Not checked

Wurden Quelltextdateien angelegt oder umbenannt?

Yes No

Wurden C++-Quelldateien in „kleinbuchstaben“ mit .hpp- und .cpp-Dateiendungen benannt?

OK Not OK Not checked

Sind Headerdateien, die exportierte Klassen beinhalten, im include-Verzeichnis und Headerdateien, die nur bibliotheksintern verwendet werden, im source-Verzeichnis?

OK Not OK Not checked

Wurden C#-Quelldateien in der Form „CamelCase.cs“ benannt und in einem der üblichen Ordner „Controls“, „Models“, „Interfaces“, „Converter“, etc. abgelegt?

OK Not OK Not checked

Wurde in Visual Studio ein neues Projekt angelegt?

Yes No

Wurde dem Projekt die korrekte Eigenschaftsseite zugewiesen?

OK Not OK Not checked

Wurden alle Projekteigenschaften aus dem Projekt entfernt, so dass sie von der Eigenschaftsseite geerbt werden?

OK Not OK Not checked

Wurde eine Ressourcendatei korrekt hinterlegt?

OK Not OK Not checked

Wurde die Release-Konfiguration gelöscht?

OK Not OK Not checked

Wurde Datenbankprogrammierung vorgenommen?

Yes No

Wurden hd-Klassen erstellt oder angepasst?

Yes No

Wurden Änderungen an der Datenbankstruktur durch den DBE freigegeben?

OK Not OK Not checked

Wurden alle Felder per Comment() kommentiert?

OK Not OK Not checked

Wurden für Felder, die sich auf Felder einer anderen Tabelle beziehen, die gleichen HDFieldIds verwendet? Ausnahme: Muss eine Tabelle zwei oder mehr Spalten enthalten, die sich auf gleichnamige Spalten aus verschiedenen Tabellen beziehen, z. B. auf CUSTOMER.PERSONNO und EMPLOYEE.PERSONNO, werden für alle Spalten der neuen Tabelle ein neuer Name und eine neue HDFieldId vergeben.

OK Not OK Not checked

Wurde darauf geachtet, dass die Feldtypen und -längen den Anforderungen entsprechen?

OK Not OK Not checked

Wurde die neue hd-Klasse in hd_initdll.cpp aufgenommen? (Sofern es sich nicht um eine S&D-interne Tabelle handelt.)

OK Not OK Not checked

Wurden Änderungen an Tabellen und Spalten in der XML-Archivierung berücksichtigt? (Ggf. Rücksprache mit Lösungsarchitekten halten.)

OK Not OK Not checked

Wurde geprüft, ob es Import- oder Exportschnittstellen gibt, die die betroffene Tabelle verwenden, und dass diese noch funktionieren?

OK Not OK Not checked

Wurden sddb::Select, sddb::Update, sddb::Insert oder sddb::Delete verwendet?

Yes No

Wurde, wann immer möglich, hd::MakeItem <> oder hd::MakeName <> zur Angabe von Tabellen und Feldern verwendet?

OK Not OK Not checked

Wurden Statements per SQL-Schnipsel zusammengesetzt?

Yes No

Wurden die Statements sowohl auf Oracle als auch auf MS SQL ausgeführt?

OK Not OK Not checked

Wurde die programmierte Funktion mit einer großen Menge von Datensätzen ausgeführt, um die Geschwindigkeit zu prüfen?

OK Not OK Not checked

Wurde die update.ini angepasst?

Yes No

Wurde das Update auf einem frischen Mandanten der zuletzt freigegebenen Version auf MS SQL ausgeführt?

OK Not OK Not checked

Wurde das Update auf einem frischen Mandanten der zuletzt freigegebenen Version auf Oracle ausgeführt?

OK Not OK Not checked

Bei Änderung von Daten (Update, Insert, Delete, Update-Routinen oder Importen): Ausführung auf einer Kundendatenbank, die in den betroffenen Tabellen Daten beinhaltet

OK Not OK Not checked

Wurde eine Benutzerschnittstelle erstellt oder angepasst?

Yes No

Sind alle Steuerelemente per Maus bedienbar?

OK Not OK Not checked

Sind alle Steuerelemente per Tastatur erreichbar?

OK Not OK Not checked

Sind alle Steuerelemente per Tastatur bedienbar?

OK Not OK Not checked

Wurde die Benutzerschnittstelle in der klassischen und in der modernen Windows-Ansicht getestet?

OK Not OK Not checked

Wurde sich an die Standardabstände zwischen Steuerelementen gehalten?

OK Not OK Not checked

Wurden alle Texte in der Benutzerschnittstelle aus den StarView-Ressourcen geladen (für die Übersetzbarkeit)?

Yes No

Wurden die Texte sowohl in der deutschen als auch der englischen Ressourcen-Datei eingefügt, und wurden die englischen Texte mit „//!!! Bitte übersetzen“ gekennzeichnet, falls der deutsche Text übernommen wurde?

OK Not OK Not checked

Wurden String-Ressourcen in eine Ressource vom Typ „Resource“ eingebettet, statt sie als globale Ressource zu definieren?

OK Not OK Not checked

Bei Texteingabefeldern: Ist die Länge von Texteingabefeldern auf die Maximallänge des zugrundeliegenden Feldes beschränkt?

OK Not OK Not checked

Bei Texteingabefeldern: Wurde die korrekte Behandlung der Eingabe von Sonderzeichen geprüft? z.B.: èó ???

OK Not OK Not checked