The objective of this thesis is to evaluate whether or not Clojure Spec meets the goals it sets out to meet with regards to easy data validation, performance and automatically generated tests in comparison to existing specification systems in the Clojure ecosystem. A specification for a real-world data format was implemented in the three currently popular specification systems used in Clojure. They were then compared on merits in terms of performance, code size and additional capabilities. The results show that Spec shines with complex data, both in expressivity and validation performance, but has an API more complex than its competitors. For complex enough use cases where expressing regular data structures and generative testing is desired the time investment of learning Spec pays off, in simpler situations an assertions library like Truss can be recommended.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:liu-142271 |
Date | January 2017 |
Creators | Luckey, Christian |
Publisher | Linköpings universitet, Programvara och system |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0018 seconds