1AgnĂšs ALLISOUTIN2023-09-01T14:24:49.497Z$Grace Fanta KOUNOU ckeditor htmlÀ W„
- Demander dÚs qu'on est bloqué
- Ăviter la rĂ©pĂ©tition (toujours noter les solutions apportĂ©es dans le fichier de gestion des erreurs)
- Exécution avant réclamation
- Faire le design thinking au dĂ©marrage dâun projet ou dâune fonctionnalitĂ©
- Se rĂ©fĂ©rer Ă lâexistant lors du dĂ©marrage de toute nouvelle fonctionnalitĂ©
- Faire une réunion de lancement de semaine tous les lundis matin (durée : 10h à 11h)
- Organiser la rétrospective à la fin de chaque sprint (toutes les deux semaines)
- Ne démarrer aucune tache sans DoD (Definition of Done) sauf dérogation
- Ne démarrer aucune tache sans délai
- Pousser toujours la version de son travail chaque jour
- Récupérer la derniÚre version stable tous les matins avant de démarrer le travail
- Faire une présentation de chaque nouvelle fonctionnalité pour validation avant de demander la fusion ou la mise en production
- Effectuer une démo des tùches réalisées dans la semaine tous les jeudis
- RĂ©aliser obligatoirement les tests postman et les tests unitaires pour lâĂ©criture dâune API
- Suivre les Ă©tapes suivantes pour la rĂ©alisation dâune tĂąche: ImplĂ©menter lâAPI,RĂ©aliser les interfaces validĂ©es, Consommer lâAPI
- Documenter tout nouveau concept implémenté dans un projet
- Fixer un délai d'au plus 48 heures pour toutes les tùches
- Avoir une fiche dâinstallation pour tous les projets
- Renseigner les configurations nécessaires dans le fichier install.md du projet à chaque mise à jour du projet
- Soumettre une demande de modification de la fiche dâinstallation pour une mise Ă jour
- Utiliser la convention âTraduction_dateâ pour nommer les fichiers de traduction
- Faire une mise en production tous les jeudis
- Effectuer une mise en production les vendredis matin des nouvelles fonctionnalités validées et testées
- Avoir toujours une branche [develop stable <version>] disponible sur le dépÎt
- Avoir toujours une branche [main stable <version>] disponible sur le dépÎt
- Avoir toujours une branche [prod stable <version>] pour la production disponible sur le dépÎt.
- Versionner le projet Ă chaque mise en production dâune nouvelle fonctionnalitĂ© ; Ex: v0.0.1
- Faire une demande des assets au démarrage de tout projet mobile
- Nommer les branches comme suit :
- âSetup/Nom Projetâ (lors de lâinitialisation du projet)
- âSetup/Nom Configâ (lors de la mise en place dâune configuration spĂ©cifique pour le projet),
- âFeature/Api/Moduleâ (lors de lâimplĂ©mentation dâune API sur un module),
- âFeature/Interface/Moduleâ (lors de lâimplĂ©mentation dâune vue sur un module),
- âFeature/Consumption/Moduleâ (lors de la consommation dâune API sur un module),
- âFeedback/Api/Moduleâ (lors de la correction dâune API existante sur un module),
- âFeedback/Interface/Moduleâ (lors de la correction ou mise Ă jour dâune interface sur un module),
- âFeedback/Consumption/Moduleâ (lors de la revue dâune consommation API sur un module)
- âFeedback/Projet_dateâ (lors du traitement d'un fichier feedback)
- âModule/Nom Moduleâ (branche stable pour un module donnĂ©)
- âReview/API/Moduleâ (lors du code review)
Nommer les commits de façon explicite par sous tùche ( ajouter un titre et une description si nécessaire ) .
- Coding Games (Heure de démarrage : 9H30 Durée: 15 min)
- Stand up meeting (Heure de démarrage :10h Durée: 15 min)
- Pause à 17h (Durée: 15 min)
- Point de la journée à 18h (Durée: 15 min)
- Rapport de semaine à envoyer tous les samedis au plus tard à 15h au manager de l'équipe :
- Intitulé du rapport : RAP_KOB_RB_40 ( RAP pour dire rapport , KOB les 3 premiÚres initiales du nom du produit KOBO , RB pour Rachid Bouraima et 40 pour designer la semaine dans l'année ) .
- Point clé du rapport : Fait marquant ; point de blocage ; suggestion ou amélioration
- Retard de 15 min : signaler au manager de l'équipe et au lead tech
- Retard de plus de 15 min : signaler par mail au manager de l'équipe et mettre en copie l'administration
NB: Les fonctions et variables sont déclarées en anglais
1. Nom significatif et explicatif
- Déclarer les variables et les fonctions en anglais
- Donner des nom explicites aux variables et fonctions
- Utiliser le Pascal case pour les classes et les structures de données
- Utiliser le camelcase pour le nom de variable et fonctions
- Utiliser le snake case pour les constantes
2. Ăcriture des fonctions
- Typer les arguments et les retours
- Déclarer les variables en début de fonctions sauf en cas de porté de variable
- Ăcrire des fonctions courtes
- Indenter le code
- Eviter les magic number
- Limiter les arguments Ă 2 - 3 max
- Eviter les boolean flags
- Eviter Le conditionnel négatif
- Ăviter le copier coller de fonctions
3. Principe SOLID
- Single responsibility principle
- Open/closed principle
- Liskov substitution principle
- Dependency inversion principle
4. RĂšgle boyscout (sous rĂ©serve dâavoir informĂ© le manager de l'Ă©quipe)
"Laisser le terrain de camping plus propre que vous ne l'avez trouvé en arrivant"
1. Intégration d'une interface
- Avoir 90 % de conformitĂ© avec les interfaces ïŹgma et/ou les spĂ©ciïŹcations
- Utiliser le theming en place
- Eviter de mettre des couleurs et autres en dur dans le code
- VĂ©riïŹer les arrondis, les alignements horizontales et verticales, les paddings et margins
- Mettre les bons textes
- Mettre en place les traductions
- VĂ©riïŹer et optimiser lâaccessibilitĂ© des diïŹĂ©rents composantes de lâinterface
- Faire attention au nombre de reârender de lâinterface
- VĂ©riïŹer le bon affichage sur au moins trois marques de portable
2. Utilisation /Création d'un composant
- Respecter le rĂšgle de nommage en vigueur pour nommer et importer un composant
- Respecter le rĂšgle de nommage en vigueur pour nommer les paramĂštres(props) et les variables
- Respecter le nombre maximum de paramĂštres dâun composant (utilisĂ© la destructuration au besoin)
- Faire attention au nombre de reârender du composant
- Externaliser tous les traitements de données hors du composant dans la mesure du possible
- CrĂ©er les composants dans le bon dossier et non sur lâinterface elle mĂȘme
- Pour les composants externes privilégiez ceux de la communauté et ceux proposé par la documentation officielle
- Utiliser les composants dédiés pour certain layouts (Ex : utilisé Flashlist au lieu de FlatList pour les listes scrollable)
3. Utilisation d'un package
- Utiliser les packages quâen cas de rĂ©el nĂ©cessitĂ©
- Utiliser en prioritĂ© les packages de la communautĂ© reactânative
- Utiliser des packages non dĂ©prĂ©cier et dont la taille sâexprime en KB (pĂšse le moins)
- Utiliser les packages dédié et optimisé pour le mobile
4. Utilisation des animations
- Activer lâutilisation du driver pour toutes les animations
5.Général
- Ne pas laisser dans lâapplication des packages non utilisĂ©s
- Ne pas laisser dans lâapplication des variables non utilisĂ©s
- Ne pas laisser dans les composants et vues des imports non utilisés
- Supprimer tout composant et ïŹchier non utilisĂ©s
- Enlever tous les codes commentés
- Enlever tous les console.log aprÚs développement
- Indenter le code avec un linter
- Régler au maximum les erreurs, warning de la console
- Ne pas faire une modiïŹcation majeure sur un composant existant sans informer au prĂ©alable
- Utiliser les outils mise Ă disposition par reactânative (hooks, contextâŠ)
- Utiliser au maximum les principes solides appliquĂ©s Ă reactânatives
6. Livrable
- une branche nommée conformément aux rÚgles de nommages
- un commit explicites de ce qui a été fait ou pas
- un ïŹchier des variables de traduction Ă faire traduire sâil y en a
- Intégrer les interfaces conformément aux maquettes (90%) ou spécifications fournies.
- Utiliser les conventions de nommage et de structuration du code définies par l'équipe.
- Mettre à jour les fichiers de configuration et de dépendances si nécessaire.
- Présenter un loader pour tous les chargements de données.
- Présenter un loader pour les boutons de validation de formulaire.
- Assurer un minimum de responsivité pour le format mobile.
- Inclure une pagination ou scroll pour les listes de données.
- Rendre les menus actifs.
- Implémenter la traduction des textes
- Indiquer les champs requis dâun formulaire par des marqueurs.
- Fournir un label et/ou un placeholder pour les champs d'un formulaire.
- Valider les zones et inputs de saisie.
- Formater les donnĂ©es suivant la langue. ( montant , date âŠ.)
- Utiliser adéquatement les composants.
- Garantir le fonctionnement optimal des composants.
- Gérer les réponses des appels API ou actions.
- Présenter une confirmation sur les actions critiques (suppression, etc.).
- Réaliser les tests unitaires pour les composants. (*)
- Effectuer les tests d'intégration pour vérifier l'interaction entre les composants.(*)
- Effectuer les tests manuels pour valider le bon fonctionnement de l'interface utilisateur et de la fonctionnalité
- Vérifier la compatibilité entre navigateurs (Chrome, Firefox, Safari, Edge, etc.).
- Vérifier et corriger les erreurs et les avertissements générés par les outils de linting et de formatage.
- Obtenir la validation des parties prenantes concernées (designers, product owners, etc.).
- Réaliser la revue de code par un autre développeur
- Nommer correctement la branche de la tùche conformément aux normes applicatives définies.
- Ăcrire le code correspondant aux fonctionnalitĂ©s prĂ©vues dans la User Story.
- Organiser au mieux le code (Model, Controller, Request, Resources, etc.).
- Respecter le Design Pattern MVC.
- Nommer correctement les variables et les fonctions conformément aux normes de développement définies.
- Appliquer le principe SOLID selon les normes de développement définies.
- Réaliser les traductions API.
- Respecter les hypothÚses ou les conditions spécifiées dans la User Story.
- Effectuer les tests Postman.
- Réaliser les tests unitaires sans erreurs.
- Effectuer le formatage et le linting du code.
- Documenter les endpoints.
- Renseigner les configurations nécessaires dans le fichier install.md du projet à chaque mise à jour du projet.
- Effectuer la revue de code.
Normesy[{"title":"NORMES","anchor":"#normes","children":[{"title":"PROCĂDURES OU RĂGLES DE TRAVAIL","anchor":"#procĂ©dures-ou-rĂšgles-de-travail","children":[]},{"title":"NORMES APPLICATIVES","anchor":"#normes-applicatives","children":[]},{"title":"ROUTINE QUOTIDIENNE DE TRAVAIL","anchor":"#routine-quotidienne-de-travail","children":[]},{"title":"PRINCIPES ET BONNES PRATIQUES SUR LA QUALITĂ DE CODE","anchor":"#principes-et-bonnes-pratiques-sur-la-qualitĂ©-de-code","children":[]},{"title":"NORMES DE CONCEPTION ET DE QUALITĂ D'UNE TACHE MOBILE REACT-NATIVE","anchor":"#normes-de-conception-et-de-qualitĂ©-dune-tache-mobile-react-native","children":[]},{"title":"DĂ©finition Of Done d'une tache Front Web","anchor":"#dĂ©finition-of-done-dune-tache-front-web","children":[]},{"title":"DĂ©finition Of Done d'une tache Back","anchor":"#dĂ©finition-of-done-dune-tache-back","children":[]}]}]2025-10-01T20:26:41.691Z