[PYTHON] Lassen Sie uns eine externe Spezifikation erstellen, die einfach zu handhaben ist
Mir ist aufgefallen, dass die Entwicklung des Programms geteilt ist. Einige Module sind für Neulinge einfacher zu warten, andere nicht. Mit einfach zu wartenden Modulen können Sie Ihren Code am Tag Ihres Beitritts verbessern. Module, die auch nach Monaten nicht als unzugänglich wahrgenommen werden. Erstellen Sie benutzerfreundliche externe Spezifikationen, um Ihre Arbeit zu reduzieren.
** Funktionen von Modulen, die für Neulinge leicht zu warten sind **
- Die externen Spezifikationen sind klar.
――Die Dokumentationskommentare sind umfangreich.
- Die Unterscheidung zwischen In-, Out- und Inout-Argumenten ist klar.
@param[in], @param[out]
- Das Const-Attribut wird an das Argument angehängt, das das const-Attribut sein kann.
- Übergeben Sie beim Definieren einer Funktion das Argument nach Möglichkeit als Referenz.
- Ein Unit-Test wurde durchgeführt.
- Die Anzahl der einzuschließenden Header-Dateien ist begrenzt.
- Die Wörter werden gewählt, um Missverständnisse zu reduzieren.
- \ #define verwendet den Aufzählungstyp anstelle von Makrokonstanten.
- Die Typen std :: vector und std :: map werden verwendet.
- Durch die Verwendung von Namespaces und Klassen wird der Umfang der Variablen eingeschränkt.
--Variable Namen und Artikelnamen sind organisierte Namen. (Es war von Anfang an kein guter Name, es wurde nach Überlegung umbenannt)
- Anstatt die Makrodefinition der Makrokonstante #ifdef zu schreiben, die mehrere Quellcodes im Quellcode umfasst, schreiben Sie sie in die Dateien CMakeLists.txt, * .sln, * .proj usw. Auf diese Weise wird * .cpp, * .h selbst nicht geändert. Es ist besser, den Quellcode während der Versionskontrolle nicht zu ändern.
** Merkmale von Modulen, die für Neulinge schwer zu warten sind **
- Die externen Spezifikationen sind unklar.
――Was die effektivste Beschreibung der externen Spezifikation ist, kann nicht aus dem Dokumentkommentar des Quellcodes abgeleitet werden.
- Auch in anderen Dokumenten als dem Quellcode werden gültige und veraltete Dokumente gemischt.
- Unzureichende Dokumentationskommentare.
- Die Unterscheidung zwischen In-, Out- und Inout-Argumenten ist unklar.
- Auch wenn das Argument das Attribut const zulässt, wird das Attribut const nicht angehängt.
--Wenn eine Funktion definiert wird, auch wenn es möglich ist, als Referenz zu übergeben, wird sie ohnehin durch Übergabe per Zeiger definiert.
- Es wurde kein Komponententest durchgeführt.
- Die Anzahl der einzuschließenden Header-Dateien erhöht sich trotzdem.
- Die Wörter, die leicht missverstanden werden, bleiben in den dokumentarischen Kommentaren.
――Es ist erforderlich, das Modul zu verstehen, nachdem Sie das gesamte Bild kennen.
- \ #define verwendet Makrokonstanten.
--Verwenden Sie ein Array mit fester Größe anstelle von std :: vector.
--Verwenden Sie case-Anweisungen und if () {} else if () {} else if () {} else {} anstelle von std :: map type.
- Auch wenn es sich um eine CPP-Datei handelt, ist es vorrangig möglich, sie im Bereich der C-Sprachspezifikationen schreiben zu können.
Daher ist der Umfang der Variablen tendenziell groß, und es bleiben viele Beschreibungen globaler Variablen und externer Variablen übrig.
――Was ist CMake?
Ich bin der Meinung, dass es eine gute externe Spezifikation ist, wenn Sie zuerst einen Prototyp mit Python erstellen, die Idee überprüfen und dann die C ++ - Spezifikationen definieren.
Das Erstellen einer externen Spezifikation, die einfach zu handhaben ist, erleichtert nicht nur die Wartung der Bibliothek, sondern erleichtert auch den Benutzern die Verwendung der Bibliothek.
Code, der extern ausbricht, ist schwer zu testen.
Wenn Sie versuchen, einen Komponententest durchzuführen und die Anzahl der erforderlichen Module zum Verbindungsziel zu erhöhen, verlassen Sie den Komponententest. Es ist wahrscheinlich, dass es ein Problem mit den externen Ausbrüchen gibt.
Extern aus der C ++ - Bibliothek entfernen
geschaffen.
Hinweis:
Implementieren wir eine Bildverarbeitungsfunktion mit einer Bilddatenstruktur als Argument in Ihrer eigenen Bibliothek
Schrieb. Ich hoffe, es wird ein Hinweis beim Erstellen einer Spezifikation sein.