Design-by-contract is a powerful, but less well known, technique to improve software quality. General information can be found in the Wiki.
The goals of this repo are as follows:
- Document via examples the built-in, but less commonly known, DbC features of Scala. For example, Predef.ensuring
- Document patterns such as trait based specs. These are contained in the test pacakge.
- Collect a robust implementation of missing features such as invariants. These are in the main dir.
- Capture discussions and documents regarding implementation, trade-offs and growth scenarios around DbC in scala
Any help towards these goals gladly accepted!
I want to thank Martin Odersky for providing the original material that started this project.