How to code a simple voucher / coupon system from scratch.
Conventions in programming are important. They improve readability, velocity and new developer onboarding.
In this post I'm going to distill what I believe are the essential differences between Abstraction and Encapsulation. These concepts can be confusing for new and old developers alike!
"YAGNI" is an acronym that stands for "You Ain't Gonna Need It" In practice, what it means you shouldn't jump the gun and write software that you presume you'll need in the future. Build the simplest thing that will work and then see if you need what you initially presumed.
In this post you're going to learn about each of the 5 SOLID Principles. I've included some code examples to make them a bit more real. I've also added some thought exercises / mental models that helped me understand these principles in the hope that they'll help you too.