Installation et configuration de l'environnement
- Quel IDE avez-vous utilisé ?
- Pourquoi ce choix ?
- Quels outils complémentaires avez-vous installés ?
- Avez-vous rencontré des difficultés lors de l'installation ?
Explication des choix techniques (IDE, frameworks, librairies, outils)
- Quels frameworks avez-vous choisis ?
- Pourquoi ces frameworks ?
- Quels critères ont guidé vos choix techniques ?
Développement d'interfaces utilisateur.ices
- Comment avez-vous conçu la charte graphique ?
- Comment avez-vous pris en compte l’accessibilité ?
- Quels outils avez-vous utilisés pour les maquettes ?
- Comment avez-vous testé l’ergonomie ?
Architecture des composants
- Comment avez-vous structuré vos composants métier ?
- Quels principes de découpage fonctionnel avez-vous appliqués ?
- Comment la modularité facilite-t-elle l’évolution de votre application ?
- Avez-vous rencontré des difficultés pour organiser vos composants ?
- Comment la structure choisie favorise-t-elle la réutilisabilité ?
Patterns de conception implémentés (Singleton, Factory, Observer, Strategy, Adapter, Repository, MVC / MVVM / MVU, etc...)
- Quels patterns de conception avez-vous utilisés dans votre projet ?
- Pourquoi avoir choisi ces patterns en particulier ?
- Comment ces patterns améliorent-ils la maintenabilité du code ?
- Avez-vous adapté un pattern à un besoin spécifique ?
- Comment documentez-vous l’utilisation des patterns dans votre code ?
Gestion des règles métier
- Où et comment les règles métier sont-elles définies dans votre application ?
- Comment assurez-vous l’isolation des règles métier ?
- Comment gérez-vous l’évolution des règles sans impacter le reste du projet ?
- Avez-vous mis en place des tests pour valider les règles métier ?
- Comment documentez-vous les règles métier ?
Sécurisation des composants métier
- Quelles mesures de sécurité avez-vous mises en place au niveau des composants métier ?
- Comment gérez-vous les permissions et les accès ?
- Quelles techniques utilisez-vous pour valider les entrées utilisateur ?
- Comment traitez-vous les erreurs ou les tentatives d’accès non autorisées ?
- Avez-vous utilisé des outils ou des bibliothèques pour renforcer la sécurité ?
Méthodologie de gestion de projet
- Quelle méthodologie de gestion de projet avez-vous choisie ?
- Pourquoi ce choix de méthodologie ?
- Comment la méthodologie a-t-elle été appliquée concrètement dans le projet ?
- Quels outils avez-vous utilisés pour suivre la méthodologie ?
- Quels avantages et limites avez-vous constatés ?
Planification et suivi des tâches
- Comment avez-vous planifié les différentes étapes du projet ?
- Quels outils ou supports avez-vous utilisés pour le suivi des tâches ?
- Comment les tâches étaient-elles réparties et priorisées ?
- Comment avez-vous géré les imprévus ou les retards ?
- Avez-vous fait des points réguliers d’avancement ?
Gestion des versions
- Quel système de gestion de versions avez-vous utilisé ?
- Comment avez-vous organisé les branches (main, develop, feature, etc.) ?
- Quelles conventions de nommage ou de commit avez-vous suivies ?
- Comment avez-vous géré les conflits de fusion ?
- Avez-vous utilisé des outils d’intégration continue ?
Collaboration et communication
- Quels outils de collaboration avez-vous utilisés ?
- Comment la communication était-elle organisée au sein de l’équipe ?
- Comment les décisions étaient-elles prises et partagées ?
- Avez-vous rencontré des difficultés de communication ?
- Comment avez-vous assuré le partage de l’information et la traçabilité ?
Analyse des besoins
- Comment avez-vous recueilli les besoins du client ou des utilisateurs ?
- Quelles méthodes avez-vous utilisées pour analyser les besoins fonctionnels ?
- Comment avez-vous identifié les besoins techniques spécifiques au projet ?
- Comment avez-vous validé la compréhension des besoins avec les parties prenantes ?
Cahier des charges et spécifications
- Comment avez-vous rédigé le cahier des charges ?
- Quels éléments essentiels figurent dans vos spécifications ?
- Comment avez-vous géré les évolutions ou modifications du cahier des charges ?
- Comment les spécifications ont-elles été validées ?
Architecture logicielle
- Quel type d’architecture logicielle avez-vous choisi (MVC, microservices, etc.) ?
- Pourquoi ce choix d’architecture ?
- Comment l’architecture facilite-t-elle la maintenance et l’évolution du projet ?
- Comment avez-vous documenté l’architecture ?
Sécurité dans l'architecture
- Quels principes de sécurité avez-vous intégrés dans l’architecture ?
- Comment l’architecture protège-t-elle contre les attaques courantes (ex : injection, XSS) ?
- Comment gérez-vous les droits d’accès et l’authentification ?
- Comment l’architecture permet-elle de limiter l’impact d’une faille de sécurité ?
Optimisation et indexation (base de données)
- Comment avez-vous optimisé la structure de la base de données ?
- Quels types d’index avez-vous mis en place et pourquoi ?
- Comment avez-vous mesuré les performances des requêtes ?
- Avez-vous rencontré des problèmes de lenteur ou de surcharge ?
Sécurité et protection des données
- Quelles mesures avez-vous prises pour sécuriser les données stockées ?
- Comment gérez-vous les accès à la base de données ?
- Comment protégez-vous les données sensibles (chiffrement, anonymisation, etc.) ?
- Comment gérez-vous les sauvegardes et la restauration des données ?
Utilisation d'un ORM
- Quel ORM avez-vous utilisé et pourquoi ?
- Comment l’ORM facilite-t-il la gestion des données ?
- Comment avez-vous géré les relations entre les entités ?
- Avez-vous rencontré des limites ou des difficultés avec l’ORM ?
Gestion des requêtes et transactions
- Comment gérez-vous les requêtes complexes dans votre application ?
- Comment assurez-vous l’intégrité des transactions ?
- Comment gérez-vous les erreurs lors des transactions ?
- Avez-vous mis en place des logs ou des audits sur les requêtes ?
Mise en cache et optimisation des performances
- Quelles techniques de mise en cache avez-vous utilisées ?
- Quels éléments sont mis en cache (requêtes, pages, objets, etc.) ?
- Comment mesurez-vous l’impact de la mise en cache sur les performances ?
- Comment gérez-vous l’invalidation du cache ?
Documentation technique de l'API
- Comment avez-vous documenté votre API ?
- Quels outils ou standards (Swagger, OpenAPI, etc.) avez-vous utilisés ?
- Comment la documentation est-elle maintenue à jour ?
- Comment facilitez-vous la prise en main de l’API par d’autres développeurs ?
Documentation du code source
- Comment commentez-vous votre code ?
- Utilisez-vous des outils de génération de documentation (JSDoc, Sphinx, etc.) ?
- Comment assurez-vous la cohérence et la clarté des commentaires ?
- Comment la documentation du code est-elle partagée dans l’équipe ?
Documentation de déploiement
- Quelles informations sont présentes dans votre documentation de déploiement ?
- Comment expliquez-vous les étapes de déploiement à un tiers ?
- Comment gérez-vous les environnements (dev, test, prod) dans la documentation ?
- Comment la documentation de déploiement est-elle maintenue à jour ?
Environnement de test
- Comment avez-vous configuré votre environnement de test ?
- Quels outils ou frameworks avez-vous utilisés ?
- Comment avez-vous organisé vos tests ?
- Comment gérez-vous les différents environnements de test (dev, test, prod) ?
Sécurité du déploiement
- Quelles mesures de sécurité appliquez-vous lors du déploiement ?
- Comment gérez-vous les variables d’environnement sensibles ?
- Comment limitez-vous les droits d’accès lors du déploiement ?
- Comment assurez-vous la sécurité des connexions (SSH, HTTPS, etc.) ?