solid-principles
TypeScript 코드에 SOLID 원칙 적용하기
متاح أيضًا من: Benny9193
SOLID 원칙은 유지 가능한 소프트웨어를 작성하는 데 도움이 됩니다. 이 스킬은 변경되는 요구 사항에 적응하는 테스트 가능하고 확장 가능한 TypeScript 애플리케이션을 구축하는 방법을 알려줍니다.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "solid-principles". My OrderService class handles validation, business logic, database access, and notifications. How can I improve it?
النتيجة المتوقعة:
- 단일 책임 위반 감지: 4개의 고유한 책임
- 검증 로직을 전용 OrderValidator 함수로 추출
- 데이터베이스 작업을 별도의 OrderRepository로 이동
- 알림을 위한 EmailNotifier 인터페이스 생성
- 테스트 가능성과 유연성을 위해 모든 의존성 주입
استخدام "solid-principles". I have many if-else statements checking discount types. How do I make this extensible?
النتيجة المتوقعة:
- 개방/폐쇄 원칙 위반: 새 타입 추가를 위해 기존 코드 수정
- 할인 계산을 위한 DiscountStrategy 타입 생성
- 확장을 위해 레코드/맵에 전략 저장
- calculateDiscount 수정 없이 새 할인 타입 추가
- 유연한 할인 조합을 위한 함수 컴포지션 사용
استخدام "solid-principles". My Square class breaks Rectangle expectations when width changes. How do I fix this?
النتيجة المتوقعة:
- 리스코프 치환 원칙 위반: Square가 Rectangle을 대체할 수 없음
- 모양 관계에 대해 상속보다 컴포지션 사용
- 면적 계산을 위한 Shape 인터페이스 정의
- Rectangle과 Square를 위한 별도의 팩토리 함수 생성
- 동작 계약이 다를 때 상속 피하기
التدقيق الأمني
آمنThis is a pure documentation/educational skill containing only markdown explanations and TypeScript code examples demonstrating SOLID design principles. The static scanner misidentified TypeScript template literals as shell backticks, arithmetic operations as cryptographic algorithms, and code comments as system reconnaissance. No executable code, network calls, file system access, or environment variable access exists. Verified by reading SKILL.md (282 lines) and examples.md (387 lines) which contain only educational content.
عوامل الخطر
⚙️ الأوامر الخارجية (42)
🌐 الوصول إلى الشبكة (1)
درجة الجودة
ماذا يمكنك بناءه
SOLID 기초 학습
실제 TypeScript 예제와 일반적인 위반 사례를 통해 각 원칙 이해하기
설계 결정 검토
레거시 코드에서 설계 선택 사항 검증하고 리팩토링 기회 식별하기
디자인 패턴 학습
SOLID 원칙이 객체 지향 및 함수형 설계 결정을 안내하는 방식 배우기
جرّب هذه الموجهات
이 TypeScript 클래스를 분석하여 위반하는 SOLID 원칙을 식별하세요. 각 위반 사항을 설명하고 리팩토링 접근 방식을 제안하세요.
이 클래스를 단일 책임 원칙을 따르도록 리팩토링하세요. 각 책임에 대해 별도의 함수를 추출하세요.
이 switch 문을 개방/폐쇄 원칙을 따르도록 전략 패턴 또는 컴포지션을 사용하여 재설계하세요.
이 서비스를 구체적인 구현이 아닌 추상화에 의존하도록 리팩토링하세요. 인터페이스 설계를 보여주세요.
أفضل الممارسات
- 단일 책임부터 시작 - 변경 이유로 함수 분리
- 의존성 주입을 사용하여 의존성 역전 및 테스트 가능성 향상
- 유연성을 위해 상속보다 컴포지션 선호
تجنب
- 여러 개의 관련 없는 책임을 처리하는 신 클래스
- 리스코프 치환을 깨뜨리는 깊은 상속 계층
- 클라이언스가 사용하지 않는 메서드에 강제로 의존하게 하는 비대 인터페이스