Skip to content

07. Categories and Tags

Ilkka Seppälä edited this page Jun 2, 2024 · 70 revisions

Categories

Architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design patterns but have a broader scope. The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk. Some architectural patterns have been implemented within software frameworks.

Behavioral patterns are concerned with assignment of responsibilities between the objects. What makes them different from structural patterns is they don't just specify the structure but also outline the patterns for message passing/communication between them. Or in other words, they assist in answering "How to run a behavior in software component?"

Cloud patterns describe how the problem is typically solved using cloud native technologies

Concurrency patterns are those types of design patterns that deal with the multi-threaded programming paradigm.

Creational patterns are focused towards how to instantiate an object or group of related objects.

Data access patterns category encompasses a range of design patterns that are specifically aimed at managing and optimizing the way applications interact with data sources.

Functional patterns use extensively and take advantage of functional programming style.

Integration patterns deal with how applications and possible middleware exchange data with each other.

Messaging patterns support various aspects of messaging in software design, helping to address concerns about system integration, decoupling components, and managing data flow across different parts of a system.

Performance optimization patterns focus on improving software performance

Resilience patterns are commonly used in software architecture to enhance the stability and fault tolerance of a system

Resource management patterns are concerned with the efficient allocation, use, and release of resources such as memory, file handles, and network connections. These patterns aim to prevent resource leaks, optimize performance, and ensure that resources are properly cleaned up after use.

Structural patterns are mostly concerned with object composition or in other words how the entities can use each other. Or yet another explanation would be, they help in answering "How to build a software component?"

Testing patterns are related to software testing

Tags

  • Abstraction
  • Accumulation
  • Architecture
  • Asynchronous
  • API design
  • Buffering
  • Business
  • Caching
  • Client-server
  • Closure
  • Cloud distributed
  • Code simplification
  • Compatibility
  • Context
  • Cookies
  • Data access
  • Data binding
  • Data processing
  • Data transfer
  • Data transformation
  • Decoupling
  • Delegation
  • Dependency management
  • Domain
  • Dynamic typing
  • Encapsulation
  • Enhancement
  • Enterprise patterns
  • Event-driven
  • Extensibility
  • Fault tolerance
  • Feature management
  • Functional decomposition
  • Game programming
  • Gang of Four
  • Generic
  • Idiom
  • Immutable
  • Instantiation
  • Integration
  • Interface
  • Inversion of control
  • Isolation
  • Lambda
  • Layered architecture
  • Lazy initialization
  • Memory management
  • Messaging
  • Microservices
  • Migration
  • Modernization
  • Monitoring
  • Object composition
  • Object mapping
  • Optimization
  • Performance
  • Persistence
  • Polymorphism
  • Presentation
  • Proxy
  • Publish/subscribe
  • Reactive
  • Recursion
  • Refactoring
  • Resilience
  • Resource management
  • Retry
  • Runtime
  • Scalability
  • Security
  • Session management
  • Synchronization
  • System health
  • State tracking
  • Testing
  • Thread management
  • Transactions
  • Undo
  • Web development
  • Wrapping