Wenn Sie einen Kollegen hätten, der die Vorteile der Trennung von Bedenken nicht oder nur unzureichend verstanden hätte, um sie in ihrer täglichen Arbeit konsequent anzuwenden, wie würden Sie ihn ihnen erklären?
code-quality
object-oriented
Marcie
quelle
quelle
Antworten:
Stellen Sie sich vor, Sie haben ein Programm, das veröffentlicht wurde. Ein Kunde kommt und bietet an, Sie für eine Verbesserung einer seiner Funktionen zu bezahlen. Um an das Geld zu kommen, müssen Sie Ihr Programm ändern, um die neue Funktion hinzuzufügen. Einige der Faktoren, die Ihre Gewinnspanne beeinflussen, sind:
Durch die Trennung von Bedenken erhalten Sie positivere Antworten auf diese Fragen.
quelle
Schauen Sie sich ein Krankenhaus an und überlegen Sie sich, welche unterschiedlichen Aufgaben bei der Versorgung eines Patienten zu erfüllen sind: Krankenschwestern, Ärzte, Arzthelferinnen, Techniker, Angestellte, Cafeteria usw.
Gibt es jemanden, der weiß, wie all diese Leute ihre Arbeit erledigen? Nein, denn es wäre überwältigend. Sie müssen die verschiedenen Verantwortlichkeiten in verschiedene Rollen aufteilen, und die Berührungspunkte zwischen diesen Rollen sind sehr spezifisch.
quelle
Wenn er / sie in einem Büro arbeitet, nehmen Sie es als Beispiel, erläutern Sie die Rolle der einzelnen Mitarbeiter in diesem Büro und fragen Sie ihn, was passiert, wenn diese Mitarbeiter nicht nach ihren Aufgaben aufgeteilt werden?
quelle
Ich würde mir ansehen, wie er es versäumt hat, SoC in seinem Code / Design anzuwenden, und das in ein reales Beispiel verwandeln, mit dem er sich identifizieren kann, und das ist offensichtlich unerwünscht.
Wenn er beispielsweise eine Klasse hat, in der der Kunde mehrere Informationen liefern muss, die für diese Kunden nicht relevant sind, dann würde ich die Analogie einer Bäckerei verwenden, in der Sie Ihre eigenen Körner und Hefen mitbringen müssen, wenn Sie kaufen möchten ein Brot.
quelle
Ein Beispiel könnte sein, dass ein HTML-Entwickler HTML, CSS und Javascript in separate Dateien aufteilen möchte. Auf diese Weise können Sie das Erscheinungsbild einer Nachricht ändern, indem Sie einfach das CSS oder das Verhalten einer Nachricht ändern, indem Sie die JavaScript-Datei ändern, die separat geladen wird. Wenn Sie eine responsive oder adaptive Site haben, funktioniert dieses Paradigma gut, da Sie je nach Ansichtsfenster des Benutzers oder Benutzeragenten verschiedene CSS- oder Javascript-Dateien laden können. Wenn Sie jedoch den HTML-Code oder die Vorlage ändern, besteht die Möglichkeit, dass die CSS- oder JavaScript-Funktion nicht mehr funktioniert. Diese getrennten Anliegen können auch abhängig sein.
Ein weiterer Ansatz besteht darin, Ihr gesamtes CSS-Javascript und HTML in einer Gruppe von Komponenten oder Modulen zu bündeln. Dies bedeutet, dass Sie Änderungen an einem Modul vornehmen können und dass dies keine Auswirkungen auf andere Komponenten oder Module auf der Seite haben sollte, auf der es ausgeführt wird und die nicht miteinander verknüpft sind. Hier werden die CSS-, Js- und HTML-Dateien zu einer einzigen Komponente zusammengeführt, die Unit-getestet werden kann. Die Trennung der Bedenken erfolgt also in Form einzelner atomarer Komponenten, die einheitlich getestet werden können, anstatt Markup-, Styling- und Verhaltenselemente zu trennen. Dieser zweite Ansatz eignet sich eher zum Erstellen komplexerer Webanwendungen.
bearbeiten. Da ich eine negative Antwort auf diesen Kommentar erhalten habe, dachte ich, ich würde ihn noch einmal besuchen und versuchen, einen Teil meiner POV zu qualifizieren. Leider ist jegliches Feedback hier nicht besonders konstruktiv, aber ich habe eine interessante Diskussion an anderer Stelle gesehen, die sich mit React befasst, der aktuellen heißen Technologie in der Webentwicklung, einem Beispiel aus der Praxis, und fragt, ob sie die Trennung von Bedenken bricht oder insbesondere, ob sie eine von ihnen bricht Das Prinzip der objektorientierten Entwurfsmethodik von Feather.
Die technische JavaScript-Entwicklerperspektive
Die UX / UI Designer-Perspektive
Die Teamperspektive
https://hashnode.com/post/does-react-really-violate-separation-of-concern-by-putting-html-and-js-in-a-single-file-cil3bn5hj0011a65347rsdut0
Auf der Seite befindet sich auch ein Link zu einer interessanten Präsentation von Pete Hunt von Facebook, in der er über Komponenten und nicht über Vorlagen spricht und die Probleme in der Sprachanwendung aufteilt, anstatt die Probleme des Frameworks, dh Vorlagen, CSS und Javascript etc.
Im Hinblick auf die Trennung Ihrer Bedenken in der Sprache Ihrer Anwendung kann dies die Verwendung verschiedener Muster beinhalten, um Ihren Code in eine modulare Form zu trennen oder zu entkoppeln, die einheitlich getestet werden kann usw.
Zusammenfassend kann die Trennung von Bedenken von Ihrer Rolle oder Sichtweise abhängen, wie an anderer Stelle erwähnt.
quelle