← ClaudeAtlas

dddjango-discipline-cleancodelisted

기술 무관 클린코드 규율 — 네이밍, 함수 설계, 추상화·캡슐화, 깊은 모듈 설계, 객체 설계 원칙, SOLID, 상태 관리, 오류 처리, 중복 제거·DRY, 협력·의존성 관리, 리팩토링, 레거시 코드, 설계 철학. 코드를 새로 작성하거나 리팩터링할 때 명명·함수 형태·책임·캡슐화·추상화·SOLID·중복·오류 처리 원칙이 필요하면 로드한다. Python 언어 관용구·PEP8 기계적 규칙은 implementation-python, Django 특화 패턴은 implementation-django로 위임.
changja88/dddjango · ★ 1 · DevOps & Infrastructure · score 74
Install: claude install-skill changja88/dddjango
# 클린코드 규율 ## 언제 쓰나 언어 비종속적 클린코드 원칙(명명, 함수 설계, 캡슐화, SOLID, 중복, 오류 처리, 리팩토링)이 필요한 코드 작성·리뷰·리팩터링 시 로드한다. 경계: - Python 언어 관용구·PEP8·타입 힌트·docstring 기계적 규칙 → `implementation-python` - Django 모델·ORM·서비스 레이어 특화 패턴 → `implementation-django` - 도메인 전략·애그리거트·바운디드 컨텍스트 → `dddjango-architecture-ddd` - 테스트 코드 작성법(mock·픽스처·assert) → `dddjango-implementation-test` ## 핵심 운영 원칙 - 이름은 의도를 드러내라: 한 개념에 한 단어, 클래스는 명사·메서드는 동사, 이름 길이는 범위에 비례 (§2) - 매직 값·상수 승격은 판정 원리로: 닫힌 집합을 분기·판정에 쓰면 1곳째부터 집합 타입, 선언된 심볼은 심볼로만 소비(`==` 비교), 허용 목록(사람 대상 서술·정의부·테스트 외부 계약 기댓값 등)은 리터럴 유지; 발행 ��벤트 봉투 discriminator는 1종째부터 enum(birth-enum), 버전 태그는 리터럴 동결, OHS published contract(`open_host_service/*/contract/`)의 discriminator는 wire Literal 유지(재예외 — houserules §2) (§2.14) - 함수는 작게, 한 가지만 해라: 추상화 수준 통일, 인수 최소화, 플래그 인수 금지, 명령·조회 분리, 부수 효과 금지 (§3) - 인터페이스 주석은 필수, 구현 주석은 최소화: what을 공개하고 how는 은닉 (§4, §6.4–§6.5) - 모듈은 깊게 설계하라: 강력한 기능을 단순한 인터페이스 뒤에 숨기고, 얕은 모듈·레드 플래그를 경계 (§7) - 행동이 상태를 결정한다: 묻지 말고 시켜라, 조건문은 다형성으로 대체, 로직과 데이터를 함께 (§8) - SOLID 5원칙을 적용하라: SRP·OCP·LSP·ISP·DIP — 같은 이유로 바뀌는 것은 모으고, 다른 이유는 분리 (§9) - DRY는 지식의 중복을 금지한다: 코드 유��성이 아닌 비즈니스 지식 단위로 판단 (§13) - 오류는 ���계로 먼저 제거하고, 불가하면 예외를 사용하라: 보호절·DbC·방어적 프로그래밍 (§12) - 코드 스멜을 감지하고 리팩토링 기법으로 제거하라: 기능 보존을 검증하며 작은 단계로 진행 (§15) - 레거시 코드는 Seam을 찾아 보호한 후 개선하라: Sprout·Wrap과 non-migration 임시 특성화 probe를 쓰되, 현재 구현 포착을 영구 계약으로 고정하지 않는다 (§16) ## 상세 레퍼런스 주제별로 [`references/final.md`](references/final.md)의 해당 절을 따른다: | 주제 | 절 | |---|---| | 클린 코드란 무엇인가 (복잡성 본질·제1 명령) | §1 | | 이름 짓기 (의도·구분·한