python-design-patterns
Применение шаблонов проектирования Python
Пишите поддерживаемый код на Python, используя проверенные шаблоны проектирования, такие как KISS, принцип единственной ответственности и композицию вместо наследования, для создания систем, которые легко понимать, тестировать и модифицировать.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "python-design-patterns". Покажите, как отрефакторить класс, который обрабатывает регистрацию пользователей, отправляет письма, логирует активность и сохраняет в базу данных
النتيجة المتوقعة:
Пример рефакторинга с разделением на UserService (бизнес-логика), UserRepository (доступ к данным), EmailNotifier (уведомления) и ActivityLogger (логирование) — каждый с единственной ответственностью.
استخدام "python-design-patterns". Мне нужно добавить обработку платежей в систему заказов. Должен ли я наследовать от базового класса Order или использовать композицию?
النتيجة المتوقعة:
Объяснение, почему предпочтительна композиция — вы можете менять платежные провайдеры, тестировать с фейками и избегать иерархий наследования. Пример показывает PaymentProcessor, внедрённый в OrderService.
استخدام "python-design-patterns". У меня есть три похожие функции, которые обрабатывают данные немного по-разному. Должен ли я создать абстракцию?
النتيجة المتوقعة:
Примените правило трёх — подождите, пока не увидите чёткий паттерн. Пример тог��, когда дублирование лучше неправильной абстракции, и когда стоит абстрагировать.
التدقيق الأمني
آمنAll 35 static findings are false positives. The skill is a documentation file containing Python code examples for educational purposes. Python dictionary syntax was misidentified as shell backticks, email examples as network calls, and code examples as cryptographic algorithms or reconnaissance. No actual security risks present.
درجة الجودة
ماذا يمكنك بناءه
Проектирование новых сервисов на Python
При создании нового сервиса используйте эти шаблоны для построения чистой, поддерживаемой архитектуры с самого начала.
Рефакторинг запутанного кода
При работе со сложным, сильно связанным кодом применяйте SRP и разделение ответственности для распутывания зависимостей.
Оценка решений об абстракциях
При принятии решения о создании абстракции используйте правило трёх, чтобы избежать преждевременного обобщения.
جرّب هذه الموجهات
Мне нужно решить [описать задачу]. Каково простейшее рабочее решение? Покажите пример.
Вот мой класс [вставить код], который делает несколько вещей. Как я могу разделить его на классы с единственной ответственностью?
У меня есть базовый класс с общим поведением, и я хочу его расширить. Как я могу использовать композицию вместо наследования? Покажите пример.
Как мне организовать [описать ваше приложение] в слои? Покажите мне разделение ответственности с примером кода.
أفضل الممارسات
- Начинайте с простейшего решения и добавляйте сложность только при наличии обоснования конкретными требованиями
- Сохраняйте функции сфокусированными на 20-50 строках с единственной целью
- Разделяйте операции ввода-вывода и бизнес-логику на разные слои
- Внедряйте зависимости через конструкторы для тестируемости
تجنب
- Создание абстракций слишком рано, до п��нимания предметной области
- Использование наследования для повторного использования кода вместо композиции
- Смешивание ответственности, такой как HTTP-обработка, валидация и доступ к базе данных в одном классе
- Создание умного кода вместо читаемого