Ich arbeite mit einer Gruppe anderer Programmierer an einem Open-Source-Projekt, das mit C ++ und Qt erstellt wurde.
Jetzt brauchen wir eine Benennungskonvention für Widgets (und andere Variablen allgemein), um sie als Standard in unserem gesamten Code zu verwenden, damit der Code besser lesbar wird und wir eine bessere Koordination zwischen den Programmierern erhalten.
Irgendwelche Ratschläge?
EDIT: Ich spreche nicht über die Benennung neuer Klassen,
stattdessen spreche ich über das Benennen von Instanzen von Qt Widgets, sagen wir, ich habe eine Textbearbeitung für den Benutzernamen, sollte ich es txtEdtUsrNm nennen?
Und in diesem Fall, wie soll ich Ableitungen wählen?
Solange Sie in diese Richtung denken, würde ich diesen QtQuarterly-Artikel von Anfang bis Ende lesen.
Entwerfen von Qt-Style C ++ APIs
Das heißt, eine Sache, die wir tun, ist, die "Verwendung" der Instanz als den ersten Teil und das letzte vollständige Wort der Klasse als den letzten Teil zu setzen.
Also, Ihr "Benutzername" QTextEdit ist
%Vor%Wenn Unklarheiten auftreten, z. B. QListView und QTreeView, wählen Sie den letzten nicht eindeutigen Abschnitt aus.
%Vor%Sie können Abkürzungen herausfinden, wie Sie möchten (wie "Lbl" für QLabel), aber im Allgemeinen hat das ganze Wort funktioniert und war einfach zu lesen.
Auf der anderen Seite sind wir nicht zu streng, und es ist vielleicht wichtiger, die Intention der Instanzvariablen ohne den Klassennamen zu benennen, denn wenn Sie in Zukunft die Klasse ändern wollen, kommen Sie dazu Ändere den Namen, der ohne gute Refactoring-Tools schmerzt.
Finde vielleicht die allgemeinen Widgets heraus, die du am häufigsten verwendest, und wähle eine Namenskonvention für die allgemeinsten Super-Klassen und lass alles andere los.
Beispielliste von Dingen, die der Konvention entsprechen:
Die Klassen QAbstract ClassName sind ein guter Ort, um darüber nachzudenken, was in dieser Liste enthalten sein sollte.
Da Qt offen für Entwickler von Drittanbietern ist, haben sie verschiedene Dokumentationen bezüglich des Codierungsstils und der API-Design-Prinzipien zur Verfügung gestellt.
Diese Dokumente sind wirklich interessant. Hier sind ein paar Links:
Und dieses Dokument (PDF) von Jasmin Blanchette, das es sich lohnt zu lesen: Little Manual of API Design
>Ich würde einfach die gleiche Namenskonvention verwenden, die Qt verwendet. Mach es dir leicht.
Ihre Namenskonvention ist ähnlich wie Java.
Die vollständigen Namen werden schnell lästig beim Lesen und Tippen. Daher verwenden wir normalerweise eine Abkürzung:
%Vor%(Sie bekommen die Drift). Ja, es gibt einige Unklarheiten, aber sie werden normalerweise aus dem Kontext gelöst.
Um genau zu sein, die Frage bezieht sich auf "benennt Instanzen von Qt Widgets", aber die Antworten beziehen sich auf das Benennen von Variablen mit Referenzen auf Widgets-Instanzen.
Qt Widgets werden von QObject abgeleitet, das eine name -Eigenschaft mit getter objectName () hat. Gibt Qt der Eigenschaft einen Wert, wenn der Programmierer nicht? Nennen Sie es "auto generated" oder "default".
Tags und Links c++ qt coding-style widget