Design Pattern Evangelist Blog

Smart pointers about software design

Maintained by Jim Humelsine | Table of Contents | RSS Feed | Edit on GitHub

Preface, Primer, Table of Contents, Etc.

A little bit of order to organize the chaos.


Trinity College Library

Introduction

I began this blog in earnest as a retirement project in the fall of 2023. The blog’s home page lists the entries chronologically from newest to oldest. Blog entries are often part of a series focused upon a theme. The first blog entry of a series is usually an introduction to the series and acts as a landing page to the other blogs in the series. There are crossover reference links to other blog entries as well.

This meta-blog entry organizes the themes of my blog entries. NOTE: This page will be updated as new blog entries are added to existing themes and new themes are introduced.

Table of Contents

AI Notebooks

I have created AI/Google Notebooks for several of my blog series. Each provides an AI interactive experience with some of my central themes. There are several artifacts including an AI generated two-host podcast formatted summary. You can also interact with the generated AI hosts to some degree.

NOTE: I think that a Google account may be required to access the AI/Google Notebooks.

AI/Google Notebooks:

Software Engineering

A degree in Computer Science has been the initial exposure to software for many developers; however, Computer Science is not the same as Software Engineering.

Abstraction

Abstraction is a core software engineering concept, and it’s more challenging to describe abstraction concretely than I originally thought.

See: Abstraction AI Agent

SE Miscellaneous

Design Patterns

Design Patterns changed how I approach software. I feel that every Software Engineer should have some degree of competence and comfort with design patterns.

Design Pattern Foundations

Design Patterns are not technically challenging, but they do require a slight paradigm shift in thinking. These blog entries lay some foundations toward that shift in thinking.

See: Design Pattern Foundations AI Agent

Essential Design Patterns

The Seven Essential Design Patterns are the design patterns that will be used repeatedly in designs. They are the hammer and screwdriver of a software developers design pattern toolbox.

See: Essential Design Patterns AI Agent

Composable Design Patterns

The Composable Design Patterns focus upon behavior emerging from the composition of objects and their interaction in a structured formation rather than implemented within an individual class.

See: Composable Design Patterns AI Agent

Interpreter Design Pattern

The Interpreter required its own series.

Interpreter allows software developers to design and implement their own Domain-Specific Languages. Interpreter is not just the pinnacle of Composable Design Patterns, but I feel it shares the top spot of all design patterns along with the Visitor Design Pattern.

Interpreter is not a difficult pattern to design or implement, but it’s a difficult pattern comprehend. Interpreter required multiple blog entries to do it justice.

See: Interpreter Design Pattern AI Agent

Hexagonal Architecture AKA Ports and Adapters Design

The Hexagonal Architecture (AKA Ports and Adapters) is a design that all software developers should know. It showcases how different Essential Design Patterns can work as a cohesive design.

See: Hexagonal Architecture AKA Ports and Adapters AI Agent

Automated Testing

I didn’t appreciate automated testing until late in my career. My automated testing series begins with my Conversion from automated testing non-believer to almost a zealot. The series grew larger than I imagined. I ended up writing a short book on the topic.

Here is the complete Automated Test series:

See: Automated Testing AI Agent

Large Language Models and Generative AI

AI has become a major topic since late 2022 with the introduction of ChatGPT among others. I learn a bit more about how to use them almost daily.

See: Large Language Models and Generative AI AI Agent

LLM/GenAI Introduction

LLM/GenAI Introduction - Like it or not, the AI Genie is out of the bottle.

Prompt Engineering Patterns

Prompt Engineering Patterns are the key to getting the best results from Generative AI. These blogs present a few patterns I learned via online courses.

True Stories

The following blog entries feature a few True Stories, or maybe they should be called: True Confessions. I try to include personal experiences where I can in my blog entries. Sometimes story is the entire blog entry. Sometimes it’s just a part of the blog entry.

I keep my previous employers and others anonymous. If I do mention someone by name, I only use their first name, and I get their permission, or I use a pseudonym.

Miscellaneous

This is for blog entries that were one-offs, and weren’t part of series

Statistics

Year Blogs Words Most Views Comments
2021 1 1,278 What is UML and why you may want to care First prototype blog about UML to set up the environment on GitHub.
2022 0 0 N/A Still employed; did not start blogging yet.
2023 21 38,229 Hexagonal Architecture – An Introduction Topics covered were Design Pattern Introduction, Essential Design Patterns and Hexagonal Architecture.
2024 35 109,944 Interpreter Design Pattern – Domain-Specific Languages Topics covered were Composable Design Patterns, Interpreter Design Pattern, Automated Testing, LLMs/GenAIs and Abstraction.
Totals 57 149,451