È bello che i setter chiamanti seguano lo stesso ordine degli elementi XSD? [chiuso]

-1

Nel progetto su cui lavoro, usiamo XSD per generare alcune classi. XSD determina l'ordine degli elementi, simile a questo snippet:

<xs:element name="Customer_ID" type="com:Text6"/>
<xs:element name="Customer_Desc" type="com:Text150"/>
<xs:element name="Customer_Name" type="com:Text50"/>
<xs:element name="Institution" type="com:Text150" minOccurs="0"/>
<xs:element name="Scheme" type="com:Text50"/>
<xs:element name="Country" type="com:Country"/>

Un collega ha creato alcuni test in cui imposta campi oggetto in ordine diverso rispetto all'ordine in XSD, ad esempio:

obj.setCustomerName("name");
obj.setCountry("EU");
obj.setScheme("scheme");
obj.setCustomerDesc("description");
//etc.

Inoltre, usa un ordine diverso in diversi test. Ho sostenuto che dovremmo attenerci allo stesso ordine di codice che è in XSD perché in questo modo è più semplice leggere o modificare codice / XSD. Pensa che sia pignolo perché, alla fine, l'oggetto avrà i suoi campi inizializzati comunque.

Mi piacerebbe sentire i tuoi pensieri - è davvero questo il pisolino dal mio lato o no?

    
posta TheJavaGuy-Ivan Milosavljević 07.12.2017 - 11:30
fonte

3 risposte

2

Il fatto che tu stia usando XSD non è importante. Stai creando classi Java e a chi non interessa l'ordine (beh, a meno che non ci sia una dipendenza che dovrebbe essere affrontata nel costruttore o nel costruttore, piuttosto che attraverso setter). Mantenerli in ordine a causa dell'XSD può finire per essere un incubo di manutenzione, poiché qualsiasi modifica alla classe / schema potrebbe significare riordinare ogni singolo luogo in cui si utilizzano i setter

    
risposta data 07.12.2017 - 11:53
fonte
3

Ogni volta che sto svolgendo un compito noioso, come creare un nuovo oggetto X e impostarne 20, tendo a farlo in ordine alfabetico, perché è l'ordine in cui vedo le cose nel menu a discesa combo dell'intelligence / codice dell'IDE di IDE - mi aiuta a evitare di perderne uno. Sarei tentato di ordinare e aggiornare XSD in modo simile, inserendo nuovi elementi in ordine alfabetico purché non ci fosse una sequenzialità dichiarata, ma in questi giorni di "navigazione di ricerca trumps" sarei più propenso a Ctrl-F o qualche funzione "goto reference / implementation / declaration" basata su IDE piuttosto che guardare le cose e volere che siano in un certo ordine, quindi non mi interesserebbe molto se un amico dev avesse un approccio diverso nell'ordinare dichiarazioni indipendenti

Forse è meglio sfruttare un approccio di ricerca, quindi ti preoccuperai meno di cose come questa, o diventerai responsabile degli standard di codifica della tua organizzazione, quindi potrai scrivere le regole. (Attenzione alle regole di scrittura che vanno contro il modo generalmente accettato / facile di fare le cose - guarda quanti anni il Codice della strada ci ha detto "lampeggia solo i fari per far sapere all'altro conducente che sei lì" quando tutti sempre e per sempre vorrà dire "procedi con il corso dell'azione che presumo tu stia per fare, se mi sorprendi posso sempre darti il corno e il dito")

    
risposta data 07.12.2017 - 13:08
fonte
1

Non dici quale sia il contenitore per i tuoi elementi.

se utilizzi un <xs:sequence> , viene applicato l'ordine degli elementi.

Ho dato un'occhiata e non riesco a vedere se sono presenti eventuali condizioni se usi solo schema . Immagino che dalla tua domanda non venga applicato alcun ordine.

Nell'insieme, xsd è uno strumento complesso e la definizione di classi attraverso il suo uso potrebbe diventare complicata se si vuole essere rigorosi con esso. Questo fa parte del motivo del passaggio da xml a json.

Inoltre, in questo caso sta semplicemente impostando i valori sugli oggetti. non li definisce.

    
risposta data 07.12.2017 - 13:11
fonte

Leggi altre domande sui tag