To ensure the project succeeds in the short term and thrives in the long term, Slinky follows a set of core principles that guide its features:
- Modularity: Allow developers to choose parts of Slinky that are appropriate for their apps
- Type safety for development experience: Provide type safe facades whenever it can improve the coding experience, but not when it obscures the underlying concepts
- IDE Support: Ensure that all Slinky features are well supported in major IDEs; place new features on hold if IDEs do not support their implementations
- Treat backward compatibility with utmost care: Carefully design APIs to avoid breaking them in future. When breaking backwards compatibility outweighs the cost, document the breaking change clearly and follow the semantic versioning scheme so users aren’t caught off-guard.
- Quality: Cover each feature with unit and integration tests to ensure that each new release is at least as good as the last one.
- Documentation: Document each feature so that developers can learn about them and use them effectively.