clojure-italy

🇮🇹
reborg 2021-02-04T09:45:48.002600Z

Giorno. Approccio interessante per static typing in Clojure https://github.com/arohner/spectrum

reborg 2021-02-04T09:49:32.005400Z

Non ne abuserei (non mi piace l’idea di avere specs su ogni funzione). Vorrei capire se posso limitarmi a scrivere specs solo per la parte pubblica di un namespace, oppure se sarei costretto a farlo su tutte le funzioni.

Andrea Imparato 2021-02-04T09:53:53.006100Z

fico, che differenza c’e’ tra test.check e questa lib? :thinking_face:

william 2021-02-04T10:39:18.008200Z

ciao @reborg se ho capito bene in quel progetto dovresti poter scrivere spec solo per una parte delle tue funzioni. Detto cio', non l'ho ancora usata, quindi se la usi tienimi aggiornato. Altre cose simili sono guardrails e https://www.fulcrologic.com/copilot (evoluzione commerciale di guardrails sempre dell'autore di fulcro)

william 2021-02-04T10:41:12.009600Z

@imparato.andrea test.check e' property base testing, cioe' genera valori on demand (e magari controlla che soddisfino delle proprieta'). spectrum vorrebbe essere un tool di analisi statica (quindi non a run-time) che controlla le spec

👍 1
william 2021-02-04T10:41:54.010300Z

@reborg io per ora sto usando guardrails pero' pagherei per un buon tool di analisi statica

reborg 2021-02-04T12:19:30.010600Z

> Altre cose simili sono guardrails e https://www.fulcrologic.com/copilot (evoluzione commerciale di guardrails sempre dell’autore di fulcro) > @reborg io per ora sto usando guardrails pero’ pagherei per un buon tool di analisi statica (edited) Si non ho nessuna esperienza con Spectrum in particolare (che e’ ancora molto sperimentale). Sembra che il maggior beneficio al momento, sarebbe per situazioni dove si fa uso di spec annotations e vuoi capire a compile time se le specs che hai scritto hanno senso tra di loro. Sembra molto simile a Copilot come approccio: evitare di decorare tutto con specs e fare una parte di inference guardando al codice che hai scritto.

william 2021-02-04T16:34:38.011100Z

cosa usi tu per controllare le spec @reborg?

reborg 2021-02-04T17:01:26.011800Z

niente di speciale, principalmente unit testing

👍 1
richiardiandrea 2021-02-04T23:23:51.012600Z

oggi ho scoperto che non posso usare spec con defprotocol 😄

reborg 2021-02-05T09:16:48.013Z

il workaround (non ideale) pare che sia https://groups.google.com/g/clojure/c/f068WTgakpk/m/DpucRRYTBQAJ

richiardiandrea 2021-02-08T17:28:35.020300Z

Il problema di quella soluzione e' che ti perdi il vantaggio dell'aver introdotto un'interfaccia al tuo namespace

richiardiandrea 2021-02-08T17:30:06.020500Z

perche' chiamo foo che non e' parte del protocollo