Software development is engineering, after all. When we’re writing code, we’re writing specification, we’re trying to express our requirements in a very specific language that can be understood by a machine.
But why do we need to write solid code? Because we expect our code to live beyond its first release, and we want to be able to change it with at a linear cost, possibly as low as possible. To achieve that your code must be built using well define design principles, someone said SOLID(*): SRP, OCP, LSP, ISP, DIP. In this talk these basic principles will be exposed and discussed, by Bruno Bossola.

(*) Robert C. Martin, aka “uncle bob”