agentsclimarketplace

Software architecture

Skill aiskillstore/marketplace/skills/doyajin174/software-architecture

Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified.

Install
npx -y skills add aiskillstore/marketplace --skill software-architecture

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Clean Architecture and SOLID principles guide. Use this when designing systems, reviewing architecture, or making structural decisions.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

3.9 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Software Architecture

Clean Architecture와 DDD 원칙 기반 소프트웨어 설계 가이드입니다.

Core Principles

SOLID

원칙설명예시
Single Responsibility하나의 클래스는 하나의 책임UserRepository vs UserService
Open/Closed확장에 열림, 수정에 닫힘인터페이스 사용
Liskov Substitution하위 타입은 상위 타입 대체 가능상속 계약 준수
Interface Segregation클라이언트별 인터페이스 분리IReader vs IWriter
Dependency Inversion추상화에 의존DI 컨테이너 사용

Clean Architecture Layers

┌─────────────────────────────────────────┐
│           Frameworks & Drivers          │  ← DB, Web, UI
├─────────────────────────────────────────┤
│         Interface Adapters              │  ← Controllers, Gateways
├─────────────────────────────────────────┤
│         Application Business Rules      │  ← Use Cases
├─────────────────────────────────────────┤
│         Enterprise Business Rules       │  ← Entities
└─────────────────────────────────────────┘

의존성 규칙: 바깥 → 안쪽 방향으로만 의존

Code Style Rules

Early Return Pattern

// ❌ 중첩된 조건문
function process(user) {
  if (user) {
    if (user.isActive) {
      if (user.hasPermission) {
        // do something
      }
    }
  }
}

// ✅ Early Return
function process(user) {
  if (!user) return;
  if (!user.isActive) return;
  if (!user.hasPermission) return;
  // do something
}

Function/File Size Limits

대상권장최대조치
함수30줄50줄분리
컴포넌트80줄150줄분리
파일200줄300줄모듈화

Domain-Specific Naming

// ❌ 제네릭 네이밍
utils/helpers.ts
common/index.ts

// ✅ 도메인 네이밍
services/OrderCalculator.ts
auth/UserAuthenticator.ts

Library-First Approach

"모든 커스텀 코드는 유지보수, 테스트, 문서화가 필요한 부채다"

코드 작성 전 확인:

  1. npm/yarn 패키지 검색
  2. 기존 서비스/API 확인
  3. 오픈소스 솔루션 검토

Anti-Patterns to Avoid

Anti-Pattern문제점해결책
NIH Syndrome바퀴 재발명라이브러리 우선
God Class너무 많은 책임SRP 적용
Spaghetti Code얽힌 의존성레이어 분리
Magic Numbers의미 불명확상수 추출
Deep Nesting가독성 저하Early Return

Separation of Concerns

✅ 올바른 분리
├── domain/          # 비즈니스 로직
├── application/     # Use Cases
├── infrastructure/  # DB, API
└── presentation/    # UI, Controllers

❌ 잘못된 분리
├── components/
│   └── UserCard.tsx  # UI + API 호출 + 비즈니스 로직 혼합

Decision Checklist

새로운 코드 작성 시:

  • 기존 라이브러리/서비스로 해결 가능?
  • 단일 책임 원칙 준수?
  • 의존성 방향 올바름?
  • 테스트 가능한 구조?
  • 도메인 네이밍 사용?

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.