Principles of Software Design

7 years ago | Software Design Videos
You've heard the terms before: YAGNI, SOLID, Tell Don't ASK, DRY... what are they and what do they mean?

As you build applications using the patterns we learned in the previous videos, you begin to see some common side effects.

For instance: the Strategy, Adapter, Mediator and Bridge Patterns lead you to think a little bit more about better ways to manage dependencies between classes. You also begin to create rules and reasons why code should even exist in the first place.

Obviously, this is not a small topic. In this chapter we'll discover the key principles you should understand, who came up with them, and why. These concepts include Coupling, Cohesion, Tell Don't Ask, YAGNI, and SOLID.

The Code

You can find the code for each of the demos up on GitHub.

There's More...

🤖 Does Functional Programming Matter To You?

Learning Elixir changed me as a programmer, and learning functional concepts changed the way I think about writing software. How about you? Is functional proogramming a useful thing to learn?

👻 Hacking Ghost for Fun and Profit

I've been using Ghost for many years and recently I decided to see just how far I could push it.

All Courses Are Belong To You

Lots happening here, so here’s an update.