Software Design Patterns

This section is all about software architectural design patterns and approaches. It is my accumulative knowledge and experiences discovered along the way from my software careers. Currently, I'm heavily based my syllabus from self-studying Carnegie Mellon University - School of Computer Science Master of Science - MS, Information Technology syllabus.

As Prof. Jonathan Aldrich, Prof. Jonathan I. Maletic, and Dwight Deugo stated, designing a good system requires great efforts in knowledge and especially, first hand experiences. Therefore, just like an artist, it is through time and practice, one can become a great designer, thus, making towards the goal of becoming a software architect.

Hence, do not give up, do stay open, and do learn with humility with any new design approaches. Log them if you must.

Basics

This section covers all the basics in software design patterns.

Core Aspects

These are the core aspects related to software designs. It covers subjects like principles, guidelines and processes.

Design Patterns

These are the known design patterns from the industry. It covers 4 different directions: architectural, behavioral, creational, and structural.

Architectural

These are architectural related patterns. They serve as foundation of building an application.


Behavioral

These are behavioral related patterns. They provide various means of interactions for communicating to one another.


Creational

These are creation related patterns. They provide various means of scalable data creation.


Structural

These are structural related patterns. They are meant for defining data structure and ways of interacting between them. These design patterns focuses on structure requirements and defining its interaction style.


Anti-Patterns

These are the anti-pattern, known for their bad design. Like Design patterns, it covers It covers 4 different directions: architectural, behavioral, creational, and structural.

Software Developments

These are the anti-patterns related to the software development, practices, tools, processes, etc.


Software Architecture

These are anti-patterns related to software architecture itself.


Project Management

These are anti-patterns related to project management.


Scaling and Distributions

These covers the scaling and distributions aspects. It includes growing and mass deployment across the network.

References

Here are the references I read through to absorb the necessary knowledge.

That's all about software design patterns.