6 Stimmen

Klassenmitgliedsorganisation

Was ist der beste Weg, um Klassenmitglieder zu sortieren?

Ich bin im Konflikt mit einem Teammitglied darüber. Er schlägt vor, dass wir die Mitglieder alphabetisch sortieren sollten. Ich denke, es ist besser, sie auf eine semantische Weise zu organisieren: wichtige Attribute zuerst, zusammenhängende Methoden dazwischen usw.

Was denkst du?

11voto

Nick Punkte 6782

Ich mag semantisch. Alphabetisch scheint mir nicht besonders sinnvoll zu sein, denn wenn man nach einem Element sucht, weiß man selten genau, wie es heißt. Außerdem führt alphabetische Sortierung bei Verwendung einer bestimmten Benennungskonvention (z. B. ungarisch) möglicherweise zu einer Gruppierung nach Typ, was möglicherweise nicht gewünscht ist.

3voto

J Miller Punkte 990

Gruppieren Sie verwandte Klassenmitglieder zusammen. Ich glaube, dass dies anderen Programmierern helfen wird, Ihre Schnittstelle einfacher zu verstehen, wenn sie sie zum ersten Mal sehen.

Einige finden es auch hilfreich, Zugriffsmethoden und Modifikatoren in separaten Abschnitten zu organisieren.

2voto

Uri Punkte 86472

Ich habe dieses genaue Thema im Rahmen meiner Masterarbeit studiert.

Eine alphabetische Organisation oder Organisation basierend auf öffentlich/privat ist besser, um bestimmte Dinge finden zu können. In einigen IDEs können Sie jedoch das Gliederungswerkzeug so einstellen, dass es alphabetisch sortiert und spezielle Indikatoren für öffentlich/privat verwendet.

Mein Ansatz bestand darin, Methoden basierend darauf zu gruppieren, welche Member sie verwenden: Oft besteht eine konzeptionelle Verbindung zwischen Methoden, die dieselben Felder verwenden.

Tatsächlich habe ich daraus eine Visualisierung erstellt, die dazu beigetragen hat, schnell durch riesige Klassen zu navigieren und die Struktur zu verstehen.

1voto

toolkit Punkte 48653

Dies ist nur meine Meinung, die sicherlich unbeliebt sein wird, aber das Problem beim semantischen Sortieren ist subjektiv. Jede Person wird eine andere Meinung darüber haben, welche Methoden nah beieinander sein sollten.

Der alphabetische Vorteil besteht darin, dass er vollständig objektiv ist. Es reduziert auch große Unterschiede bei kleinen Änderungen, was häufig vorkommt, wenn ein Entwickler eine andere semantische Reihenfolge wählt.

Die meisten IDEs haben Outlines oder Hyperlinks, um die Navigation zu erleichtern.

EDIT: Eine Klarstellung - Ich sortiere immer noch nach öffentlich zu privat, aber alphabetisch innerhalb des gleichen Zugriffsebene. Tatsächlich mache ich keine Sortierung - Ich lasse meine IDE die Datei neu sortieren, wenn ich sie speichere.

1voto

OregonGhost Punkte 22841

Ich suche nie nach einem Mitglied, indem ich den Code durchgehe. Wenn ich zu einer Mitgliedsdefinition springen möchte, wähle ich sie entweder aus der Navigationsleiste / dem Dokumentenüberblick / der Klassenansicht aus oder klicke mit der rechten Maustaste und wähle "Zur Definition springen". Es ist nicht notwendig, die Mitglieder zu sortieren, wenn Sie eine anständige IDE haben. Dies funktioniert sehr gut in Visual Studio, und die andere IDE, die ich bei Bedarf verwende, KDevelop, unterstützt zumindest die Grundlagen davon.

Auf jeden Fall neige ich dazu, Mitglieder nach Funktionalität zu gruppieren, d.h. alle Felder / Eigenschaften / Methoden, die zu einer bestimmten Funktionalität gehören, sind zusammen. Und da Klassen nicht zu lang sein sollten, reicht das aus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X