Hardening - raisercostin/software-wiki GitHub Wiki
At moments some system might be found in a fragile, unpredictable state. Things to do to take control back:
- clarify principles (They are few and act as a compas when new situations are found)
- don't jump to various bugs but fix all the first bug (start with blocking, criticals, major, normal(performance) ) that you discover that impacts common scenarios.
- add tests that exercise the discovered bug
- refactor in order to be able to add such tests
- consider bugs the following scenarios
- performance - response times on UI and from servers
- performance on load
- any stacktrace is a result of a bug, a special situation that was not handled at the business level
- Fail Fast
- Test-Driven-Development
- Use Constructor Injection
- Natural manually wiring
- detects circular dependencies (good design) - https://www.yegor256.com/elegant-objects.html
- Programming to Interfaces/Abstractions
Things that help in general
- format all code according to some agreed conventions/guidelines
- structure build/sources according to standard conventions (maven)