{"product_id":"139192","title":"Cinq lignes de code ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPBpS1046urYy91nBFF3Dm00zZXv.png?v=1765073716\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e Cinq lignes de code \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/116904325\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eIntroduction au livre\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\u003cdiv\u003e \u003cb\u003eIl vous apprend à restructurer toutes vos méthodes en 5 lignes ou moins, en se concentrant sur des règles spécifiques !\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e L'amélioration du code existant (refactoring) est l'une des tâches les plus courantes auxquelles les programmeurs sont confrontés. \u003cbr\u003e« Cinq lignes de code » fournit des règles de refactorisation claires et applicables que vous pouvez mettre en œuvre sans vous fier à des jugements intuitifs comme les anomalies de code.\u003cbr\u003e En suivant des principes spécifiques, vous apprendrez quand remanier votre code, quels modèles appliquer à quels problèmes et quelles caractéristiques du code nécessitent une refonte, selon l'expertise de l'auteur en matière de remaniement et d'anomalies de code.\u003cbr\u003e\u003cbr\u003e Chaque base de code avec laquelle travaille un programmeur comporte des erreurs et des inefficacités qu'il faut trouver et corriger.\u003cbr\u003e Bien refactoriser rend votre code plus élégant, lisible et maintenable.\u003cbr\u003e Dans ce livre, vous découvrirez une approche unique de la refactorisation qui réduit chaque méthode à cinq lignes ou moins. \u003cbr\u003eCe livre est accessible aux développeurs de tous niveaux de compétence, et les exemples utilisent TypeScript, un langage facile à lire dans le même style que Java et C#.\u003cbr\u003e\n\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e Vous pouvez consulter un aperçu du contenu du livre.\u003cbr\u003e \u003cspan\u003eAperçu\u003c\/span\u003e\n\n\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\n\u003c\/div\u003e \",\"\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindice\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eChapitre 1 : Refactorisation\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 1.1 Qu'est-ce que le refactoring ?\u003cbr\u003e 1.2 Compétence : Que faut-il refactoriser ?\u003cbr\u003e 1.2.1 Exemple de code défectueux\u003cbr\u003e __1.2.2 Exemple de règle\u003cbr\u003e 1.3 Culture : Quand faut-il refactoriser ?\u003cbr\u003e 1.3.1 Refactorisation dans les systèmes existants\u003cbr\u003e __1.3.2 Quand ne faut-il pas refactoriser ?\u003cbr\u003e 1.4 Outils : Méthodes de refactorisation (sûres)\u003cbr\u003e 1.5 Outils nécessaires pour débuter\u003cbr\u003e __1.5.1 Langage de programmation : TypeScript\u003cbr\u003e __1.5.2 Éditeur : Visual Studio Code 1\u003cbr\u003e __1.5.3 Gestion des versions : Git\u003cbr\u003e 1.6 Exemple principal : Jeu de puzzle 2D\u003cbr\u003e 1.6.1 La pratique est le seul moyen de survivre : La deuxième base de code\u003cbr\u003e 1.7 Remarques sur les logiciels dans des environnements réels\u003cbr\u003e addition\u003cbr\u003e \u003cbr\u003e\u003cb\u003eChapitre 2 : Une analyse approfondie du refactoring\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 2.1 Amélioration de la lisibilité et de la maintenabilité\u003cbr\u003e __2.1.1 Amélioration du code\u003cbr\u003e __2.1.2 Maintenir le code sans en modifier le fonctionnement\u003cbr\u003e 2.2 Garantir la vitesse, la flexibilité et la stabilité\u003cbr\u003e 2.2.1 Privilégier la composition à l'héritage\u003cbr\u003e __2.2.2 Modifications supplémentaires du code, et non des modifications\u003cbr\u003e 2.3 Refactorisation et travail quotidien\u003cbr\u003e __2.3.1 La refactorisation comme méthode d'apprentissage\u003cbr\u003e 2.4 Définition d'un « domaine » dans le domaine du logiciel\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 3 : Découpage du code long\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 3.1 Première règle : Pourquoi cinq lignes ?\u003cbr\u003e 3.1.1 Règle : Limite de cinq lignes\u003cbr\u003e 3.2 Introduction des modèles de refactorisation pour la décomposition de fonctions\u003cbr\u003e 3.2.1 Modèle de refactorisation : Extraction de méthode\u003cbr\u003e 3.3 Décomposition de la fonction pour correspondre au niveau d'abstraction\u003cbr\u003e Règle 3.3.1 : Appeler ou passer, n’en faire qu’un seul.\u003cbr\u003e 3.3.2 Application de la règle\u003cbr\u003e 3.4 Propriétés d'un bon nom de fonction\u003cbr\u003e 3.5 Séparer les fonctions qui effectuent une part excessive du travail\u003cbr\u003e 3.5.1 Règle : les instructions « if » doivent être placées uniquement au début des fonctions.\u003cbr\u003e 3.5.2 Application des règles\u003cbr\u003e addition\u003cbr\u003e \u003cbr\u003e\u003cb\u003eChapitre 4 : Gestion des codes de type\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 4.1 Refactorisation d'une instruction if simple\u003cbr\u003e Règle 4.1.1 : N’utilisez pas « else » dans les instructions « if ».\u003cbr\u003e 4.1.2 Application de la règle\u003cbr\u003e 4.1.3 Modèle de refactorisation : remplacement du code de type par des classes\u003cbr\u003e __4.1.4 Migration du code vers une classe\u003cbr\u003e 4.1.5 Modèle de refactorisation : Migration de code vers une classe\u003cbr\u003e 4.1.6 Intégration des méthodes inutiles\u003cbr\u003e 4.1.7 Modèle de refactorisation : Inlining de méthodes\u003cbr\u003e 4.2 Refactorisation des instructions if longues\u003cbr\u003e __4.2.1 Supprimer la généralité\u003cbr\u003e 4.2.2 Modèle de refactorisation : Spécialisation des méthodes\u003cbr\u003e __4.2.3 Le seul cas où le commutateur est autorisé\u003cbr\u003e Règle 4.2.4 : Ne pas utiliser d’interrupteur\u003cbr\u003e __4.2.5 Suppression si\u003cbr\u003e 4.3 Gestion de la duplication de code\u003cbr\u003e __4.3.1 Ne pouvons-nous pas utiliser des classes abstraites au lieu d'interfaces ?\u003cbr\u003e Règle 4.3.2 : Hériter uniquement des interfaces\u003cbr\u003e __4.3.3 Qu'est-ce que la duplication de code en classe ?\u003cbr\u003e 4.4 Refactorisation des instructions if enchaînées complexes\u003cbr\u003e 4.5 Suppression du code inutile\u003cbr\u003e 4.5.1 Modèle de refactorisation : Supprimer et compiler\u003cbr\u003e addition\u003cbr\u003e \u003cbr\u003e\u003cb\u003eChapitre 5 : Fusion de code similaire\u003cbr\u003e\u003c\/b\u003e 5.1 Intégration de classes similaires\u003cbr\u003e __5.1.1 Modèle de refactorisation : regroupement des classes similaires\u003cbr\u003e 5.2 Intégration de conditions simples\u003cbr\u003e __5.2.1 Modèle de refactorisation : Combinaison d’instructions if\u003cbr\u003e 5.3 Intégration de conditions complexes\u003cbr\u003e 5.3.1 Utilisation des règles arithmétiques pour les conditions\u003cbr\u003e Règle 5.3.2 : Utilisez des conditions pures\u003cbr\u003e __5.3.3 Application de l'arithmétique conditionnelle\u003cbr\u003e 5.4 Intégration de code entre les classes\u003cbr\u003e 5.4.1 Introduction aux diagrammes de classes UML pour la représentation des relations entre les classes\u003cbr\u003e 5.4.2 Modèles de refactorisation : Introduction du modèle de stratégie\u003cbr\u003e Règle 5.4.3 : Ne créez pas d'interfaces avec une seule implémentation.\u003cbr\u003e 5.4.4 Modèle de refactorisation : Extraction de l’interface à partir de l’implémentation\u003cbr\u003e 5.5 Intégration de fonctions similaires\u003cbr\u003e 5.6 Fusion de code similaire\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 6 : Protection des données\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 6.1 Encapsulation sans accesseurs\u003cbr\u003e 6.1.1 Règle : N'utilisez pas de getters et de setters\u003cbr\u003e 6.1.2 Application des règles\u003cbr\u003e 6.1.3 Modèle de refactorisation : Suppression des accesseurs et des mutateurs\u003cbr\u003e __6.1.4 Supprimer le dernier getter  \u003cbr\u003e6.2 Encapsulation simple des données\u003cbr\u003e 6.2.1 Règle : N’utilisez pas d’affixes courants\u003cbr\u003e 6.2.2 Application des règles\u003cbr\u003e 6.2.3 Modèle de refactorisation : Encapsulation des données\u003cbr\u003e 6.3 Encapsulation de données complexes\u003cbr\u003e 6.4 Suppression des invariants dans une séquence\u003cbr\u003e 6.4.1 Modèle de refactorisation : Imposition de l’ordre\u003cbr\u003e 6.5 Une autre façon de supprimer les énumérations\u003cbr\u003e __6.5.1 Énumération via des constructeurs privés\u003cbr\u003e 6.5.2 Réaffectation des nombres aux classes\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 7 : Utilisation du compilateur\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 7.1 Découverte du compilateur\u003cbr\u003e 7.1.1 Faiblesse : Les problèmes d'arrêt limitent les informations disponibles lors de la compilation.\u003cbr\u003e __7.1.2 Avantage : La vérification de l'accessibilité garantit le retour d'une méthode.\u003cbr\u003e __7.1.3 Avantage : L'affectation définie empêche l'accès aux variables non initialisées.\u003cbr\u003e 7.1.4 Avantage : Prend en charge l'encapsulation des données avec contrôle d'accès\u003cbr\u003e 7.1.5 Avantage : Le vérificateur de type garantit les propriétés\u003cbr\u003e __7.1.6 Faiblesse : Le déréférencement de null provoque le plantage de l'application.  \u003cbr\u003e7.1.7 Faiblesse : Les erreurs arithmétiques entraînent un dépassement de capacité ou une corruption.\u003cbr\u003e __7.1.8 Faiblesse : Les erreurs hors limites provoquent le plantage des applications.\u003cbr\u003e __7.1.9 Les boucles infinies ralentissent votre application.\u003cbr\u003e __7.1.10 Faiblesse : Les blocages et les conditions de concurrence peuvent conduire à un comportement imprévu.\u003cbr\u003e 7.2 Utilisation du compilateur\u003cbr\u003e 7.2.1 Utilisation du compilateur\u003cbr\u003e 7.2.2 Ne luttez pas contre le compilateur\u003cbr\u003e 7.3 Faire confiance au compilateur\u003cbr\u003e __7.3.1 Enseignement des invariants au compilateur\u003cbr\u003e 7.3.2 Faites attention aux avertissements du compilateur\u003cbr\u003e 7.4 Ne faites confiance qu'au compilateur\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 8 : S'abstenir de tout commentaire\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 8.1 Suppression des anciens commentaires\u003cbr\u003e 8.2 Suppression du code commenté\u003cbr\u003e 8.3 Supprimer les commentaires inutiles\u003cbr\u003e 8.4 Remplacement des commentaires par des noms de méthodes\u003cbr\u003e 8.4.1 Utilisation des commentaires pour la planification\u003cbr\u003e 8.5 Conserver les commentaires documentant les invariants\u003cbr\u003e 8.5.1 Invariants de processus\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 9 : L'art de la suppression de code\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 9.1 La prochaine ère sera celle de l'effacement du code.  \u003cbr\u003e9.2 Suppression de code pour éliminer la complexité\u003cbr\u003e 9.2.1 Ignorance technique due à un manque d'expérience\u003cbr\u003e 9.2.2 Gaspillage technique dû à la pression du temps\u003cbr\u003e 9.2.3 Dette technique par environnement\u003cbr\u003e 9.2.4 Obstacles techniques à la croissance\u003cbr\u003e 9.3 Classification des codes par degré d'intimité\u003cbr\u003e 9.4 Suppression de code des systèmes existants\u003cbr\u003e __9.4.1 Motif de figuier étrangleur\u003cbr\u003e __9.4.2 Utilisation du modèle d'arbre en figue étrangleuse pour améliorer le code\u003cbr\u003e 9.5 Suppression de code d'un projet gelé\u003cbr\u003e 9.5.1 Définir le résultat souhaité comme valeur par défaut\u003cbr\u003e __9.5.2 Réduction des déchets grâce aux pointes et à la stabilisation\u003cbr\u003e 9.6 Suppression d'une branche du contrôle de version\u003cbr\u003e 9.6.1 Minimiser le gaspillage grâce aux limites de branche\u003cbr\u003e 9.7 Suppression des documents de code\u003cbr\u003e 9.7.1 Algorithme de détermination de la manière de documenter les connaissances\u003cbr\u003e 9.8 Suppression du code de test\u003cbr\u003e __9.8.1 Supprimer les tests optimistes\u003cbr\u003e __9.8.2 Suppression des tests pessimistes\u003cbr\u003e __9.8.3 Corriger ou supprimer les tests instables  \u003cbr\u003e__9.8.4 Refactorisation du code pour éliminer les tests complexes\u003cbr\u003e __9.8.5 Accélérer la culture des tests\u003cbr\u003e 9.9 Supprimez le code de configuration\u003cbr\u003e 9.9.1 Définir la durée de vie prévue des paramètres\u003cbr\u003e 9.10 Supprimer le code pour la suppression de la bibliothèque\u003cbr\u003e 9.10.1 Limitation des dépendances aux bibliothèques externes\u003cbr\u003e 9.11 Supprimer le code de la fonction en cours d'exécution\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 10 : Surmonter la peur d’ajouter du code\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 10.1 Accepter l'incertitude : prendre des risques\u003cbr\u003e 10.2 Utiliser des pointes pour surmonter la peur\u003cbr\u003e 10.3 Spécifier un ratio de temps d'utilisation pour surmonter la crainte du gaspillage ou du risque\u003cbr\u003e 10.4 Amélioration progressive pour surmonter la peur de l'imperfection\u003cbr\u003e 10.5 Comment le copier-coller affecte la vitesse\u003cbr\u003e 10.6 Modifications par ajout grâce à l'extensibilité\u003cbr\u003e 10.7 Modifications visant à assurer la compatibilité avec les versions précédentes\u003cbr\u003e 10.8 Modifications dues à l'ajout d'un bouton d'activation\/désactivation\u003cbr\u003e 10.9 Modifications dues à l'ajout de la fonctionnalité « Branchage par abstraction »\u003cbr\u003e addition\u003cbr\u003e \u003cbr\u003e\u003cb\u003eChapitre 11 : Suivre la structure du code\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 11.1 Classification des structures par étendue et source\u003cbr\u003e 11.2 Trois façons de codifier les actions\u003cbr\u003e __11.2.1 Actions de codage dans le flux de contrôle\u003cbr\u003e __11.2.2 Intégration du comportement dans les structures de données\u003cbr\u003e 11.2.3 Codage des comportements dans les données\u003cbr\u003e 11.3 Ajout de code pour exposer la structure\u003cbr\u003e 11.4 Observation plutôt que prédiction, et utilisation de techniques empiriques.\u003cbr\u003e 11.5 Comment garantir la sécurité sans comprendre le code\u003cbr\u003e 11.5.1 Garantir la sécurité par les essais\u003cbr\u003e 11.5.2 Garantir la sécurité par la maîtrise\u003cbr\u003e 11.5.3 Garantir la sécurité grâce au support des outils\u003cbr\u003e 11.5.4 Garantir la sécurité par une certification officielle\u003cbr\u003e 11.5.5 Garantir la sécurité par la tolérance aux pannes\u003cbr\u003e 11.6 Utilisation des structures inutilisées\u003cbr\u003e __11.6.1 Utilisation des espaces blancs pour l'extraction et l'encapsulation\u003cbr\u003e __11.6.2 Utilisation de code dupliqué pour l'intégration\u003cbr\u003e __11.6.3 Utilisation des affixes courants avec encapsulation\u003cbr\u003e __11.6.4 Exploitation des types d'exécution avec l'exécution dynamique\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 12 : Éviter l’optimisation et la généralisation\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 12.1 La recherche de la simplicité  \u003cbr\u003e12.2 Moment et méthode de généralisation\u003cbr\u003e 12.2.1 Éviter la généralisation en minimisant l'implémentation\u003cbr\u003e __12.2.2 Intégration de la stabilité similaire\u003cbr\u003e __12.2.3 Éliminer les généralisations inutiles\u003cbr\u003e 12.3 Quand et comment optimiser\u003cbr\u003e 12.3.1 Refactorisation avant l'optimisation\u003cbr\u003e 12.3.2 Optimisation selon la théorie des contraintes\u003cbr\u003e __12.3.3 Optimisation à l'aide de métriques\u003cbr\u003e __12.3.4 Choisir de bons algorithmes et de bonnes structures de données\u003cbr\u003e __12.3.5 Utilisation du cache\u003cbr\u003e __12.3.6 Séparation du code optimisé\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 13 : Rendre le code défectueux identifiable\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 13.1 Comment gérer un code défectueux\u003cbr\u003e 13.2 Séparation du code propre et du code hérité\u003cbr\u003e 13.2.1 Théorie des vitres brisées\u003cbr\u003e 13.3 Comment trouver un code défectueux\u003cbr\u003e __13.3.1 Règles de ce livre : Code simple et concret\u003cbr\u003e 13.3.2 Odeur de code : Code complet et abstrait\u003cbr\u003e __13.3.3 Complexité cyclomatique : Algorithmes (Objectif)\u003cbr\u003e __13.3.4 Complexité cognitive : Algorithme (Subjectif)\u003cbr\u003e 13.4 Règles pour faire apparaître du code comme du code défectueux en toute sécurité  \u003cbr\u003e13.5 Comment rendre un mauvais code illisible\u003cbr\u003e __13.5.1 Utilisation des énumérations\u003cbr\u003e __13.5.2 Utilisation des entiers et des chaînes de caractères comme codes de type\u003cbr\u003e __13.5.3 Insertion de nombres magiques dans le code\u003cbr\u003e __13.5.4 Commenter votre code\u003cbr\u003e __13.5.5 Ajout d'espaces au code\u003cbr\u003e __13.5.6 Regroupement des éléments par nom\u003cbr\u003e __13.5.7 Ajouter du contexte à un nom\u003cbr\u003e __13.5.8 Création d'une méthode longue\u003cbr\u003e __13.5.9 Passage de plusieurs paramètres à une méthode\u003cbr\u003e __13.5.10 Utilisation des accesseurs et des mutateurs\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapitre 14 : Conclusion\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e 14.1 Retour sur le parcours de ce livre\u003cbr\u003e 14.1.1 Introduction : Motivation\u003cbr\u003e __14.1.2 Partie 1 : Le rendre spécifique\u003cbr\u003e __14.1.3 Partie 2 : Élargir vos horizons\u003cbr\u003e 14.2 Exploration de la philosophie fondamentale\u003cbr\u003e 14.2.1 Toujours choisir le pas le plus court\u003cbr\u003e 14.2.2 Recherche de la structure de base\u003cbr\u003e 14.2.3 Utilisation des règles de collaboration\u003cbr\u003e 14.2.4 Prioriser l'équipe plutôt que l'individu\u003cbr\u003e 14.2.5 Privilégier la simplicité à l'exhaustivité\u003cbr\u003e 14.2.6 Utilisation d'objets ou de fonctions d'ordre supérieur\u003cbr\u003e Voyage après 14h30\u003cbr\u003e __14.3.1 Voyage vers la microarchitecture  \u003cbr\u003e__14.3.2 Voyage vers la macro-architecture\u003cbr\u003e 14.3.3 Le parcours vers la qualité logicielle\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003eAnnexe A : Installation des outils pour la pratique\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e Node.js\u003cbr\u003e Manuscrit\u003cbr\u003e Code Visual Studio\u003cbr\u003e Git\u003cbr\u003e Mise en place d'un projet TypeScript\u003cbr\u003e Créer un projet TypeScript\u003cbr\u003e Comment modifier les niveaux\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e \",\"\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eImage détaillée\u003c\/b\u003e \u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg src=\"https:\/\/image.yes24.com\/momo\/TopCate4077\/MidCate010\/407697253(1).jpg\" border=\"0\" alt=\"Image détaillée 1\"\u003e\u003c\/div\u003e\u003c\/div\u003e \",\"\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eAvis de l'éditeur\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eCe que ce livre couvre\u003cbr\u003e\u003c\/b\u003e\u003cbr\u003e ◎ Caractéristiques d'un code de mauvaise qualité\u003cbr\u003e ◎ Comment améliorer du code en toute sécurité sans le comprendre\u003cbr\u003e ◎ Équilibrer l'optimisation et la généralité du code\u003cbr\u003e ◎ Utilisation d'un compilateur approprié\u003cbr\u003e ◎ Introduction des modèles d'extraction de méthodes et de stratégies, ainsi que de divers autres modèles de refactorisation\u003cbr\u003e ◎ Écrire du code stable permettant des modifications par ajout de code\u003cbr\u003e ◎ Écrire du code qui ne nécessite pas de commentaires\u003cbr\u003e ◎ Exemples concrets de refactorisation réussie\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e \"]\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e SPÉCIFICATIONS DES PRODUITS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate d'émission :\u003c\/strong\u003e 19 janvier 2023\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e \u003cstrong\u003eNombre de pages, poids, dimensions :\u003c\/strong\u003e 392 pages | 188 × 240 × 16 mm\u003c\/div\u003e\n\n \u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003eISBN13 :\u003c\/strong\u003e 9791158393915\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10 :\u003c\/strong\u003e 1158393911 \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893345386538,"sku":"139192","price":38.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/7b917a66d2cce1a57e722e6a29d52156.jpg?v=1765397521","url":"https:\/\/librairie.coreenne.fr\/products\/139192","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}