المهارات backend-dev-guidelines
📦

backend-dev-guidelines

آمن

Construire des backends Node.js de production avec les meilleures pratiques

متاح أيضًا من: diet103,Dimon94,BrianDai22,DojoCodingLabs

Arrêtez de deviner l'architecture backend. Obtenez des directives complètes pour les services Node.js multicouches avec Express, TypeScript, les repositories Prisma et la validation Zod qui passent à l'échelle de manière fiable.

يدعم: Claude Codex Code(CC)
🥉 74 برونزي
1

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

2

رفع في Claude

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

3

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

اختبرها

استخدام "backend-dev-guidelines". Create a user registration endpoint

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

  • Generated Zod validation schema for user input
  • Created UserController extending BaseController with createUser method
  • Implemented UserService with business logic and dependency injection
  • Created UserRepository with Prisma queries
  • Added route registration with asyncErrorWrapper
  • Included Sentry error tracking and BFRI assessment

استخدام "backend-dev-guidelines". Refactor inline database queries in routes

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

  • Extracted business logic from routes into new UserService
  • Created UserRepository to encapsulate Prisma operations
  • Updated UserController to orchestrate service calls
  • Added proper error boundaries with BaseController
  • Wrote unit tests for service layer
  • BFRI improved from -2 (dangerous) to 8 (safe)

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

آمن
v1 • 2/25/2026

Static analysis flagged 544 patterns across 12 markdown documentation files (5337 lines). All findings are FALSE POSITIVES - the detected patterns exist in markdown code examples and documentation, not executable code. This skill provides secure backend development guidelines that explicitly teach against risky patterns like direct process.env usage. Safe for publication.

12
الملفات التي تم فحصها
5,337
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

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

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

Développement de nouveaux microservices

Générez un microservice backend complet à partir de zéro en suivant les patterns de production avec une stratification appropriée, une validation et une gestion des erreurs.

Refactoring du code hérité

Refactorisez les gestionnaires de routes monolithiques en une architecture multicouche appropriée avec controllers, services et repositories pour une maintenabilité améliorée.

Intégration d'équipe et standards

Établissez des standards de développement backend cohérents entre les équipes avec des patterns clairs pour l'architecture, les tests et la gestion des erreurs.

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

Créer un nouveau Controller
Créez un UserController suivant le pattern BaseController avec les méthodes getUser, listUsers, createUser et updateUser. Incluez une gestion des erreurs appropriée avec l'intégration Sentry.
Implémenter la couche Service avec DI
Créez un UserService qui reçoit UserRepository via l'injection de dépendances. Incluez les méthodes findById, getAll, create, update et delete avec une séparation appropriée de la logique métier.
Construire une fonctionnalité complète avec validation
Implémentez une fonctionnalité complète d'inscription utilisateur avec un schéma de validation Zod, un controller étendant BaseController, un service avec la logique métier et un repository avec Prisma. Incluez le scoring BFRI pour l'implémentation.
Refactoriser le code hérité vers une architecture multicouche
Refactorisez ce gestionnaire de routes monolithique en une architecture multicouche appropriée. Identifiez les routes, controllers, services et repositories. Ajoutez une gestion des erreurs appropriée, de la validation et le suivi Sentry. Calculez le BFRI avant et après.

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

  • Utilisez toujours une architecture multicouche : les routes délèguent aux controllers, les controllers appellent les services, les services utilisent les repositories
  • N'utilisez jamais process.env directement - accédez à la configuration via unifiedConfig pour la sécurité des types et la testabilité
  • Validez toutes les entrées externes avec les schémas Zod avant le traitement - corps de requête, paramètres de requête et paramètres de route

تجنب

  • Logique métier dans les gestionnaires de routes - les routes ne doivent que déléguer aux controllers
  • Utilisation directe de Prisma dans les controllers - abstrait toujours via les repositories
  • Utilisation de console.log pour les erreurs - toutes les erreurs doivent être capturées dans Sentry

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

Pourquoi utiliser une architecture multicouche au lieu de mettre la logique dans les routes ?
L'architecture multicouche permet la testabilité, la réutilisabilité et la maintenabilité. Les services peuvent être testés indépendamment, réutilisés à travers les routes/crons/scripts, et les bugs sont plus faciles à localiser dans des couches isolées.
Qu'est-ce que le BFRI et comment le calculer ?
BFRI (Backend Feasibility Risk Index) = (Architectural Fit + Testability) - (Complexity + Data Risk + Operational Risk). Le score varie de -10 à +10. Les scores au-dessus de 3 sont sécurisés pour continuer ; en dessous de 0 nécessitent une refonte.
Pourquoi ne puis-je pas utiliser process.env directement dans mon code ?
L'utilisation directe de process.env manque de sécurité des types, de validation et rend les tests difficiles. unifiedConfig fournit un accès typé avec des默认值, valide au démarrage et permet un mock facile dans les tests.
Dois-je étendre BaseController pour tous les controllers ?
Oui. BaseController fournit une gestion des erreurs cohérente via handleError, des réponses de succès via handleSuccess, l'intégration Sentry et le traçage des requêtes. Cela assure un comportement uniforme sur tous les endpoints.
Quand dois-je utiliser les transactions dans mes services ?
Utilisez les transactions quand plusieurs opérations de base de données doivent réussir ou échouer ensemble. Enveloppez les opérations liées dans this.withTransaction() pour assurer l'atomicité et le rollback approprié en cas d'erreurs.
Comment tester les services qui utilisent l'injection de dépendances ?
Injectez des repositories mock via le constructeur du service dans les tests. Cela permet de tester la logique métier en isolation sans accès à la base de données. Les mocks Jest ou les classes mock manuelles fonctionnent bien pour ce pattern.