المهارات cc-skill-backend-patterns
📦

cc-skill-backend-patterns

مخاطر منخفضة 🔑 متغيرات البيئة

Construire des systèmes backend évolutifs

Les applications backend souffrent souvent d'une mauvaise architecture, de problèmes d'évolutivité et de vulnérabilités de sécurité. Cette compétence fournit des modèles éprouvés pour la conception d'API, l'optimisation de bases de données, la mise en cache, l'authentification et la gestion des erreurs.

يدعم: Claude Codex Code(CC)
📊 70 كافٍ
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "cc-skill-backend-patterns". Montrez-moi comment concevoir une API RESTful pour une ressource products

النتيجة المتوقعة:

GET /api/products - Lister tous les produits
GET /api/products/:id - Récupérer un produit unique
POST /api/products - Créer un produit
PUT /api/products/:id - Remplacer un produit
PATCH /api/products/:id - Mettre à jour un produit
DELETE /api/products/:id - Supprimer un produit

Paramètres de requête : ?status=active&sort=price&limit=20&offset=0

استخدام "cc-skill-backend-patterns". Comment prévenir les requêtes N+1 lors de la récupération des commandes avec les clients ?

النتيجة المتوقعة:

Au lieu de :
for (const order of orders) {
order.customer = await getCustomer(order.customerId)
}

Utilisez :
const customerIds = orders.map(o => o.customerId)
const customers = await getCustomers(customerIds)
const customerMap = new Map(customers.map(c => [c.id, c]))
orders.forEach(o => o.customer = customerMap.get(o.customerId))

استخدام "cc-skill-backend-patterns". Créez un middleware d'authentification JWT

النتيجة المتوقعة:

export function verifyToken(token: string) {
try {
return jwt.verify(token, process.env.JWT_SECRET!)
} catch (error) {
throw new ApiError(401, 'Invalid token')
}
}

export async function requireAuth(request: Request) {
const token = request.headers.get('authorization')?.replace('Bearer ', '')
if (!token) throw new ApiError(401, 'Missing token')
return verifyToken(token)
}

التدقيق الأمني

مخاطر منخفضة
v1 • 2/25/2026

Educational backend development patterns skill. Static analyzer flagged numerous false positives due to misidentification of code comments as shell commands, environment variable access as sensitive data exposure, and URL paths as reconnaissance. True positive finding: JWT secret accessed via process.env - standard secure practice. No malicious behavior detected.

1
الملفات التي تم فحصها
590
الأسطر التي تم تحليلها
2
النتائج
1
إجمالي عمليات التدقيق
مشكلات منخفضة المخاطر (1)
Environment Variable Access
Code accesses process.env.JWT_SECRET for JWT token verification. This is a standard secure practice for configuration management and does not expose secrets.

عوامل الخطر

🔑 متغيرات البيئة (1)

الأنماط المكتشفة

False Positive: Shell Command DetectionFalse Positive: Python HTTP Library DetectionFalse Positive: System Reconnaissance DetectionFalse Positive: Weak Cryptographic Algorithm
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
90
قابلية الصيانة
87
المحتوى
50
المجتمع
88
الأمان
87
الامتثال للمواصفات

ماذا يمكنك بناءه

Concevoir de nouveaux points de terminaison d'API

Les architectes et développeurs construisant de nouvelles API REST peuvent appliquer les modèles d'URL basés sur les ressources et les approches de middleware pour une conception d'API cohérente et maintenable.

Optimiser les requêtes de base de données lentes

Les développeurs rencontrant des problèmes de performance peuvent identifier et corriger les problèmes de requêtes N+1 en utilisant la récupération par lots et les modèles d'optimisation de requêtes.

Implémenter une authentification sécurisée

Les développeurs ajoutant l'authentification à leurs applications peuvent implémenter la validation JWT et le contrôle d'accès basé sur les rôles en suivant les meilleures pratiques de sécurité.

جرّب هذه الموجهات

Concevoir la structure d'API
Concevez une structure d'API RESTful pour une ressource [resource]. Incluez les points de terminaison pour lister, récupérer par ID, créer, mettre à jour et supprimer. Montrez des exemples de paramètres de requête pour le filtrage et la pagination.
Optimiser la requête de base de données
J'ai une fonction qui récupère une liste de commandes puis boucle sur chacune pour obtenir les détails du client. Cela cause des problèmes de performance. Montrez-moi comment refactoriser cela en utilisant le modèle de récupération par lots pour éviter les requêtes N+1.
Ajouter l'authentification JWT
Montrez-moi comment implémenter la validation de token JWT et un middleware requireAuth pour protéger les routes d'API. Incluez la gestion des erreurs pour les tokens invalides.
Implémenter une couche de mise en cache
Créez une implémentation du modèle cache-aside utilisant Redis pour une fonction getUser. Incluez la logique de succès/échec du cache et l'invalidation du cache.

أفضل الممارسات

  • Séparer les préoccupations en utilisant les couches repository, service et controller pour un code maintenable
  • Toujours valider les entrées en utilisant des bibliothèques de validation de schéma comme Zod avant le traitement
  • Implémenter la mise en cache de manière stratégique - mettre en cache les opérations coûteuses mais invalider correctement

تجنب

  • Ne sélectionnez pas toutes les colonnes avec SELECT * - spécifiez uniquement les champs nécessaires pour de meilleures performances
  • Évitez d'imbriquer les appels de base de données dans des boucles - utilisez plutôt des récupérations par lots
  • N'exposez pas les erreurs brutes de base de données aux clients - utilisez une gestion d'erreurs centralisée

الأسئلة المتكررة

Quels langages et frameworks cette compétence couvre-t-elle ?
Cette compétence couvre les modèles TypeScript pour Node.js, Express et les routes API Next.js. Les concepts s'appliquent à d'autres frameworks mais les exemples de code sont spécifiques à ces technologies.
Comment choisir entre PUT et PATCH ?
Utilisez PUT pour le remplacement complet d'une ressource - le client envoie tous les champs. Utilisez PATCH pour les mises à jour partielles - le client envoie uniquement les champs à modifier.
Quand dois-je utiliser Redis vs la mise en cache en mémoire ?
Utilisez Redis pour la mise en cache distribuée sur plusieurs serveurs. Utilisez la mise en cache en mémoire pour les applications mono-serveur ou lorsque le partage du cache n'est pas requis.
Comment gérer l'authentification dans les fonctions serverless ?
Validez les tokens JWT au point d'entrée de la fonction en utilisant un middleware. Extrayez les informations utilisateur du token et attachez-les au contexte de la requête.
Quelle est la manière recommandée de structurer un projet backend ?
Organisez par fonctionnalité ou par couche. Approche courante : les routes/controllers gèrent HTTP, les services contiennent la logique métier, les repositories gèrent l'accès aux données. Gardez le code connexe ensemble.
Comment implémenter correctement le rate limiting ?
Utilisez un rate limiter distribué comme Redis pour la production. Suivez les requêtes par IP ou ID utilisateur. Définissez des limites appropriées basées sur les besoins de votre API et surveillez les abus.

تفاصيل المطور

بنية الملفات

📄 SKILL.md