Anil Wadghule explains why applying SOLID OO design principles to their extreme leads to Functional Programming.
Nat Pryce, Steve Freeman advise on design principles useful to create code structures with objects that fit together and communicate, and where the capabilities and the information flow are explicit.
Robert Reppel discusses applying DDD and SOLID techniques in order to improve legacy code, exemplifying with real code.
Colin Jones discusses applying the SOLID OOP principles to Clojure programming in order to create systems that are easy to change.
Phil Japikse explains SOLID software principles - Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion- and how to apply them using design patterns.