{"product_id":"138810","title":"Conception logicielle efficace ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPeMLSzyvDkvJtL1YwvVvUltmMTX.png?v=1765068714\" 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 Conception logicielle efficace \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\/142955749\/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\u003eTrouver des solutions aux défis du développement logiciel dans une perspective de compromis !\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e L'ouvrage « Conception logicielle efficace » vous apprend à prendre de meilleures décisions concernant la conception, la planification et la mise en œuvre d'applications. \u003cbr\u003eAnalysez des scénarios réels où de mauvais compromis ont été faits et expliquez comment les décisions auraient pu être prises différemment.\u003cbr\u003e Ce livre présente les avantages et les inconvénients de différentes approches et explore des modèles toujours valables en conception logicielle.\u003cbr\u003e\u003cbr\u003e Vous comprendrez comment la duplication de code affecte le couplage et la vitesse d'évolution de votre système, et comment des exigences apparemment simples peuvent receler des nuances cachées liées aux informations de date et d'heure.\u003cbr\u003e Explorons comment restreindre efficacement le périmètre d'optimisation et garantir la cohérence dans un système distribué, en suivant le principe de Pareto 80\/20.\u003cbr\u003e En appliquant l'expérience durement acquise par l'auteur à vos propres projets, vous pourrez éviter les erreurs et adopter une approche plus prudente en matière de prise de décision.\u003cbr\u003e\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\u003e▣ Chapitre 1 : Introduction\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003e1.1 Les conséquences de toutes les décisions et de tous les modèles\u003cbr\u003e __1.1.1 Décisions relatives aux tests unitaires\u003cbr\u003e 1.1.2 Ratio des tests unitaires et des tests d'intégration\u003cbr\u003e 1.2 Modèles de conception de code et pourquoi ils ne fonctionnent pas toujours\u003cbr\u003e 1.2.1 Mesure du code\u003cbr\u003e 1.3 Pourquoi les modèles de conception architecturale ne fonctionnent pas toujours\u003cbr\u003e __1.3.1 Évolutivité et résilience\u003cbr\u003e 1.3.2 Vitesse de développement\u003cbr\u003e 1.3.3 Complexité des microservices\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 2 : Duplication de code vs. Flexibilité – La duplication de code n’est pas toujours mauvaise\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 2.1 Code commun et duplication entre les bases de code\u003cbr\u003e __2.1.1 Ajout d'une nouvelle exigence métier nécessitant une duplication de code\u003cbr\u003e 2.1.2 Mise en œuvre des nouvelles exigences commerciales\u003cbr\u003e 2.1.3 Évaluation des résultats\u003cbr\u003e 2.2 Partage de code entre bibliothèques et bases de code\u003cbr\u003e __2.2.1 Évaluation des avantages et des inconvénients des bibliothèques partagées\u003cbr\u003e __2.2.2 Création d'une bibliothèque partagée\u003cbr\u003e 2.3 Extraction du code en microservices indépendants  \u003cbr\u003e2.3.1 Examen des avantages et des inconvénients des services indépendants\u003cbr\u003e 2.3.2 Conclusions sur les services indépendants\u003cbr\u003e 2.4 Amélioration du couplage faible par duplication de code\u003cbr\u003e 2.5 Conception d'API utilisant l'héritage pour réduire la duplication\u003cbr\u003e __2.5.1 Extraction du gestionnaire de requêtes de base\u003cbr\u003e 2.5.2 Examen de l'héritage et du couplage fort\u003cbr\u003e 2.5.3 Analyse des compromis entre héritage et composition\u003cbr\u003e __2.5.4 Examen des duplications inhérentes et accidentelles\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 3 : Gestion des exceptions et des erreurs : modèles à prendre en compte dans votre code\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 3.1 Hiérarchie des exceptions\u003cbr\u003e 3.1.1 Gestion de toutes les exceptions vs. gestion des erreurs plus granulaire\u003cbr\u003e 3.2 Bonnes pratiques pour la gestion des exceptions dans votre propre code\u003cbr\u003e 3.2.1 Gestion des exceptions vérifiées dans les API publiques\u003cbr\u003e 3.2.2 Gestion des exceptions non vérifiées dans les API publiques\u003cbr\u003e 3.3 Modèles à éviter dans la gestion des exceptions\u003cbr\u003e 3.3.1 Fermeture des ressources en cas d'erreur  \u003cbr\u003e3.3.2 Anti-modèles d'utilisation des exceptions pour contrôler le flux d'exécution d'une application\u003cbr\u003e 3.4 Exceptions provenant de bibliothèques tierces\u003cbr\u003e 3.5 Exceptions à surveiller dans les environnements multithread\u003cbr\u003e 3.5.1 Gestion des exceptions dans les flux de travail asynchrones à l'aide de l'API Promise\u003cbr\u003e 3.6 Une approche fonctionnelle de la gestion des erreurs avec Try\u003cbr\u003e 3.6.1 Utilisation de Try dans le code de service de production réel\u003cbr\u003e 3.6.2 Utilisation conjointe de try et de code générant des exceptions\u003cbr\u003e 3.7 Comparaison des performances du code de gestion des exceptions\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 4 : Concilier flexibilité et complexité\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 4.1 API robuste mais non évolutive\u003cbr\u003e 4.1.1 Conception de nouveaux composants\u003cbr\u003e 4.1.2 Commencer par le code le plus intuitif\u003cbr\u003e 4.2 Permettre aux clients de fournir leurs propres cadres de mesure\u003cbr\u003e 4.3 Fournir une extensibilité de l'API via des hooks\u003cbr\u003e 4.3.1 Prévention de l'utilisation inattendue de l'API Hook\u003cbr\u003e 4.3.2 Impact de l'API Hook sur les performances\u003cbr\u003e 4.4 Fournir une extensibilité de l'API via des écouteurs\u003cbr\u003e 4.4.1 Utilisation des écouteurs vs. des hooks  \u003cbr\u003e__4.4.2 Invariance du plan d'expérience\u003cbr\u003e 4.5 Analyse flexible vs. coûts de maintenance des API\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 5 : Optimisation prématurée vs. Optimisation des chemins de code critiques – Décisions ayant un impact sur les performances du code\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 5.1 Quand l'optimisation prématurée est mauvaise\u003cbr\u003e 5.1.1 Création d'un pipeline de traitement des comptes\u003cbr\u003e 5.1.2 Optimisation du traitement basée sur des hypothèses incorrectes\u003cbr\u003e __5.1.3 Benchmarks d'optimisation des performances\u003cbr\u003e 5.2 Chemins de code critiques\u003cbr\u003e 5.2.1 Comprendre le principe de Pareto dans le contexte des systèmes logiciels\u003cbr\u003e 5.2.2 Configuration du nombre d'utilisateurs simultanés (threads) pour un SLA donné\u003cbr\u003e 5.3 Services Word présentant des chemins d'exécution potentiellement critiques\u003cbr\u003e 5.3.1 Découvrez le mot du jour\u003cbr\u003e 5.3.2 Vérifier si un mot existe\u003cbr\u003e 5.3.3 Exposition de WordsService au public via un service HTTP\u003cbr\u003e 5.4 Détection des chemins de code critiques\u003cbr\u003e 5.4.1 Création de tests de performance d'API à l'aide de Gatling\u003cbr\u003e __5.4.2 Mesure des chemins de code à l'aide de MetricRegistry\u003cbr\u003e 5.5 Améliorations des performances pour les chemins de code fréquemment utilisés  \u003cbr\u003e5.5.1 Génération de microbenchmarks JMH pour les solutions existantes\u003cbr\u003e __5.5.2 Optimisation de word-exists à l'aide d'un cache\u003cbr\u003e __5.5.3 Le test de performance a été modifié pour accepter davantage de mots en entrée.\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 6 : Coût et simplicité de la maintenance des API\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 6.1 Bibliothèques de base utilisées par d'autres outils\u003cbr\u003e 6.1.1 Création d'un client de service cloud\u003cbr\u003e 6.1.2 Exploration des stratégies d'authentification\u003cbr\u003e 6.1.3 Comprendre le mécanisme de configuration\u003cbr\u003e 6.2 Exposition directe des paramètres des bibliothèques dépendantes au monde extérieur\u003cbr\u003e 6.2.1 Configuration de l'outil de déploiement\u003cbr\u003e 6.3 Outils pour abstraire la configuration des bibliothèques de dépendances\u003cbr\u003e 6.3.1 Configuration des outils de streaming\u003cbr\u003e 6.4 Ajout de nouveaux paramètres pour la bibliothèque cliente cloud\u003cbr\u003e 6.4.1 Ajout d'un nouveau paramètre à l'outil de déploiement\u003cbr\u003e 6.4.2 Ajout de nouveaux paramètres à l'outil de streaming\u003cbr\u003e 6.4.3 Comparaison des deux solutions en termes d'ergonomie utilisateur et de facilité de maintenance  \u003cbr\u003e6.5 Décider de déprécier ou de supprimer un paramètre de la bibliothèque cliente Cloud\u003cbr\u003e 6.5.1 Suppression des paramètres de l'outil de déploiement\u003cbr\u003e 6.5.2 Suppression des paramètres des outils de streaming\u003cbr\u003e 6.5.3 Comparaison des deux solutions en termes d'ergonomie utilisateur et de facilité de maintenance\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 7 : Travailler efficacement avec les données de date et d’heure\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 7.1 Concepts d'information de date et d'heure\u003cbr\u003e __7.1.1 Temps informatique : instants, époques et intervalles de temps\u003cbr\u003e 7.1.2 Heure commerciale : Système calendaire, Date, Heure, Intervalle de dates\u003cbr\u003e 7.1.3 Fuseaux horaires, UTC et décalage UTC\u003cbr\u003e 7.1.4 Concepts de date et d'heure déroutants\u003cbr\u003e 7.2 Préparation au traitement des informations de date et d'heure\u003cbr\u003e 7.2.1 Limitation du champ d'application\u003cbr\u003e 7.2.2 Clarifier les exigences relatives à la date et à l'heure\u003cbr\u003e 7.2.3 Utilisation de la bibliothèque ou du package approprié\u003cbr\u003e 7.3 Mise en œuvre des codes de date et d'heure\u003cbr\u003e 7.3.1 Appliquer le concept de manière cohérente  \u003cbr\u003e7.3.2 Améliorer la testabilité en évitant les valeurs par défaut\u003cbr\u003e 7.3.3 Représentation des valeurs de date et d'heure sous forme de texte\u003cbr\u003e 7.3.4 Explication du code par des commentaires\u003cbr\u003e 7.4 Cas particuliers qui doivent être spécifiés et testés\u003cbr\u003e 7.4.1 Opérations arithmétiques calendaires\u003cbr\u003e 7.4.2 Conversion de fuseau horaire à minuit\u003cbr\u003e 7.4.3 Gestion des heures ambiguës ou manquantes\u003cbr\u003e 7.4.4 Utilisation des données de chronologie évolutives\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 8 : Exploiter la localité des données et la mémoire sur les ordinateurs\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 8.1 Qu'est-ce que la localité des données ?\u003cbr\u003e 8.1.1 Transfert des calculs vers les données\u003cbr\u003e 8.1.2 Mise à l'échelle du traitement en fonction de la localité des données\u003cbr\u003e 8.2 Partitionnement et division des données\u003cbr\u003e 8.2.1 Partitionnement hors ligne des données massives\u003cbr\u003e 8.2.2 Partitionnement vs. Sharding\u003cbr\u003e 8.2.3 Algorithme de partitionnement\u003cbr\u003e 8.3 Fusion de grands ensembles de données provenant de plusieurs partitions\u003cbr\u003e 8.3.1 Fusion de données au sein du même ordinateur physique\u003cbr\u003e 8.3.2 Opérations de jointure nécessitant un déplacement de données  \u003cbr\u003e8.3.3 Optimisation de la jonction par diffusion\u003cbr\u003e 8.4 Traitement des données : mémoire vs disque\u003cbr\u003e 8.4.1 Traitement sur disque\u003cbr\u003e 8.4.2 Pourquoi MapReduce est nécessaire\u003cbr\u003e 8.4.3 Calcul du temps d'accès\u003cbr\u003e 8.4.4 Traitement basé sur la RAM\u003cbr\u003e 8.5 Implémentation des jointures avec Apache Spark\u003cbr\u003e 8.5.1 Implémentation des jointures sans diffusion\u003cbr\u003e 8.5.2 Implémentation des jointures avec diffusion\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 9 : Bibliothèques externes – Les bibliothèques que vous utilisez deviendront bientôt votre code.\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 9.1 Importation des bibliothèques et prise en charge complète de la configuration : attention aux valeurs par défaut\u003cbr\u003e 9.2 Modèle de concurrence et évolutivité\u003cbr\u003e __9.2.1 Utilisation des API asynchrones et synchrones\u003cbr\u003e __9.2.2 Évolutivité distribuée\u003cbr\u003e 9.3 Testabilité\u003cbr\u003e __9.3.1 Bibliothèque de tests\u003cbr\u003e 9.3.2 Tests avec des objets factices (doubles de test) et des objets simulés\u003cbr\u003e __9.3.3 Intégration de la boîte à outils de test\u003cbr\u003e 9.4 Dépendances vis-à-vis des bibliothèques tierces\u003cbr\u003e Éviter les conflits de versions avec __9.4.1\u003cbr\u003e __9.4.2 Trop de dépendances  \u003cbr\u003e9.5 Sélection et maintien des dépendances externes\u003cbr\u003e __9.5.1 Première impression\u003cbr\u003e 9.5.2 Différentes approches de la réutilisation du code\u003cbr\u003e __9.5.3 Dépendance vis-à-vis du fournisseur\u003cbr\u003e Licence __9.5.4\u003cbr\u003e __9.5.5 Bibliothèques vs. Frameworks\u003cbr\u003e __9.5.6 Sécurité et mises à jour\u003cbr\u003e __9.5.7 Liste de contrôle pour la prise de décision\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 10 : Cohérence et atomicité dans les systèmes distribués\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 10.1 Envoyer la source de données au moins une fois\u003cbr\u003e __10.1.1 Trafic entre services à nœud unique\u003cbr\u003e __10.1.2 Nouvelle tentative d'appel d'application\u003cbr\u003e 10.1.3 Création de données et idempotence\u003cbr\u003e __10.1.4 Comprendre le CQRS (Ségrégation des responsabilités des commandes et des requêtes)\u003cbr\u003e 10.2 Implémentation simple de la bibliothèque de déduplication\u003cbr\u003e 10.3 Erreurs courantes lors de la mise en œuvre de la déduplication dans les systèmes distribués\u003cbr\u003e __10.3.1 Contexte avec un seul nœud\u003cbr\u003e __10.3.2 Contexte multi-nœuds\u003cbr\u003e 10.4 Rendre la logique atomique pour éviter les conditions de concurrence\u003cbr\u003e addition\u003cbr\u003e \u003cbr\u003e\u003cb\u003e▣ Chapitre 11 : Sémantique de la livraison dans les systèmes distribués\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 11.1 Architecture des applications événementielles\u003cbr\u003e 11.2 Applications de production et de consommation basées sur Apache Kafka\u003cbr\u003e 11.2.1 Un regard sur le côté consommateur de Kafka\u003cbr\u003e 11.2.2 Comprendre les paramètres du broker Kafka\u003cbr\u003e 11.3 Logique du producteur\u003cbr\u003e 11.3.1 Choisir entre la cohérence et la disponibilité pour les producteurs\u003cbr\u003e 11.4 Codes consommateurs et sémantiques de livraison diverses\u003cbr\u003e 11.4.1 Consommateurs effectuant un engagement manuel\u003cbr\u003e __11.4.2 Redémarrer à partir du décalage le plus ancien ou le plus récent\u003cbr\u003e __11.4.3 (virtuellement) exactement une fois sémantique\u003cbr\u003e 11.5 Exploiter la sémantique d'expédition pour assurer la tolérance aux pannes\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 12 : Gestion des versions et de la compatibilité\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 12.1 Contrôle de version dans le résumé\u003cbr\u003e __Propriétés de la version 12.1.1\u003cbr\u003e __12.1.2 Compatibilité ascendante et descendante\u003cbr\u003e __12.1.3 Versionnage sémantique\u003cbr\u003e __12.1.4 Version marketing\u003cbr\u003e 12.2 Gestion des versions pour les bibliothèques  \u003cbr\u003e12.2.1 Code source, binaires et compatibilité sémantique\u003cbr\u003e __12.2.2 Graphe de dépendance et dépendance en diamant\u003cbr\u003e __12.2.3 Techniques de gestion des modifications incompatibles\u003cbr\u003e __12.2.4 Gestion des bibliothèques internes\u003cbr\u003e 12.3 Gestion des versions des API réseau\u003cbr\u003e __12.3.1 Contexte d'un appel d'API réseau\u003cbr\u003e __12.3.2 Clarté conviviale pour le client\u003cbr\u003e __12.3.3 Stratégie générale de versionnage\u003cbr\u003e __12.3.4 Considérations supplémentaires relatives au versionnage\u003cbr\u003e 12.4 Gestion des versions pour les référentiels de données\u003cbr\u003e __12.4.1 Brève introduction aux tampons de protocole\u003cbr\u003e __12.4.2 Quels changements rompent la compatibilité ?\u003cbr\u003e 12.4.3 Migration de données au sein d'un dépôt\u003cbr\u003e __12.4.4 Anticiper l'inattendu\u003cbr\u003e __12.4.5 Séparation de la représentation de l'API et du référentiel\u003cbr\u003e __12.4.6 Évaluation du format du dépôt\u003cbr\u003e addition\u003cbr\u003e\u003cbr\u003e \u003cb\u003e▣ Chapitre 13 : Suivre les dernières tendances ou réduire les coûts de maintenance du code\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 13.1 Quand utiliser un framework d'injection de dépendances ?  \u003cbr\u003e13.1.1 Injection de dépendances DIY (à faire soi-même)\u003cbr\u003e 13.1.2 Utilisation d'un framework d'injection de dépendances\u003cbr\u003e 13.2 Lors de l'utilisation de la programmation réactive\u003cbr\u003e __13.2.1 Création d'un processus bloquant à thread unique\u003cbr\u003e __13.2.2 Utilisation de CompletableFuture\u003cbr\u003e __13.2.3 Mise en œuvre d'une solution réactive\u003cbr\u003e 13.3 Lors de l'utilisation de la programmation fonctionnelle\u003cbr\u003e __13.3.1 Génération de code fonctionnel à partir de langages non fonctionnels\u003cbr\u003e __13.3.2 Optimisation par récursion terminale\u003cbr\u003e __13.3.3 Exploiter l'immuabilité\u003cbr\u003e 13.4 Évaluation paresseuse vs. enthousiaste\u003cbr\u003e addition\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\/TopCate5163\/MidCate4\/516238335.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\u003e★ Ce que ce livre aborde ★\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e ◎ Comprendre le système pour prendre des décisions de conception plus intuitives et plus efficaces\u003cbr\u003e ◎ Comprendre comment équilibrer les compromis et les tendances de ces compromis\u003cbr\u003e ◎ Choisir la bibliothèque adaptée au problème\u003cbr\u003e ◎ Analyser en détail l'ensemble des dépendances du service \u003cbr\u003e◎ Comprendre la sémantique de transmission et son impact sur les architectures distribuées.\u003cbr\u003e ◎ Concevoir et réaliser des tests de performance pour détecter les chemins de code critiques et vérifier les SLA du système.\u003cbr\u003e ◎ Détecter et optimiser les chemins de code critiques afin de concentrer l'optimisation sur la cause première.\u003cbr\u003e ◎ Déterminer le modèle de données approprié pour le traitement des dates et heures afin d'éviter les erreurs courantes (mais subtiles).\u003cbr\u003e ◎ Déduire la compatibilité et le contrôle de version pour éviter les problèmes inattendus avec les clients API.\u003cbr\u003e ◎ Comprendre les concepts de couplage fort et de couplage faible et comment ces concepts affectent la coordination du travail entre les équipes.\u003cbr\u003e ◎ Établissez des exigences claires jusqu'à ce qu'elles soient précises, faciles à mettre en œuvre et faciles à tester.\u003cbr\u003e ◎ Optimisation des API pour une expérience utilisateur conviviale\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 12 mars 2025\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 472 pages | 188 × 240 × 19 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 9791158395643 \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":43893321760810,"sku":"138810","price":41.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/97964dec3181ae6da26754ee6e3ea272.jpg?v=1765395824","url":"https:\/\/librairie.coreenne.fr\/products\/138810","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}