Der Teamleiter meines Unternehmens argumentiert, dass ein umfangreiches Projekt leichter zu verstehen ist, wenn "Entitäten, die durch Logik verbunden sind", in einer .cs-Datei abgelegt werden.
Ich zitiere:
"Die gesamte Struktur der Logik, der Schnittstelle und der Klasse ist an einer Stelle zu sehen. Dies ist ein Argument, das nicht zu widerlegen ist. Um dasselbe zu sehen, müssen Sie mit einer Reihe von Dateien die Tools class verwenden Diagramm, R # für Navigation usw. "
"Nach der schlechten Theorie könnte ich schreien, dass eine Armee von getrennten Dateien cool ist, aber wenn es darum geht, Änderungen am vorhandenen Code vorzunehmen, insbesondere wenn Sie kein Schreiber dieses Codes sind, ist es sehr schwierig, viele verstreute Dateien zu verstehen. In Foren können Sie also "eine Aufzählung - eine Datei" schreiben, aber in der Praxis sollte dieser Ansatz niemals verwendet werden.
"... Was die Trennung der Codebasis zwischen Entwicklern betrifft, ist es heutzutage kein Problem, dieselbe Datei gleichzeitig zu bearbeiten. Die Zusammenführung ist kein Problem."
Ich habe oft gehört und gelesen, dass wir eine .cs-Datei pro Enum, Klasse usw. erstellen müssen, und dies ist die beste Vorgehensweise.
Aber ich kann ihn nicht überzeugen. Er sagt, dass er keinem bekannten Programmierer wie Jon Skeet vertraut. Übrigens ist hier die Meinung von Skeet zu diesem Thema: Wo ist der beste Ort, um Aufzählungstypen zu finden?
Was denkst du? Gibt es ein echtes Problem? Oder ist es Geschmackssache und sollte durch den Kodierungsstandard der Organisation geregelt werden?
quelle
Antworten:
Das Argument Ihres Teamleiters weist einige Mängel auf:
Gut gestaltete Klassen und Aufzählungen sollen überall in Ihrem Projekt verwendet werden, nicht nur dort, wo sie logisch sinnvoll sind.
Klassen und Aufzählungen, die ordnungsgemäß mit XML-Kommentaren dokumentiert sind, sind sehr selbsterklärend, indem Sie den Mauszeiger lediglich über das Element halten, auf das sie verweisen.
Sie können jederzeit zu einer Klassen- oder Aufzählungsdefinition gelangen, indem Sie mit der rechten Maustaste auf die Referenz klicken und "Gehe zur Definition" auswählen. Es sollte also wirklich keine Rolle spielen, wo Sie sie ablegen.
Das "logische" Zusammensetzen von Objekten ist willkürlich (dh Sie müssen sich überlegen, was "logisch" bedeutet. Ich würde diese Taktzyklen lieber für die eigentliche Programmierung verwenden).
Das Einrichten jeder Objektdefinition in einer eigenen Datei schafft eine einheitliche, disziplinierte Erwartung an Organisation und Struktur und wirft keine Fragen wie "Warum ist das hier?" Auf. Das ist eine sehr schöne Sache.
Wenn zwei oder mehr Objekte miteinander verknüpft sind, legen Sie sie einfach im Projektexplorer in einem eigenen Ordner ab.
quelle
Höchstwahrscheinlich hat sich der Teamleiter in früheren Zeiten die Zähne geschnitten, als das Klicken mit der rechten Maustaste und die Auswahl von "Zur Definition gehen" keine Option waren. Ich weiß, wenn ich mich im Entwicklungsmodus mit starken Spitzen befinde, werde ich ziemlich große Klassendateien erstellen, bis ich es von Resharper reparieren lasse.
In jedem Fall sollten Sie ihn fragen, warum diese Klassen und Aufzählungen keine untergeordneten Klassen und Aufzählungen sind, wenn Sie das Team zu einer Aufgabe führen möchten - kein Grund, sie als unabhängige Entitäten zu deklarieren, wenn sie wirklich abhängige Entitäten sind. Dies könnte ihm helfen, die Fatwa ein wenig durchzudenken.
quelle