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.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "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)
}
التدقيق الأمني
مخاطر منخفضة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)
عوامل الخطر
🔑 متغيرات البيئة (1)
الأنماط المكتشفة
درجة الجودة
ماذا يمكنك بناءه
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é.
جرّب هذه الموجهات
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.
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.
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.
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 ?
Comment choisir entre PUT et PATCH ?
Quand dois-je utiliser Redis vs la mise en cache en mémoire ?
Comment gérer l'authentification dans les fonctions serverless ?
Quelle est la manière recommandée de structurer un projet backend ?
Comment implémenter correctement le rate limiting ?
تفاصيل المطور
المؤلف
affaan-mالترخيص
MIT
المستودع
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/cc-skill-backend-patternsمرجع
main
بنية الملفات
📄 SKILL.md