Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Designing SOLID, Patterned Code

Designing SOLID, Patterned Code

Most developers who have been in industry for a while will have heard about the SOLID principles, some may even have been asked interview questions about them, but far fewer fully understand them. The SOLID principles, understood and judiciously applied, result in code that is easier to understand, maintain, and test. With that end in mind we will cover each of the SOLID principles striving to understand them and their relationship to design patterns. In this session we’ll get our hands dirty designing a command line application that allows new commands with their associated switches and options to be easily added, parsed, and validated.

Avatar for Kaleb Pederson

Kaleb Pederson

March 08, 2018

Other Decks in Programming

Transcript

  1. Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition

    Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Repetition Needless Needless Repetition
  2. I.E. “The behaviors of an object that are expected to

    change should be able to change without modifying the object itself.”
  3. Password? • 1 upper case character • 1 lower case

    character • 1 number • 2 symbols
  4. def Liskov Substitution Principle (LSP): “If it can be assumed,

    it will be, but don’t violate assumptions.”
  5. Credits • Colors via [email protected] • SOLID posters from LosTechies.com

    on MSDN: https://blogs.msdn.microsoft.com/cdnde vs/2009/07/15/the-solid-principles-explai ned-with-motivational-posters/ • Others as posted on slides
  6. References • Agile Principles, Practices, and Patterns by Robert Martin

    and Micah Martin • 99 Bottles of OOP by Sandi Metz and Katrina Owen • “Clean Code: SOLID Principles” by Uncle Bob on CleanCoders.com