Articles avec le tag « Conception »
24 articles portant le tag « Conception », du plus récent au plus ancien.
-
Bonnes pratiques du multithreading : édition Java — les usages à l'ère des threads virtuels
En Java, la pratique établie consiste à ne pas créer de threads directement, mais à s'appuyer sur ExecutorService et les threads virtuels. Choix entre synchr...
-
Bonnes pratiques du multithreading : édition C — écrire en sécurité à la manière Win32
En C sur Win32, la pratique établie est _beginthreadex, les verrous SRW et les variables de condition, Interlocked, et un événement d'arrêt plus WaitForMulti...
-
Bonnes pratiques du multithreading : édition C++ — éliminer les accidents avec RAII et jthread
En C++, une course de données est un comportement indéfini. Piège du destructeur de std::thread, arrêt avec jthread et stop_token, scoped_lock, le rôle réel ...
-
Bonnes pratiques du multithreading : édition .NET — ce qu'il faut décider avant d'ajouter des threads
Empêcher les threads .NET/C# de planter ou de figer. S'appuyer sur Task, réduire l'état mutable partagé, verrouiller avec discipline, arrêter avec Cancellati...
-
Ne jamais utiliser telle quelle la valeur décodée d'un QR code — la réussite de la correction d'erreurs ne garantit pas la valeur
La correction d'erreurs d'un QR code n'est pas un mécanisme qui garantit l'exactitude de la valeur dès lors que la correction réussit. À partir d'images d'ex...
-
Arrêter d'utiliser Write-Host — Conception des flux de sortie et de la journalisation dans PowerShell
Ce guide présente les six flux de sortie de PowerShell et leurs usages respectifs, les problèmes posés par Write-Host et son bon usage, les causes de polluti...
-
La conception des codes dans les systèmes métier — Comment définir les codes produit et client, et la clé de contrôle
Un guide pratique pour définir le système de codes des systèmes métier — codes produit, codes client, etc. Il couvre le tableau de décision entre codes signi...
-
Introduction à l'ADR (Architecture Decision Record) — la méthode minimale pour conserver « pourquoi on a choisi cette conception » sur un petit projet
Le code ne dit jamais pourquoi il a été écrit ainsi. Nous expliquons comment utiliser l'ADR (Architecture Decision Record) — un fichier Markdown par décision...
-
Ne pas oublier de définir « en combien de secondes faut-il répondre » : organiser les exigences non fonctionnelles avec le Non-Functional Requirements Grade de l'IPA
Les litiges du type « c'est trop lent » ou « on ne s'attendait pas à cette panne » proviennent souvent d'exigences non fonctionnelles jamais définies. Cet ar...
-
Migrer une application Windows vers le Web : les cas à éviter — tableau de décision et la solution réaliste du « fractionnement »
Les demandes de migration d'applications Windows internes vers le Web se multiplient, mais pour les applications reposant sur l'intégration d'appareils, le t...
-
Comment choisir la communication inter-processus sous Windows ── Tableau de décision : tubes nommés / TCP / gRPC / mémoire partagée / COM
Comment choisir le moyen de faire communiquer des applications Windows entre elles ? Cet article organise les tubes nommés, le TCP local, gRPC, la mémoire pa...
-
Où catch et la journalisation doivent-ils se situer dans la gestion des exceptions ?
Pour éviter les catch trop larges dans les helpers profonds, les logs dupliqués à chaque couche et la transformation en résultat qui masque la cause racine, ...
-
Pourquoi préférer l'attente sur événement à Sleep(1) sous Windows
Sous Windows, la précision des attentes courtes avec délai (timed wait) est limitée par la granularité de l'horloge système et par l'ordonnancement. Si vous ...
-
Un tableau de décision pour choisir entre arrêt et poursuite après une exception inattendue
Lorsqu'une exception inattendue survient, faut-il arrêter l'application ou la laisser continuer ? Cet article organise la décision sous l'angle de la corrupt...
-
Liste de contrôle minimale de sécurité pour le développement d'applications Windows
Pour les applications métier WPF / WinForms / WinUI / C++ / C#, cet article organise sous forme de liste de contrôle les bases concernant les privilèges, la ...
-
Qu'est-ce que le .NET Generic Host ? - Le socle de la DI, de la configuration et des logs
Cet article clarifie le rôle du Generic Host à travers ses liens avec la DI, la configuration, les logs, IHostedService et BackgroundService, et résume, d'un...
-
Qu'est-ce que .NET Native AOT ? - Les différences avec JIT et le trimming
Ce qu'est Native AOT en .NET, expliqué à travers ses différences avec JIT, ReadyToRun, self-contained, single-file, trimming et les source generators, avec l...
-
Bien choisir entre les 3 minuteurs .NET - PeriodicTimer/Timer/DispatcherTimer
Cet article explique les différences entre PeriodicTimer, System.Threading.Timer et DispatcherTimer, et comment bien les choisir selon qu'il s'agit de traite...
-
Pourquoi utiliser le Generic Host .NET et BackgroundService dans une application de bureau
Comment utiliser le Generic Host et BackgroundService pour organiser le démarrage, le traitement périodique, l'arrêt, la journalisation, la configuration et ...
-
Guide pratique de FileSystemWatcher - Gérer les événements manqués et les doublons
Nous faisons le point sur l'utilisation de FileSystemWatcher et ses pièges : événements manqués, notifications en double, pièges de la détection d'achèvement...
-
Tableau de décision pratique pour C# async/await - Task.Run et ConfigureAwait
Nous organisons les bonnes pratiques de C# async/await - attentes d'E/S, calcul CPU, Task.Run, ConfigureAwait(false) et fire-and-forget - avec un tableau de ...
-
Guide pratique pour se rapprocher autant que possible du temps réel souple sur un Windows ordinaire
Nous organisons la façon de stabiliser le traitement périodique et à faible latence sur un Windows ordinaire, en abordant la résolution des minuteurs, les pr...
-
Les bases du contrôle d'exclusion pour l'intégration par fichiers - bonnes pratiques de verrouillage de fichiers et de claim atomique
Nous faisons le point sur le contrôle d'exclusion pour l'intégration par fichiers sous l'angle du verrouillage de fichiers, du claim atomique, du couple temp...
-
Introduction aux diagrammes HCP et à MakingHCPChartSkill
Nous expliquons ce qu'est un diagramme HCP et présentons comment MakingHCPChartSkill convertit le HCP-DSL en SVG déterministe, comment lire le résultat et co...