Sono un neofita dei moderni compilatori e macchine virtuali Java, quindi sono curioso, quali sono le problematiche tecniche che i grandi progetti Java (più di 5000 classi considerevoli) incontrano, durante la compilazione e durante il runtime, come il nodo gordiano delle dipendenze dei pacchetti cresce?Esistono motivi tecnici per evitare di creare dipendenze di pacchetti altamente aggrovigliati in progetti Java di grandi dimensioni?
In progetti C++ di grandi dimensioni, è possibile entrare nei problemi tecnici (tutti i problemi di manutenibilità a parte) se ci si allontana da un grafico di dipendenza aciclica della libreria (o del pacchetto) in progetti di grandi dimensioni.
Alcuni esempi
- compilazione possono esaurire la memoria se la maggior parte di una struttura di origine è incluso
- linking farlo anche se troppi gli archivi degli oggetti vengono inclusi (gli archivi di oggetti in genere in correlazione con i pacchetti in C++ progetti)
Il problema è considerevolmente esacerbato dall'istanziazione di template in linea. Le moderne workstation non sono in grado di compilare e collegare un progetto che estrae la maggior parte di 5000 classi di dimensioni considerevoli in entrambe le fasi della costruzione.
Gli sviluppatori Java che ho chiesto non credono che le limitazioni tecniche siano un motivo per evitare le dipendenze del pacchetto circolare (si applicano altre motivazioni). Ci sono?
Indipendentemente dalle limitazioni tecniche di Java, le dipendenze dei pacchetti ciclici possono portare a un monolite. Evitarli può essere utile. –
@ AndyThomas-Cramer - Che cosa è una "dipendenza del pacchetto" in Java? Non penso che ci sia una cosa del genere (per quanto riguarda il compilatore). –
@TedHopp - vedi la risposta al tuo commento simile qui sotto. –