Domanda

Il mio progetto sta lentamente attuando annotazioni Java. La metà degli sviluppatori - me compreso - scoprire che fare qualcosa di complesso con annotazioni sembra aggiungere al nostro onere di manutenzione generale. L'altra metà della squadra pensa che siano ginocchia dell'ape.

Qual è la vostra esperienza del mondo reale con i team di sviluppatori in grado di mantenere il codice annotato?

È stato utile?

Soluzione

Mi sento si rompe in due usi delle annotazioni - annotazioni di fornire una 'descrizione' di una classe rispetto annotazioni per fornire una 'dipendenza' della classe.

Io sto bene con un 'descrizione' uso di annotazioni sulla classe - che è qualcosa che appartiene alla classe e l'annotazione aiuta a fare una versione abbreviata di che - annotazioni APP rientrano in questa.

Tuttavia, non mi piace molto le annotazioni 'dipendenza' - se avete deciso di mettere la dipendenza direttamente sulla classe - anche se è determinato in fase di esecuzione da un'annotazione piuttosto che al momento della compilazione della classe - non è che la rottura iniezione di dipendenza? (Forse nello spirito piuttosto che in regola ...)

Può essere preferenza personale, ma come il grande unico file XML che contiene tutte le informazioni sulle dipendenze della mia candidatura - Credo che in questo 'di configurazione dell'applicazione' piuttosto che 'la configurazione di classe'. Preferirei la ricerca in quella posizione nota rispetto alla ricerca attraverso tutte le classi in app.

Altri suggerimenti

La mia esperienza personale è che, in media, si occupano di annotazioni è molto più facile per la maggior parte degli sviluppatori che fare con il tuo inferno Java di configurazione XML standard. Per le cose come APP e Spring test sono bagnini assoluti.

La cosa buona di annotazioni è che fanno di configurazione sul classi auto-documentazione. Ora, invece di avere per la ricerca in un file XML enorme per cercare di capire come un quadro sta usando la classe, il tuo class ti dice.

Di solito il problema con i cambiamenti come questo è che abituarsi a loro semplicemente richiede tempo. La maggior parte delle persone, tra cui sviluppatori, resistono al cambiamento. Mi ricordo quando ho iniziato a lavorare con la Primavera. Per le prime settimane mi chiedevo perché qualcuno dovrebbe mettere in su con il mal di testa ad esso associati. Poi, poche settimane dopo, mi sono chiesto come avrei mai vissuto senza di essa.

Sono assolutamente amore le annotazioni. Io li uso da Hibernate / JPA, Seam, JAXB .... tutto ciò che posso. IMO non c'è niente di peggio che dover aprire un file XML solo per scoprire come una classe viene gestita.

Per le mie annotazioni oculari permettono una classe di parlare per sé. Anche le annotazioni sono (si spera) parte del contenuto IDE assist, mentre con configurazione XML si sono di solito da soli.

Tuttavia, può scendere a come i file di configurazione XML e annotazioni sono in realtà utilizzati da qualsiasi libreria particolari (come la maggior parte offrono entrambi), e che tipo di annotazione viene utilizzato. Posso immaginare che le annotazioni che definiscono qualcosa che è specifico build-(ad es. Percorsi di file / URL) potrebbe in realtà essere più facile come configurazione XML.

Dipende molto sul supporto IDE. Sento che le annotazioni dovrebbero essere tenuti in sincronia con il codice tramite controlli nel IDE, ma che il supporto per questo è un po 'carente.

es. la versione precedente di idea sarebbe mettere in guardia se si escludeva una funzione senza @Override, ma non rimuovere il tag @Override se è stata modificata la firma del metodo (o la firma superclasse, è per questo) e ha rotto il rapporto.

Senza il supporto li trovo un modo ingombrante per aggiungere metadati al codice.

Personalmente ritengo che il caso specifico uso che lei ha citato (auto-generare moduli web) è un grande caso d'uso per le annotazioni. qualsiasi tipo di scenario "quadro" in cui è possibile scrivere codice semplificato e lasciare che il quadro fare il pesante (spesso ripetitive) sollevamento sulla base di alcuni suggerimenti (aka annotazioni) è, credo, il caso d'uso ideale per le annotazioni.

Sono curioso il motivo per cui non come le annotazioni in questa situazione, e ciò che si considera essere il "fardello di manutenzione"? (E, non sto cercando di insultare la vostra posizione, basta capirlo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top