====== Méthode de développement====== Mise en place d'un vocabulaire commun et d'une convention de codage. Produire un code clair, lisible et réutilisable. Il faut ce détacher des technologies et cacher les zones complexes, en utilisant par exemple les designs pattern "DAO" ou les encapsuler dans un framework. Pour assurer la maintenance d'un projet, il faut s'assurer que d'autre développeur seront capable de reprendre le code sans demander un profil expérimenté. La durée de vie de l'application dépend de l'évolution des technologies, d'aujourd'hui, de demain et des choix de conception de l'architecture. ===== Méthode RUP ===== ===== Méthode Agile===== ex : méthode XP ===Fondamentaux:=== *Communication; *Feedback; *Simplicité; *Courage. ===Le Code:=== *N'optimiser qu'a la toute fin; *Ne pas ajouter de fonctionnalités plus tôt que prévue; *Mise en place de règle de nommage pour les variables, méthodes, objets, gestion des exceptions...); *Amélioration continue du code sans en modifier le comportement(commentaire, respect des règles de nommage, simplification...). ===Bonnes Idées:=== *Privilégier l'échange d'idées, la communication et la discussion entre tous les acteurs, et surtout le reporting; *Prévoir entre chaque cycle un bilan, et une réflexion sur le travail réalisé, prendre du recul sur le développement; *Repartir **from scratch** pour le nouveau cycle, quitte à reprendre l'ancien code comme modèle; *Réajuster les priorités de développement, et l'architecture, refactorer le code. ====== Environnement de développement====== ====== Tests et Validation ====== voir [[testetvalidation:testsetvalidation|Tests et validation]] ===== Gestionnaire de Version ===== ===Idées d'usage=== *Faire un commit et tag individuel pour chaque fichier; *Utiliser une branche pour chaque sous version, ou test de développement, puis faire un merge; *Garder sur le tronc la version qui marche, et est utilisable en production. ===== Mise en place de log ===== *Plus besoin de mettre de "sysout", qu'il faut supprimer après dans le code(perte de temps, et oubli) *Vérification du comportement de l'application *Débogage plus facile. Conseils: * Baliser chaque fichier indépendamment pour avoir une trace fine des modifications; * Utiliser les balises, INFO, DEBUG, WARN, FATAL, pour éviter d'avoir des messages inutiles en production qui pourraient ralentir l'application; * Afficher les variables sensibles en mode DEBUG; * En Mode Débug, mettre un tag au début et à la fin de chaque fonction critique; * Mettre les messages des exceptions en ERROR, WARN, ou FATAL, et sauvegarder la trace dans le fichier de log. ===log4J=== Standard, car utiliser dans de nombreux Serveurs d'application et de framework. [[framework:log4j|Log4J]] ===== Gestion des exceptions===== Essentiel à la robustesse de l'application *Garder une trace de la pile au moment ou l'exception c'est produite, dans les Logs; *Remonter l'exception jusqu'au traitement, si possible le plus haut dans l'application; *Déalouer les ressources(avec //Finally//) crées où ouvertes( ex transaction, ou fichier ouvert). ====== Documentation de logiciel ====== voir [[gestiondocumentations|Gestion de la documentation]]