Ho scritto personalmente alcuni piccoli servizi HTTP e i client che li hanno consumati. C'è una domanda su CodeReview nelle domande a caldo su un wrapper per alcune API RESTful che mi ha fatto meraviglia, se mai dovessi scrivere "involucri" a mano "?
Il mio flusso di lavoro era in genere:
- Scrivi codice lato server
- Provalo o, per essere sincero, prova it
- Scrivi wrapper sul lato client per utilizzare il servizio
Ho sentito parlare di linguaggi che descrivono i servizi (WSDL) e che consentono la generazione automatizzata di tali wrapper. Questo ha senso: se il servizio cambia, anche i wrapper.
Non ho mai usato descrizioni di questo tipo per i servizi che ho scritto. Tuttavia, ho notato lo sforzo duplicato di scrivere codice sia su server che su client su una "interfaccia" comune. C'è anche un sacco di codice boilerplate, come fare richieste, serializzare / deserializzare i dati in JSON, XML o qualsiasi altro formato. Sarebbe bello ottenere automaticamente il codice wrapper.
Si dice che i linguaggi di descrizione devono essere scritti automaticamente, derivati da un codice di servizio già scritto.
Perché è così? Perché non dovrei avviare il processo scrivendo una descrizione del servizio, in modo da poter creare automaticamente wrapper per esso sia dal lato server che lato client? O almeno creare gli stub di classi / metodi con parametri già (de) / serializzati, ecc. Perché è necessario scrivere codice, derivarne una descrizione per ricavare codice da quello. Oppure la mia comprensione delle descrizioni dei servizi è errata? Mi piacerebbe migliorare il mio codice utilizzando le descrizioni dei servizi.
Quando avvio un nuovo progetto che non deve essere applicato a nessun codice esistente, non è la migliore idea di creare prima la descrizione, di avere una definizione astratta dell'intera cosa e ricavarne tutto il resto?