Frage

Ich versuche, jemanden zu sagen, sein Code nicht „kohärent“ in dem Sinne, dass es mehrere Zwecke dient. Ich glaube nicht, dass ich es sehr gut erklären kann, so dass ich mich für eine gute Referenz und / oder Definition.

War es hilfreich?

Lösung

Ich denke, der richtige Begriff Zusammenhalt ist.

  

In der Computerprogrammierung, Zusammenhalt ist ein Maß dafür, wie stark bezogenen und konzentriert die verschiedenen Aufgaben eines Softwaremoduls sind. Zusammenhalt ist ein ordinal Messart und wird in der Regel als „hohe Kohäsion“ oder „geringe Kohäsion“ ausgedrückt, wenn diskutiert.

     

Module mit hoher Kohäsion neigen vorzuziehen zu sein, weil eine hohe Kohäsion mit mehreren wünschenswerten Eigenschaften von Software einschließlich Robustheit verbunden ist, Zuverlässigkeit, Wiederverwertbarkeit und Verständlichkeit während niedrige Kohäsion mit unerwünschten Eigenschaften wie sein schwer zugeordnet ist aufrecht zu erhalten, schwierig zu testen, Wiederverwendung schwierig, und auch schwer zu verstehen.

Andere Tipps

hatte ich Code Complete von Steve McConnell neben meinem Computer (dh die Programmierer Bibel) mit der Seite offen erklären Zusammenhalt so dachte ich, ich würde teilen,

  

Kohäsions entstanden aus strukturiertem Design   und wird in der Regel in der gleichen diskutiert   Kontext als Kupplung. Als Kohäsion bezeichnet   zu, wie eng alle Routinen in ein   Klasse oder der gesamte Code in einer Routine   unterstützen ein zentrales Ziel-how konzentriert   die Klasse ist. Klassen, die enthalten   stark dazugehörigen Funktionen sind   beschrieben als starke Kohäsion aufweist,   und die Heuristik Ziel ist es,   Zusammenhalt so stark wie möglich.

Ich verwende den Begriff „Trennung von Bedenken“ diese während Refactoring zu erklären. Oft, wenn Code ziemlich neu ist, werden die Dinge in einen Topf geworfen bekommen in zusammen als die getrennten Bedenken zunächst nicht klar sind.

Eine einfache Möglichkeit, dies zu Ihrer Mitarbeit Arbeitern zu erläutern wäre, sich zu fragen, Testfälle für den Code zu schreiben. Dies sollte zeigen, dass der Code nicht klar oder kohärent ist.

Eine weitere gute Phrase zu verwenden ist, dass die Funktionen / Objekte „eine Sache tun sollen, und es gut tun“, dies hat Auswirkungen auf alles, was aus den Objekt / Methodennamen in der Gesamtarchitektur des Systems.

Zusätzlich zu den bisher gegebenen Antworten, eine einfache Möglichkeit, eine hohe Kohäsion zu denken, ist der Mangel an Doppel Funktionalität und klare Trennung verwandter Funktionalität in verschiedene Module, Komponenten oder Klassen. Wenn Sie also eine ähnliche Funktion wie eine andere Funktion wollen, und Sie ausschneiden und einfügen und anschließend eine Kopie des Codes ändern, reduzieren Sie den Zusammenhalt. Wenn Sie die das Original ändern Sie den neuen Fall zu behandeln, in dem der neue Fall an die bestehende Funktionalität eindeutig verwandt ist, erhöhen Sie den Zusammenhalt. Anders ausgedrückt, wenn Ihr Programm hat eine bestimmte Sache zu tun, egal wie sie die Zeiten oder in wie viele Stellen für eine maximale Kohäsion sollte es nur sein, wenn Stück Code, das Ding tut. Zur gleichen, eine bestimmte Klasse, Modul oder Komponente sollte einen einzelnen Verantwortungsbereich haben. Lumping unabhängige Funktionalität in einer einzigen Klasse oder Komponente reduziert auch den Zusammenhalt.

Wie CodeWiki sagt, Zusammenhalt wird in der Regel mit Kopplung diskutiert, wo die beiden anderen im Gegensatz zu einem wirken kann, insbesondere dort, wo strenge Schnittstellen nicht sorgfältig geplant werden. Viele der googled Artikel über den Zusammenhalt betreffen OO-Design, aber Kohäsion und Kopplung an OO nicht eingeschränkt.

Gekennzeichnet durch eine geordnete, logisch und ästhetisch konsequente Beziehung von Teilen; "Ein kohärentes Argument" - von http://www.websters-online-dictionary.org / definition / kohärente

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top