PodParley PodParley

#5 Design Patterns: What's Their Connection to Fundamental Design Principles?

Episode 5 of the Inspect and Adapt podcast, hosted by Steve Tockey, titled "#5 Design Patterns: What's Their Connection to Fundamental Design Principles?" was published on December 17, 2019 and runs 39 minutes.

December 17, 2019 ·39m · Inspect and Adapt

0:00 / 0:00

Construx Principal Consultant Steve Tockey and Mark Griffin discuss design patterns in a unique way by emphasizing the importance of understanding fundamental design principles when you’re using patterns. Of the top five reasons that software projects get into trouble, the most significant issue that is directly under the control of software developers is the complexity in the code base. Both industry data and Steve’s own engagement-derived data over 20 years of software consulting support th...

Construx Principal Consultant Steve Tockey and Mark Griffin discuss design patterns in a unique way by emphasizing the importance of understanding fundamental design principles when you’re using patterns.

Of the top five reasons that software projects get into trouble, the most significant issue that is directly under the control of software developers is the complexity in the code base. Both industry data and Steve’s own engagement-derived data over 20 years of software consulting support this. As Steve McConnell has argued, the prime directive of the software professional is to manage complexity.

Steve and Mark dive into specific kinds of code complexity—such as cyclomatic complexity, depth of decision nesting, fan out, and number of parameters—and describe the fundamental design principle related to complexity: minimize overall complexity by balancing local and global complexity. Without measuring complexity in your code base, you can’t actually effectively control it. By measuring it, you can achieve the balance of complexities that most significantly decreases your code’s overall complexity.

Steve and Mark continue by listing the fundamental design principles Steve covers in his design patterns training so as to begin to address a key question: Why is understanding the fundamental design principles important if you’re using design patterns? The list of principles applies across a broader spectrum of software creation than the SOLID principles do. Steve’s list causes you to pay attention to software attributes that you wouldn’t pay attention to if you were using only the SOLID principles.

Steve argues that you can’t deeply understand what a pattern is up to unless you understand why the pattern looks the way it does. Each software pattern is primarily driven by a fundamental design principle and can be influenced by other fundamental design principles. For example, the Strategy pattern is primarily driven by the encapsulation principle and is influenced by Liskov substitutability and cohesion and coupling. Understanding the connections between design patterns and design principles vastly deepens your understanding of the patterns and their applicability.

The episode ends with a thorough discussion of another fundamental design principle: encapsulation, which is achieved only via Design by Contract. The difference between code syntax and code semantics enters the discussion to help explain how code contracts operate. You have to get beyond syntax to achieve higher quality code with fewer defects, which are semantic inconsistencies. Compilers are ruthless masters of syntax but can’t help with code semantics.

Links to Steve Tockey’s books:

How to Engineer Software: A Model-Based Approach (Wiley-IEEE Computer Society Press, 2019)

Return on Software: Maximizing the Return on Your Software Investment (Addison-Wesley Professional, 2004) 

35ish Podcast Ashley Bowne & Lisa Gomez Welcome to 35ish. Each week, Ashley Bowne and Lisa Gomez (friends since meeting freshman year in high school), tap into their shared gift of gab where together they inspect and reflect, to better connect with the world! They discuss all things timely and timeless from careers, friendship, marriage, kids, pop culture, fashion trends, books, television, travel, and mental health as they explore what it means to be 35ish. Join us for topics that are versatile and will make you smile! Support this podcast: https://anchor.fm/35ishpodcast/support #moldfinders: RADIO Brian Karr Get advice from mold expert, Brian Karr, on how to find and remove mold and mycotoxins from your home so you can get healthy again! Brian Karr is the Co-Founder of We Inspect and the Creator of #moldfinders:METHOD and Mold Masterclass. He has helped thousands of people across 5 different continents learn how to find and remove the hidden mold and mycotoxins that are making them sick. Anyone can be a #MoldFinder! Get ready to hear the secrets that have made him the go-to referral for mold doctors across the country to help their patients create homes that allow them to heal! Dice & Mallet: Joy Hammer Unboxed Joy Hammer Games Listen in as Roch, the mind behind Joy Hammer Games, and Eddie, the tabletop titan, unbox, review, dissect and inspect everything related to the world of board games. Forget Netflix; who needs a screen when you've got cardboard? From East Texas innovations to global game gems, we're here to be the voice of the meeple. Join us on some cardboard adventures, and remember: keep those dice on the table. Please get rid of that monkey on my back Onetony Leone Objectives are to expand and inspect the addiction world and all it concernsAddiction world. I'm going to change the perspective I'm tired of accepting limited selfish regard of a tragic reality.. Believe me friends
URL copied to clipboard!