solid-principles
Применение принципов SOLID к коду TypeScript
También disponible en: Benny9193
Принципы SOLID помогают создавать поддерживаемое программное обеспечение. Этот навык научит вас создавать тестируемые и расширяемые приложения на TypeScript, которые адаптируются к изменяющимся требованиям.
Descargar el ZIP de la skill
Subir en Claude
Ve a Configuración → Capacidades → Skills → Subir skill
Activa y empieza a usar
Pruébalo
Usando "solid-principles". My OrderService class handles validation, business logic, database access, and notifications. How can I improve it?
Resultado esperado:
- Обнаружено нарушение единственной ответственности: 4 различных обязанности
- Извлеките логику валидации в отдельную функцию OrderValidator
- Перенесите операции с базой данных в отдельный OrderRepository
- Создайте интерфейс EmailNotifier для уведомлений
- Внедрите все зависимости для тестируемости и гибкости
Usando "solid-principles". I have many if-else statements checking discount types. How do I make this extensible?
Resultado esperado:
- Нарушение принципа открытости/закрытости: изменение существующего кода для добавления новых типов
- Создайте тип DiscountStrategy для расчётов скидок
- Храните стратегии в record/map для лёгкого расширения
- Добавляйте новые типы скидок без изменения calculateDiscount
- Используйте функциональную композицию для гибких комбинаций скидок
Usando "solid-principles". My Square class breaks Rectangle expectations when width changes. How do I fix this?
Resultado esperado:
- Нарушение принципа подстановки Лисков: Square не может заменить Rectangle
- Используйте композицию вместо наследования для отношений форм
- Определите интерфейс Shape с расчётом площади
- Создайте отдельные фабричные функции для Rectangle и Square
- Избегайте наследования, когда контракты поведения различаются
Auditoría de seguridad
SeguroThis 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.
Factores de riesgo
⚙️ Comandos externos (42)
🌐 Acceso a red (1)
Puntuación de calidad
Lo que puedes crear
Изучение основ SOLID
Поймите каждый принцип через практические примеры TypeScript и типичные нарушения
Обзор проектных решений
Проверьте проектные решения и найдите возможности для рефакторинга в устаревшем коде
Изучение паттернов проектирования
Узнайте, как принципы SOLID направляют объектно-ориентированные и функциональные проектные решения
Prueba estos prompts
Проанализируйте этот класс TypeScript и определите, какие принципы SOLID он нарушает. Объясните каждое нарушение и предложите подход к рефакторингу.
Выполните рефакторинг этого класса в соответствии с принципом единственной ответственности. Извлеките отдельные функции для каждой ответственности.
Перепроектируйте этот оператор switch для следования принципу открытости/закрытости с использованием паттерна стратегии или композиции.
Выполните рефакторинг этого сервиса для зависимости от абстракций вместо конкретных реализаций. Покажите проект интерфейса.
Mejores prácticas
- Начните с единственной ответственности - разделите функции по причине изменения
- Используйте внедрение зависимостей для инверсии зависимостей и улучшения тестируемости
- Предпочитайте композицию наследованию для гибкости
Evitar
- God-классы, которые обрабатывают множественные не связанные обязанности
- Глубокие иерархии наследования, нарушающие подстановку Лисков
- Толстые интерфейсы, которые заставляют клиенты зависеть от неиспользуемых методов
Preguntas frecuentes
Какой принцип SOLID я должен изучить первым?
Могу ли я применять принципы SOLID к существующему коду?
SOLID применяется только к объектно-ориентированному коду?
Как избежать чрезмерного проектирования с SOLID?
Какова связь между SOLID и паттернами проектирования?
Могу ли я использовать SOLID с TypeScript?
Detalles del desarrollador
Autor
DoubleslashSELicencia
MIT
Repositorio
https://github.com/DoubleslashSE/claude-workflows/tree/main/Plugins/dotnet-tdd/skills/solid-principlesRef.
main
Estructura de archivos
📄 SKILL.md