Awesome software design patterns

Dov Amir
Cloud Computing
June 9, 2020

Awesome software design patterns

Software design pattern - A general, reusable solution to a commonly occurring problem within a given context in software design. It is a description or template for how to solve a problem that can be used in many different situations.

The concept of design patterns started with a book about object-oriented programming called “Design Patterns: Elements of Reusable Object-Oriented Software” by the famous “gang of four” (GoF). Since then design patterns have been used to summarize knowledge in every aspect of the software lifecycle, from cloud to databases, architecture, security and many more. 

This document is a curated “list of design patterns lists”. It can help the reader find encapsulated wisdom earned by years of experience in easy to read bite-size nuggets.

Software Design Pattern


Programming Language Design Patterns

  • AngularJS
  • C#
  • C++
  • Closure
  • Go
  • Java
  • JavaScript
  • Kotlin
  • PHP
  • Python
  • React
  • Ruby
  • Scala
  • Swift
  • TypeScript
  • UML

General Architecture

Cloud Architecture

Serverless Architecture

Micro services & Distributed Systems

Internet of things

Big Data


  • SQL

Docker and DevOps


  • IOS
  • Android

Front-End Development

  • martinfowler - GUI Architectures.



Other Awesome Lists

  • Other amazingly awesome lists can be found on the awesome list.


Suggestions for additional design pattern resources are welcome by doing a Git pull-request or contacting me.


Dov Amir

Cloud solution architect and SW engineer at DataRails

Keep Reading


Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form