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
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Innovation et performance : le rôle clé du consulting dans la transformation numérique
- Sekoia.io : l’alternative européenne qui s’impose dans la cybersécurité
- Redéfinir la confiance à l’ère de l’IA agentique : les entreprises sont-elles prêtes pour le SOC autonome ?
- IA Agentique : la vraie rupture c’est la gouvernance humaine
Articles les + lus
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
À la une de la chaîne Tech
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
