Il problema della versione è un incubo nella programmazione? [chiuso]

-2

Supponiamo che tu stia costruendo un'app e stai utilizzando l'ultima versione della libreria di terze parti (ad esempio ver2.jar ). Poi hai visto un esempio scritto 2 anni fa, ma quell'esempio usa ver1.jar

Ora in ver1.jar , c'è web.method1() , ma in ver2.jar non esiste un tale metodo. Invece, in ver2.jar hai web.getOtherMethod.method1();

Hai eseguito la tua app con ver2.jar e hai trovato molte classi mancanti e molti errori. Allora, cosa hai intenzione di fare per risolvere l'incompatibilità?

Penso che il problema della versione sia davvero un incubo perché non è strutturato e in realtà non capisci cosa sta succedendo.

Inoltre, perché cambiato la posizione del metodo in ver2.jar in modo così diverso?

    
posta Tum 17.05.2014 - 02:13
fonte

2 risposte

4

Questa non è una questione di controllo delle versioni o di verison - questa è una questione di design di un'interfaccia ambrata. Nella corretta progettazione professionale del codice di utilità, non si "crea una nuova versione" dell'interfaccia completamente incompatibile con quella precedente, soprattutto senza fornire un livello di compatibilità.

Nell'esempio che hai fornito, l'interfaccia web contenuta nel file ver1.jar ha un metodo simile al seguente:

interface web {
   void method1()
}

Una volta che questo è pubblicato e fornito per uso pubblico, è amishish per sempre, mai, mai romperlo. Di solito, gli sviluppatori definiscono un'interfaccia aggiuntiva, possibilmente con un riferimento alla vecchia maniera di fare le cose

interface web2 {
    web getOtherMethod()
}
interface oldStuff {
   void method1()
}

Inoltre, non sarebbe improprio aggiungere metodi aggiuntivi a un'interfaccia esistente:

interface web {
   void method1()
   void method2()
}

Ma se una modifica alla versione semplice rompe il codice che hai scritto contro una libreria, non è una libreria che vale la pena utilizzare, o stavi tentando di scrivere direttamente sull'interno invece dell'interfaccia.

Per ulteriori letture su Java e interfacce, sono disponibili tutorial di base disponibili per Java e non è difficile trovare un programmatore esperto per esaltare le virtù delle interfacce e l'incapsulamento.

    
risposta data 17.05.2014 - 05:04
fonte
2

Ci sono modi per proteggersi quando si utilizzano librerie di terze parti. Uno di questi metodi è utilizzare il Pattern adattatore . In questo modo è possibile utilizzare la classe e mantenerla relativamente uguale nel codice base e apportare eventuali modifiche necessarie con la libreria nella classe dell'adattatore. Renderà inoltre molto più semplice il test delle unità per verificare le modifiche alla versione poiché è sufficiente testare la classe dell'adattatore piuttosto che l'intera base di codice per garantire che eventuali modifiche nell'aggiornamento della libreria non abbiano alcun impatto su nessun altro.

    
risposta data 17.05.2014 - 04:33
fonte

Leggi altre domande sui tag