RSS Le Daily WTF
Suivre
CodeSOD : Copie d'une copie de...
Jessica travaille sur une application Windows Forms héritée qui utilise une API obsolète. Elle a été chargée d'enquêter sur un rapport dont les performances sont médiocres. Le codebase est décrit comme du code spaghetti avec de nombreuses incohérences. Jessica a découvert une méthode appelée GetReportDiscounts qui exécute une requête SQL, mais qui, de manière paradoxale, effectue une sommation en C# qui est déjà présente dans la requête SQL. Cette méthode ignore également ses propres paramètres de date et utilise un nombre magique pour le filtrage. Une autre méthode, GetReportTotals, est presque identique mais utilise un autre nombre magique. Ces deux méthodes sont dérivées d'une méthode antérieure, GetCancelledInvoices, qui utilise correctement les paramètres de date. Cependant, GetCancelledInvoices effectue également le filtrage en C# au lieu de le faire dans la requête de base de données. Jessica a découvert que le rapport réellement problématique était une variante de ces méthodes, qui reposait sur le traitement côté client pour la manipulation des données. En refactorant ce rapport en une procédure stockée SQL avec un indexage approprié, les performances se sont améliorées de manière significative. L'article met en évidence le problème courant de copier-coller du code et d'effectuer des opérations de base de données de manière inefficace dans la couche d'application.