Table of Contents
Top 10 architecture every engineer should know
Architectural Patterns
- Monolith: Traditional, single-codebase application structure.
- Microservices: Small, independent services that work together.
- Layered: Separates code into layers (e.g., presentation, business logic, data).
- MVC (Model-View-Controller): Divides application logic into three interconnected components.
- Plugin: Extendable application where plugins add functionality.
- Hexagonal (Ports and Adapters), Clean Architecture: Emphasizes decoupling and independent core logic.
Cloud Native Design Patterns
- Data Management: Efficient handling and storage of data.
- Cache-Aside: Temporarily stores data in a cache for faster access.
- CQRS (Command Query Responsibility Segregation) & Event Sourcing: Splits read and write logic; records state changes as events.
- Messaging: Communication between services.
- Pub-Sub (Publisher-Subscriber): Event-driven model where publishers and subscribers interact indirectly.
- Saga (Orchestrator, Choreography): Manages complex transactions in microservices.
- Pipes and Filters: Data flows through stages of processing.
- Sidecar: Helper service deployed alongside the main service.
- Frontend for Backend, Micro Frontends: Tailored front-end architecture for specific backend needs.
- Gateway Aggregation: Combines multiple services into a single endpoint.
Programming Paradigms
- Imperative: Code defines how to achieve the result.
- Structural: Focuses on the program’s structure, like procedural programming.
- Object-Oriented (OOP): Organizes code into objects with properties and methods.
- Declarative: Code defines what the result should be, without specifying how.
- Functional: Emphasizes pure functions and immutability.
- Other Paradigms: Includes Logic, Reactive, etc.
Code Cleanliness
- Design Patterns: Standard solutions to common coding problems.
- Structural Patterns: e.g., Facade, Adapter.
- Creational Patterns: e.g., Singleton, Factory, Builder.
- Behavioral Patterns: e.g., Strategy, Chain of Responsibility.
- SOLID, KISS, YAGNI, and DRY: Foundational principles for cleaner, maintainable code.
- Programming Language-Specific Best Practices: Guidelines tailored to each language’s idioms and standards.
Please visit https://codeandalgo.com/ for more content.
Leave a Reply