8.1. Use Property-Based Tests to Validate Your Assumptions.
Property-based tests will try things you never thought to try, and exercise your code in ways is wasn’t meant to be used.
8.2. Keep It Simple and Minimize Attack Surfaces.
Complex code creates a breeding ground for bugs and opportunities for attackers to exploit.
8.3. Apply Security Patches Quickly.
Attackers deploy exploits as quick as they can, you have to be quicker.
8.4. Name Well; Rename When Needed.
Name to express your intent to readers, and rename as soon as that intent shifts.
8.5. No One Knows Exactly What They Want.
They might know a general direction, but they won’t know the twists and turns.
8.6. Programmers Help People Understand What They Want.
Software development is an act of co-creation between users and programmers.
8.7. Requirements Are Learned in a Feedback Loop.
Understanding requirements requires exploration and feedback, so the consequences of decisions can be used to refine the initial ideas.
8.8. Work with a User to Think Like a User.
It’s the best way to gain insight into how the system will really be used.
8.9. Policy Is Metadata.
Don’t hardcode policy into a system; instead express it as metadata used by the system.
8.10. Use a Project Glossary.
Create and maintain a single source of all the specific terms and vocabulary for a project.
Thanks for reading, happy coding 😀
Top comments (0)