It's More what You'd Call "Guidelines" than Actual Rules Unlike methodologies - which are entire, well-defined processes - and patterns - which are concrete, readily identifiable on sight, and reproducible on demand - principles are simply concepts that software engineers can use to guide how we write code, as opposed to what code we write. … Continue reading Design Principles: Intro
Month: July 2019
Design Patterns: The Adapter Pattern
Adapting Dependencies to an Interface The Adapter Pattern is one of the fundamental building blocks of software engineering. It allows two pieces of software to interact by adapting each of their public interfaces to the other's. Used properly, this serves to keeps those two pieces of code independent and decoupled, which in turn promotes high … Continue reading Design Patterns: The Adapter Pattern
Design Patterns: Intro
Reusable Tools Software design patterns are powerful components that can be reused, and incrementally refactored to suit particular purposes. As with the cookie cutter above, just because it will always produce the shape of cookie doesn't mean you can't use different decorations. This is an introductory post to the concept of software design patterns and … Continue reading Design Patterns: Intro
Software Design Philosophy Overview
Software Design Methodologies, Principles, Patterns, and Anti-Patterns This is an introductory post to a series on software design philosophy. Software design is tricky. There are a lot of moving parts to it, far beyond the basic concepts just writing code. During a recent conversation with some software engineer friends of mine, several of the higher-level … Continue reading Software Design Philosophy Overview
Welcome to the next phase of my career
I've managed to avoid writing a blog for 10 years now. Not because I don't have plenty to say - those who know me are fully aware of just how opinionated I can be - but because I just didn't have the time. I've spent the time I could have been writing a blog learning … Continue reading Welcome to the next phase of my career