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
- Les 6 étapes vers un diagnostic réussi
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Et si les clients n’avaient plus le choix ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- Veeam passe à la vitesse supérieure avec iResOps pour Microsoft 365
- Visibilité, réputation, clients : ce que les petites entreprises ne pourront plus déléguer en 2027
- IA souveraine : l’Europe avance, mais son interconnexion prend du retard
- Cloud public : la sécurité des données s’impose comme premier critère pour les agents publics
Articles les + lus
Continuer avec Exchange Server : quelles conséquences ?
Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
À la une de la chaîne Tech
- Continuer avec Exchange Server : quelles conséquences ?
- Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
- Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
