A curated list of software and architecture related design by patterns
GitHub - DovAmir/awesome-design-patterns: A curated list of software and architecture related design patterns.
Awesome Software and Architectural Design Patterns

  


A curated list of software and architecture related 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.

Contents

Programming language design patterns
General Architecture
Cloud Architecture
Serverless Architecture
Micro services & Distributed Systems
Internet of things
Big Data
Machine Learning
Databases and storage
DevOps & containers
Mobile
Front End Development
Security


Programming Language Design Patterns


AngularJS

design patterns



C#

design-patterns
design-patterns-for-human - ultra simplified explanation to design patterns.
Design Patterns Library



C++

design-patterns



Closure

design-patterns



Go

design-patterns



Java

sourcemaking - patterns and anti patterns.
oodesign  - patterns catalog with UML diagrams.
design-patterns
effective-java patterns - patterns from the Effective Java book.
Design patterns implemented in Java
Effective-Java-3rd-Joshua-Bloch



JavaScript

es6 design patterns
humans - ultra simplified explanation to design patterns.
design-patterns
design patterns by addy osmani



Kotlin

design-patterns



Node

Real world design patterns with Node.js
Node.js Design Patterns



Object Oriented

Design-Patterns-Elements-Reusable-Object-Oriented
Head-First-Design-Patterns-Brain-Friendly
Object Design Style Guide



PHP

humans - ultra simplified explanation to design patterns.
design-patterns



Python

design-patterns
PyPattyrn - A simple library for implementing common design patterns.
Python Design Patterns
Design Patterns in Python
Django Design Patterns and Best Practices



React

design-patterns
react-bits
reactpatterns.com



Ruby

design-patterns



Rust

design-patterns



Scala

design-patterns



Swift

design-patterns



TypeScript

design-patterns



UML

design-patterns quick reference
design-patterns cheat-sheet



Vue.js

Vue Patterns - Useful Vue patterns, techniques, tips and tricks and curated helpful links.



Elixir

design-patterns
the-pipeline - The Pipeline is defined by a collection of functions that take a data structure as an argument and return the same type of data structure



General Architecture

10 common architectural patterns - 10 Common software architectural patterns in a nutshell.
reactive design patterns - This website accompanies the book Reactive Design Patterns by Roland Kuhn.
scalable System Design Patterns - Scalable system design techniques.
martin fowler - Catalog of Patterns of Enterprise Application Architecture.
system-design-primer - Design large-scale systems.
architecting-for-reliability - Architecting for Reliability Part 1/3.
InnerSource Patterns - Patterns for implementing InnerSource, the use of open source principles and practices for software development within the confines of an organization.

Cloud Architecture

Cloud cost hacking - Patterns for reducing cloud costs.
AWS cloud design patterns - The AWS Cloud Design Patterns (CDP).
Azure cloud design patterns - Building reliable, scalable, secure applications in the cloud.
cloud computing patterns - Cloud Computing Patterns.
Google Cloud Solutions - Real business cases solutions with diagrams on GCP.
saas tenant isolation strategies - Isolating Resources in a Multi-Tenant Environment
design patterns for multi-tenancy - Architectural design patterns for multi-tenancy on AWS

Serverless Architecture

serverless architecture - Serverless Architecture: Five Design Patterns.
solving problems in serverless - Patterns for Solving Problems in Serverless Architectures.
serverless patterns - serverless microservice patterns for aws.
serverless-reference-architectures - serverless microservice patterns with deployment scripts.
serverless-patterns-collection - Serverless Patterns Collection.
serverless-design-patterns-and-best-practices

Micro services & Distributed Systems

microservices - A pattern language for microservices.
microservices-anti patterns - Microservices antipatterns and pitfalls.
12factor - The twelve-factor methodology.
microservices-sync-vs-async - Microservices patterns, synchronous and asynchronous.
message-queues - Comparing-message-queue-architectures.
enterprise Integration Patterns - Patterns and Best Practices for Enterprise Integration.
martinfowler - Patterns of Distributed Systems.

Internet of things

iot-communication-patterns - Strengths and Weaknesses of IoT Communication Patterns.
design-patterns-for-iot - A Design Pattern Framework for IoT Architecture.

Big Data

mapreduce-patterns - Map-reduce patterns.
streaming-realtime-analytics - 13 Stream Processing Patterns for building Streaming and Realtime Applications.

Machine Learning

distributed-ml-patterns - Distributed machine learning system patterns.

Databases and Storage

SQL

database tenancy patterns - Multi-tenant SaaS database tenancy patterns
databaseanswers -  Industry-specific SQL Data Models in 50 categories.
database-programmer - Table-design-patterns.
red-gate -  five simple database design errors you should avoid.
talend - Data model design best practices.
sqlcheck - Anti-patterns in SQL queries.
Data warehouse patterns - ETL and ELT design patterns for lake house architecture using Amazon Redshift


NOSQL

nosql resilience patterns - Practical NoSQL resilience design pattern for the enterprise.
nosql-patterns - Pragmatic Programming Techniques.
mongodb - Mongodb design patterns.
MongoDB Applied Design Patterns
DynamoDB design patterns- Advanced design patterns for Amazon DynamoDB
Redis applied design patterns - Redis Applied Design Patterns book


Storage

storage patterns- Comparing your on-premises storage patterns with AWS Storage services
S3 Design Patterns - Best Practices Design Patterns: Optimizing Amazon S3 Performance



DevOps & containers

containerspatterns - There are a Thousand Ways to Use Containers.
kubernetes - Kubernetes Production Patterns.
container-design-patterns - Container Design Patterns for Kubernetes Pods Design.
best-practices-for-shell-scripts - Best practices for shell scripts.
kubernetes patterns - Presentation around the book kubernetes paterns.
kubernetes patterns book
cdk patterns - cdk patterns.
CDK Construct Catalog - CDK construct catalog.

Mobile

IOS

ios-architecture-patterns


Android

design-patterns-for-android -  Common Design Patterns for Android.
mvc-mvp-and-mvvm -  The MVC, MVP, and MVVM Smackdown.



Front-End Development

user Interface - User Interface Design patterns.
oocss-acss-bem-smacss - OOCSS, ACSS, BEM, SMACSS: what are they? What should I use?
css-protips - A collection of tips to help take your CSS skills pro.
responsive design patterns - A collection of patterns and modules for responsive designs.
[front-End Architecture]

mv* - MVC/MVP/MVVM/CLEAN/VIPER/REDUX/MVI/PRNSAASPFRUICC.
martinfowler - GUI Architectures.



Security

opensecurityarchitecture - Security Architecture Patterns.
martinfowler - Web-security-basics.
cloud-security - Cloud security architecture intro.
owasp - Security by Design Principles.
azure-security - Azure security best practices and patterns.

Books

Django Design Patterns and Best Practices
MongoDB Applied Design Patterns
Design-Patterns-Elements-Reusable-Object-Oriented
Head-First-Design-Patterns-Brain-Friendly
Effective-Java-3rd-Joshua-Bloch
Node.js Design Patterns
Game Programming Patterns
Object Design Style Guide
Spring Boot in Practice
Designing Microservices

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome list.

Contributing

Your contributions are always welcome! Please read the contribution guidelines first.

License

To the extent possible under law, Dov Amir has waived all copyright and related or neighboring rights to this work.
