1.
Introduction
2.
What Are Bugs
2.1.
Consumer Input Incorrect
2.2.
Provider Output Incorrect
2.3.
Semantic Ambiguity
2.4.
Detached Parameters Incorrect
2.5.
Undesired Side Effects
2.6.
Input Restrictions Too Loose
3.
Causes of Bugs
4.
Patterns
4.1.
Strong Types
4.2.
Parse, Don't Validate
4.3.
Builder
4.4.
Option Type
4.5.
Either Type
5.
Application
6.
Conclusion
7.
Questions and Comments
Thanks
Light
Rust
Coal
Navy
Ayu
Bug Reducing Patterns
Conclusion
🐜
Bugs come in many different forms.
Bugs happen because it is impossible to know and handle everything perfectly.
Using
types
as proof of assumptions helps us write correct code.