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
Comment accélérer la transformation des environnements de travail ?
Dans un monde professionnel en pleine mutation, la mobilité, l’efficacité énergétique, la sécurité et l’intelligence embarquée sont devenues des critères décisifs pour les équipements informatiques. Découvrez comment les nouveaux PC Microsoft Surface dotés des processeurs Snapdragon X Series s’imposent comme une réponse stratégique aux nouveaux enjeux IT.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Alliée ou menace ? Comment l’IA redessine le paysage cyber
- Top 5 du Baromètre de la cybersécurité 2025 : entre confiance et vulnérabilités persistantes
- Analyse Patch Tuesday Février 2026
- Entamer la transition vers la cryptographie post quantique est prioritaire
Articles les + lus
Pourquoi Shopify Plus s’impose dans la transformation du e-commerce B2B
Quand l’innovation échappe à ses créateurs: Comment éviter l’effet Frankenstein à l’ère de l’IA
Alliée ou menace ? Comment l’IA redessine le paysage cyber
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
À la une de la chaîne Tech
- Pourquoi Shopify Plus s’impose dans la transformation du e-commerce B2B
- Quand l’innovation échappe à ses créateurs: Comment éviter l’effet Frankenstein à l’ère de l’IA
- Alliée ou menace ? Comment l’IA redessine le paysage cyber
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
