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.

설치로 이동

소스 정보

저장소
paulpas/agent-skill-router
최근 소스 활동
2026년 6월 10일 18:00
감지된 SKILL.md 언어
영어
스타
4
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기