Ce code est difficilement réutilisable et vous connaissez des centaines de développeurs qui ont déjà copié cette méthode maintes fois. Tout comme le stockage de type table, vous pouvez créer une méthode d’extension qui permet d’abstraire les parties communes du code et utilise des expressions lambda pour
Méthode d’extension
le travail spécifique. Voici la méthode d’extension qui contient le traitement commun à chaque file :
public static void ProcessQueue(this MessageQueue
queue, TimeSpan timeout, Func
{
bool more = true;
while (more)
{
Thread.Sleep(timeout);
if (queue.DoesQueueExist())
{
Message msg = queue.GetMessage();
if (msg != null)
{
more = action(msg);
queue.DeleteMessage(msg);
}
}
}
}
Et voici comment vous allez l’utiliser dans l’exemple présenté précédemment:
queue.ProcessQueue(TimeSpan.FromSeconds(10),
(msg) =>
{
RoleManager.WriteToLog("Information",
string.Format(
"Message '{0}' processed.",
msg.ContentAsString()));
return true;
});
Vous allez peut-être penser que ces modifications n’apportent pas une réelle valeur ajoutée. Dans un sens, c’est vrai. L’exemple conserve exactement la même fonctionnalité qu’avant mon intervention. Mais cela ne veut pas dire pour autant que ces modifications n’ont pas produit une certaine valeur. Ces méthodes ont permis de factoriser les algorithmes communs que vous allez employer dans tous les rôles Worker que vous créez. Ce résultat en lui-même est porteur de valeur : ces méthodes d’extension ont été entièrement testées lors de la première utilisation. Le copier/coller/modifier en vue de la réutilisation introduit souvent des bugs, notamment lors de la phase de modification. Une source commune de ces bugs est le traitement de file d’attente Azure (Azure Queue). Notez comment les méthodes d’extension obtiennent le message, le traitent, puis le suppriment. Bien souvent, les développeurs commettent l’erreur de supprimer le message lorsqu’ils le récupèrent, au lieu de le faire après le traitement. Cela peut créer le type de bugs qui survient très rarement, lorsque le processus Worker échoue à traiter le message. C’est le type de modification qui provoque des bugs plusieurs mois après.
Azure n’en est qu’à ses débuts et il est donc difficile de croire que nous connaissons les meilleures pratiques pour le développement dans cet environnement. Nous savons que nombre de nos idées sur les meilleures pratiques vont évoluer. C’est la raison pour laquelle je suis catégorique sur le fait de factoriser les algorithmes communs. Lorsque vous trouverez une meilleure approche pour résoudre un problème particulier, la correction interviendra à un seul emplacement. Si vous avez dupliqué ou, pire, dupliqué et modifié le code, il faudra apporter les mêmes corrections à de nombreux emplacements. Cela accroît d’autant les risques d’erreurs et d’omissions. C# vous propose une pléthore d’outils pour factoriser ces algorithmes communs et, au final, vous serez en mesure d’avoir une vision plus claire de vos algorithmes spécifiques.
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Et si les clients n’avaient plus le choix ?
- Activer la mise en veille prolongée dans Windows 10
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
- L’illusion de la destruction massive d’emplois par l’IA
- Comprendre le SOC : votre bouclier essentiel en cybersécurité
- IA : le changement de paradigme des entreprises françaises se joue désormais à l’échelle humaine
Articles les + lus
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
Adapter la sécurité OT aux réalités de l’industrie
Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
Analyse Patch Tuesday Mars 2026
À la une de la chaîne Tech
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
- Adapter la sécurité OT aux réalités de l’industrie
- Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
- Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
- Analyse Patch Tuesday Mars 2026
