Ich habe einige Metriken auf meinem Java-Projekt ausgeführt und anscheinend gibt es viele Abhängigkeitszyklen zwischen Paketen. Ich wusste nicht wirklich, wie ich Sachen zu Paketen organisieren sollte, also tat ich einfach, was für mich einen Sinn ergab, was offensichtlich falsch ist.Wie organisiert man Pakete (und verhindert Abhängigkeitszyklen)?
Mein Projekt ist ein neuronales Netzwerk-Framework. Neuronale Netze haben Neuronen, die über Verbindungen miteinander verbunden sind. Sie müssen aufeinander angewiesen sein. Es gibt jedoch auch verschiedene Arten von Neuronen, also dachte ich, es wäre eine gute Idee, sie alle in ihr eigenes "Neuronen" -Paket zu legen. Offensichtlich ist eine Verbindung kein Neuron, also sollte sie nicht im Paket enthalten sein, aber da sie sich aufeinander beziehen, habe ich jetzt eine zirkuläre Abhängigkeit.
Dies ist nur ein Beispiel, aber ich habe mehr Situationen wie diese. Wie gehst du mit solchen Situationen um?
Außerdem habe ich gelesen, dass Klassen in einem Paket höher in der Pakethierarchie nicht auf Klassen in Paketen, die tiefer sind, beziehen sollen. Dies würde bedeuten, dass eine NeuralNetwork-Klasse im Paket 'nn' nicht auf das Neuron im Paket 'nn.neurons' verweisen kann. Folgt ihr diesem Prinzip? Und was, wenn ich NeuralNetwork zu "nn.networks" oder so etwas bewegen würde? In diesem Fall würde es sich auf ein Geschwisterpaket anstelle eines Kindes beziehen. Ist das eine bessere Praxis?
Ich habe vor kurzem ein ähnliches Tool entwickelt, das annotierte Klassen anstelle einer zentralen Konfigurationsdatei verwendet: https: // github.com/ruediste1/jabsaw – ruediste