Functional SOLID, Part 1

by Matt Stine

August 2012

In this issue we'll begin a short series on the intersection of the SOLID principles of object-oriented design and programming with the functional programming paradigm. We’ll begin with a short discussion describing the motivation for this series, followed by a quick overview of SOLID and an in-depth dissection of the Single Responsibility Principle. In September, we'll look at the Open-Closed and Liskov Substitution Principles, followed by the Interface Segregation and Dependency Inversion Principles in October. Finally, in November, we'll go "meta" with the SOLID principles, examine their overall relationship to software complexity and discuss their applicability to the entire spectrum of programming paradigms.

About Matt Stine

Global CTO - Software Architecture at Pivotal

Matt Stine is an 18 year veteran of the enterprise IT industry, with nine of those years spent as a consulting solutions architect for multiple Fortune 500 companies, as well as the not-for-profit St. Jude Children's Research Hospital. He is the author of Migrating to Cloud-Native Application Architectures from O'Reilly, and the host of the Software Architecture Radio podcast.

Matt is obsessed with the idea that enterprise IT “doesn’t have to suck,” and spends much of his time thinking about lean/agile software development methodologies, DevOps, architectural principles/patterns/practices, and programming paradigms, in an attempt to find the perfect storm of techniques that will allow corporate IT departments to not only function like startup companies but also create software that delights users while maintaining a high degree of conceptual integrity. He is currently the Global CTO of Architecture at Pivotal, and spends much of his time advising IT leadership on the effective adoption of cloud-native architectures.

Matt has spoken at conferences ranging from JavaOne to OSCON to YOW! and is a nine-year member of the No Fluff Just Stuff tour. Matt is also the founder and past president of the Memphis Java User Group.