Wie benennen Sie Ihre persönlichen Bibliotheken? [geschlossen]


8

Ich bin ziemlich schlecht darin, Dinge zu benennen.

Der einzige Name, den ich generisch finden kann, ist "Helfer". Wenn ich eine Header-Datei habe, die Hilfefunktionen zum Bearbeiten von Pfaden enthält, lege ich sie in mein Verzeichnis "helper" und nenne sie "path-helper.hpp" oder ähnliches.

Offensichtlich ist das eine schlechte Namenskonvention. :) :)

Ich möchte ein konsistentes Namensschema für meinen Ordner (und meinen Namespace) haben, mit dem ich immer auf meine eigenen Header und Bibliotheken verweisen kann, aber ich habe Probleme, Namen zu finden, die leicht einzugeben oder zu merken sind (wie boost) ... also ich Am Ende nennen einige von ihnen "Helfer" oder "stdext" oder so weiter, was keine gute Idee ist.

Wie finden Sie Namen für Ihre Bibliotheken, die leicht zu merken und leicht einzugeben sind und die nicht zu allgemein sind (wie "helper" oder "std" oder "stdext" oder ähnliches)?

Irgendwelche Vorschläge, wie man das macht?


14
Ich würde es MFCfür "Mehrdad Foundation Classes" nennen, aber leider wird diese Abkürzung seit fast zwei Jahrzehnten verwendet :(
dasblinkenlight

@dasblinkenlight: lol.
user541686

Nur unter Windows, obwohl :-)
johannes

@dasblinkenlight von der Middlesbrough Football Club, so unglücklich (;
Francisco Presencia

Antworten:


4

Versuchen Sie, Hilfsfunktionen thematisch zu gruppieren und das Thema in den Bibliotheksnamen aufzunehmen. Ein Bibliotheksname wie "helper" mag zu allgemein sein, aber ein Name wie "PathHelper", "FileIOHelper" sagt ziemlich viel darüber aus, welche Funktionen man in dieser Bibliothek erwarten kann (persönlich bevorzuge ich "... Utilities", aber das ist nur so eine Frage des persönlichen Geschmacks). Zum Beispiel habe ich lib-Namen wie "MathUtilities", "StringUtilities", "ConfigUtilities", "DBUtilities" und so weiter.

Natürlich verwenden wir für größere Bibliotheken in unserem Team am Ende Namen ohne Oberbegriff. Und um ehrlich zu sein, haben wir auch eine Bibliothek namens "Common" für einige Funktionen und Klassen, die sich unter einem bestimmten Themennamen nicht gut gruppieren lassen. Aber wir versuchen, diese Bibliothek klein zu halten.


2

Im Allgemeinen ist es ein organischer Prozess für mich.

Meine Namespaces spiegeln in der Regel meine Ordnernamen wider, vor allem, weil ich denke, dass es einfacher ist, Dinge auf diese Weise zu finden.

Unternehmensprojekte haben im Allgemeinen ein Firmenpräfix vor dem Namespace, und für persönliche Projekte wechsle ich zwischen project-prefix.folder und nur Ordner für die Namen.

Die "Haupt" -Ordner sind in der Regel für ihren Namen offensichtlich und beziehen sich im Allgemeinen auf ihre Funktion - "Foo". Bei größeren Projekten werde ich den Hauptordner aufteilen, um das Hauptprogrammierparadigma widerzuspiegeln, dem ich möglicherweise folge. Für MVVM hätte ich also "Foo.View", "Foo.ViewModel" und "Foo.Model" als Beispielnamen.

Ausnahmslos schleichen sich Hilfsfunktionen, die nirgendwo anders passen, in das Projekt ein. Ich beginne mit einem Ordner vom Typ "Common" oder "Utilities", um sie zuerst zu landen. "Helfer", "Basis" und "Kern" würden für einen ersten Landeplatz genauso gut funktionieren.

Ich versuche, meine Funktionen basierend auf dem Betreff und / oder der Aktion zu benennen, die sie ausführen. Ich könnte also einen PathManager, PathChecker usw. haben. Oft weiß ich, dass ich mehrere Aktionen in Bezug auf ein Thema habe, also benenne ich die Klasse nach dem Thema und füge nach Bedarf Methoden hinzu. Ein Thesaurus kann hier nützlich sein.

Ich habe eine hohe Korrelation zwischen der einfachen Benennung eines Objekts und der Frage gefunden, wie gut ich beschreiben kann, was die Funktion tun soll. Einer meiner persönlichen Kontrollpunkte ist, dass ich, wenn ich Schwierigkeiten habe, etwas zu benennen, darüber nachdenken muss, was die Funktion eigentlich tun soll. Sobald ich die Funktionsprobleme behoben habe, kommt der Name leicht.

Wenn ich mehr Hilfsfunktionen sammle, migriere ich sie in ihren eigenen Ordner und / oder Namespace. Ob sie einen Ordner aus dem Stammprojekt entfernen oder ob sie einen Unterordner zum Dienstprogrammordner erhalten, hängt von der Art und Menge der Funktionen ab.


1

Ähnlich wie bei GlenH7 habe ich in der Regel eine "-misc" -Bibliothek, in der org eine Abkürzung mit drei oder vier Buchstaben für jeden ist, der gerade mein aktueller Arbeitgeber ist.

Alle neuen Zufallsfunktionen werden dort abgelegt, bis sich genug davon angesammelt haben, damit ein Muster entsteht. An diesem Punkt gruppiere ich sie und ziehe verwandte Funktionen in Bibliotheken mit vernünftigeren Namen heraus, wobei ich den Clientcode nach Bedarf umgestalte.

Manchmal war ein wenig Disziplin erforderlich, um die Größe der Bibliothek überschaubar zu halten, aber heutzutage bleiben meine * -misc-Bibliotheken eher klein.

(Ich habe auch immer eine "devauto" - und eine "testauto" -Bibliothek, die "Meta-Level" -Funktionen enthalten, die die Entwicklung und Testautomatisierung unterstützen sollen).


0

Wenn ich es wäre, hätte ich nur eine Pfadbibliothek (wahrscheinlich wäre es eine Dateisystembibliothek, die eine Pfadkomponente enthält). Es würde genau die Schnittstelle bieten, die ich brauche, um die Arbeit zu erledigen. Sicher, 90% davon wären ein dünner Wrapper um boost.filesystem oder was auch immer für eine Dateisystembibliothek es gab, aber mein Code würde immer nur diese schöne konsistente Bibliothek sehen. Kein Versuch, sich zu erinnern, ob diese Funktion in X, X-Helper, X-Utils oder X-Ext enthalten war. Wenn X Hilfe benötigt, ist es an der Zeit, X zu reparieren und keine neuen zufälligen Positionen für Code zu erfinden.


0

Ich bin auch sehr schlecht darin. Mein pragmatischer Ansatz ist es, den Namen nach Datum und / oder Projekt und / oder Ort anzureichern, bis ich einen vernünftigen Namen gefunden habe.

Ich weiß, dass es für eine andere Person unmöglich ist zu lesen, aber ich selbst kann sie schnell erkennen. Und die meisten dieser Bibliotheken werden für mich sowieso nur einmal verwendet.


1
Ist es nur ich oder meinst du wirklich Dinge wie holycow-Boston-11:37PM-RainyOutside? :)
Reben
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.