He estado ejecutando algunas métricas en mi proyecto Java y aparentemente hay muchos ciclos de dependencia entre paquetes. Realmente no sabía cómo organizar cosas en paquetes, así que hice lo que tenía sentido para mí, lo que aparentemente está mal.¿Cómo organizar paquetes (y evitar ciclos de dependencia)?
Mi proyecto es un marco de red neuronal. Las redes neuronales tienen neuronas, que están conectadas entre sí con conexiones. Necesitan depender el uno del otro. Sin embargo, también hay diferentes tipos de neuronas, por lo que pensé que sería una buena idea incluirlas en su propio paquete de "neuronas". Obviamente, una conexión no es una neurona, por lo que no debería estar en el paquete, pero dado que se refieren entre sí, ahora tengo una dependencia circular.
Esto es solo un ejemplo, pero tengo más situaciones como esta. ¿Cómo manejas este tipo de situaciones?
Además, he leído que las clases en un paquete más arriba en la jerarquía de paquetes no deben referirse a clases en paquetes que son más profundos. Esto significaría que una clase NeuralNetwork en el paquete 'nn' no puede referirse a la Neurona en el paquete 'nn.neuronas'. ¿Ustedes siguen este principio? ¿Y qué pasaría si moviera NeuralNetwork a 'nn.networks' o algo así? En ese caso, se referiría a un paquete de hermanos en lugar de a un niño. ¿Es esa una mejor práctica?
Recientemente desarrollé una herramienta similar que utiliza clases anotadas en lugar de un archivo de configuración central: https: // github.com/ruediste1/jabsaw – ruediste