Documentation, it is alive!
Tools to keep documentation up to date without putting too much effort:
Readme templates/suggestions:
- https://github.com/noffle/art-of-readme
- https://github.com/zalando/zalando-howto-open-source
- https://github.com/ascott1/readme-template
- https://github.com/RichardLitt/standard-readme
Consumer Driven Contracts (CDC)
- https://martinfowler.com/articles/consumerDrivenContracts.html
- https://cloud.spring.io/spring-cloud-contract/
- https://www.thoughtworks.com/radar/techniques/consumer-driven-contract-testing
- https://github.com/zielona-gora-jug/consumer-driven-contracts
- “Building Microservices: Designing Fine-Grained Systems” by Sam Newman
Performance testing
- Run performance tests at least once and save the results
- Run stability tests at least once
- Don’t forget to run them on environment similar to production
- This isn’t as much of time consuming as many think
Tools:
Package by feature (OOD approach)
- Create mid-size building blocks using packages and package-scope
- Those packages are your modules, this is your architecture
- public = published interface
- Remove public from all your IDE templates
- Test modules as black boxes via interactions with it and other modules (no internal state verification)
- Write acceptance tests as unit tests (bloody fast and easy)
- Write integration tests to check wiring, I/O, configuration, positive flow (again)
- It’s actually simpler than not doing it
- Make building blocks that people can understand and use easily