Sfondo : sto lavorando a un servizio in cui la logica del dominio esiste come una libreria, e quindi l'eseguibile effettivo è costruito su un framework web come un wrapper attorno alla libreria logica del dominio. Non è garantito che due clienti eseguano la stessa versione di questo servizio.
Attività : mi è stato chiesto di creare un modo per stampare lo schema per rappresentare un sottocomponente della logica del dominio.
La mia soluzione : l'ho implementata come indicatore della riga di comando sul file eseguibile del servizio. Cioè se si passa --dump-schema X
durante l'esecuzione del servizio, verrà semplicemente scaricato lo schema previsto di X e quindi uscito. Se non passi alcun flag, non stamperà nulla ma inizierà ad accettare le richieste come al solito.
Logica : l'ho fatto in questo modo per garantire che l'output del dump dello schema rimanga sincronizzato con quello che il servizio effettivo si aspetta quando viene eseguito dallo stesso binario. Inoltre, è mia personale convinzione che se una richiesta al servizio ha senso come un'invocazione da riga di comando one-shot, allora raramente è una cattiva idea consentirlo.
Esamina i commenti : quando discuti con un membro senior del team, hanno sostenuto che l'intera segnalazione della riga di comando è un passo indietro rispetto a come hanno fatto le cose prima - e potrebbe confondere come risultato. Preferirebbe se ci fosse un% eseguibile separatodump_schema
che ha emesso il comando.
Controversia : posso capire l'argomento; sono un negozio Microsoft / Windows, quindi la CLI non è il modo in cui interagiscono naturalmente con i loro computer. Tuttavia, si stanno lentamente spostando verso un ambiente Linux / Unix, quindi secondo me è una specie di punto controverso.
La mia esitazione : tuttavia, riflettendo su questo punto, mi rendo conto che non ho argomenti validi per stabilire se sia preferibile un approccio (flag CLI o eseguibile separato). Sono praticamente la stessa cosa, tranne uno multiplex nella procedura main
e l'altro nella shell.
Quindi c'è qualche possibilità che i geni siano in grado di confrontare e confrontare i due approcci? O è veramente un lavaggio?