Skip to main content

software-architecture-hexagonal

Guides the implementation of hexagonal (ports and adapters) architecture, focusing on best practices for decoupling business logic from external concerns.

Ir para a instalação

Informações da origem

Repositório
paulpas/agent-skill-router
Última atividade na origem
10 de junho de 2026 às 18:00
Idioma detectado do SKILL.md
inglês
Estrelas
6
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
software-architecture-hexagonal
description
Guides the implementation of hexagonal (ports and adapters) architecture, focusing on best practices for decoupling business logic from external concerns.
license
MIT
compatibility
opencode
metadata
{"version":"1.0.0","domain":"coding","triggers":"hexagonal architecture, ports and adapters, hexagonal design patterns","archetypes":["tactical","generation"],"anti_triggers":["brainstorming","vague ideation","code golf","over-engineering"],"response_profile":{"verbosity":"low","directive_strength":"high","abstraction_level":"operational"},"role":"implementation","scope":"implementation","output-format":"code","related-skills":"software-architecture-microservices, software-architecture-monolith, software-architecture-event-driven"}
# Hexagonal Architecture archetypes: tactical, educational anti_triggers: tightly coupled design response_profile: verbosity: medium directive_strength: high abstraction_level: tactical Guides the implementation of hexagonal (ports and adapters) architecture, focusing on best practices for decoupling business logic from external concerns. ## When to Use - When you need a flexible architecture that accommodates changes easily. - For applications with complex domain logic. - When you need to integrate multiple external systems. ## Core Workflow 1. **Define the Domain Model** – Centralize your core domain logic. 2. **Establish Ports** – Create interfaces for external services and applications. 3. **Implement Adapters** – Build adapters to connect the domain to outside technology. ## Implementation Patterns ### Enhanced Examples of Hexagonal Architecture 1. **Core Domain Logic Implementation**: ```python # Example demonstrating core domain logic separate from infrastructure class Account: def __init__(self, id, balance): self.id = id self.balance = balance class AccountService: def __init__(self, repository): self.repository = repository def create_account(self, id, initial_balance): account = Account(id, initial_balance) self.repository.save(account) ``` 2. **Establishing Ports and Adapters**: ```python # Defining an Adapter for external service interactions class PaymentProcessor: def process_payment(self, account_id, amount): # Logic to process payment through an external API print(f'Processing payment of {amount} for account {account_id}') ``` 3. **Integration Example**: ```yaml # Example showing integration with external services via adapters payments: url: http://payment-service/api description: Service to handle payment processing ``` ### Real-World Applications - Discuss examples of how organizations like Netflix and Uber implement hexagonal architecture for scalability and maintainability. - Provide insights into trade-offs between hexagonal architecture and other architectural styles such as layered architecture or microservices. ### Pattern 1: Central Domain Logic ```python class Product: def __init__(self, name, price): self.name = name self.price = price class ProductService: def add_product(self, product): # Add logic for adding the product pass # Adapter example class ExternalServiceAdapter: def call_service(self): # Logic to interact with an external service pass ``` ## Constraints ### MUST DO - Ensure clear separations of concerns. - Use automated tests to validate interactions. ### MUST NOT DO - Allow direct dependencies from the domain to external services. - Mix external framework concerns with core logic in the same layer.
Ver no GitHub