Leandro Doctors
unread,Aug 28, 2020, 11:05:50 AM8/28/20Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to clo...@googlegroups.com
Hello,
Along with a friend, we are preparing a short talk on spec.
The main idea is to show some lessons we "learned" (read: _are_
learning) exploring this awesome tool.
This talk will be aimed at a "geeky" audience unfamiliar with Clojure,
so we will surely add some quick Clojure overview.
Below is our current abstract draft[*]. Whereas there are certainly
plenty of things to talk about when it comes to spec, our original
focus is on showing how spec can help modeling our domain. What do you
think about the focus? Any other improvement suggestions? After 4+
years of clojure.spec (and plenty of talks about it)... What would you
like to see in a clojure.spec talk?
We are also interested in spec-like tools/libraries for other
general-purpose languages, so we can compare them with spec. Although
we think it is very likely there are similar tools around (after all,
formal verification has been around since the dawn of programming), we
are not aware of any other tool as widely used in a general-purpose
language as spec is within Clojure. Maybe you know of such a tool?
Your feedback will be more than welcome!
Thanks,
Leandro
[*] I am pretty sure that the English text of our abstract can be
improved. We started crafting it in Spanish...
*****************************
clojure.spec: A Swift way to Evolve our Domain Model
clojure.spec is a Clojure library that enables us to: 1) describe what
properties should our data conform to, and 2) verify the compliance of
those properties, both at compile time and run time. This quasi-formal
(and, also, verifiable!) specification step of the data model
complements the domain problem modelling step.
During our talk we will show: 1) how this specification usage not only
reduces parameter-validation error generation, but also the generation
of other types of errors within the functions’ code itself; 2) how
this mechanism can be used when writing tests; either standalone, or
combined with some “xDD” variant; and 3) some lessons we learned along
the process.