Each significant piece of functionality in a program should be implemented in just one place in the source code. Where similar functions are carried out by distinct pieces of code, it is generally
beneficial to combine them into one by abstracting out the varying parts.
10
“ ”
The Abstraction Principle
Benjamin C. Pierce -‐ “Types and Programming Languages” (2002)
versioning
re-use
sharing
tools
portability
Architecture
2 x 2Restful API for CI/CD integration
Web-‐based front-‐end for enduser
Runs on a standalone server
Runs on a laptop/desktop
Why use this?
Performance Low Barrier to Entry Owned by User Portable Test Any Version