Depuis quelques temps, je bosse chez un client sur une appli dont le code a du oublié d'avoir été pensé, sans parler des parties fonctionnelles qui reflètent d'un amoncellement de rustines posées sur une girouette.
En résumé, d'après ce précédent topic que j'ai posté :
http://forum.hardware.fr/hardwaref [...] 4110-1.htm
Vous pouvez en déduire qu'ils ont appliqué à la lettre cet article :
http://mindprod.com/unmain.html
Je les soupçonne même d'avoir eu quelques idées originales qui n'ont pas été mentionnées dans cet article.
Un peu comme le proverbe Shadock "Il vaut mieu mobiliser son intelligence sur des conneries que sa connerie sur des choses intelligente". Là ils y sont allé gaiement et se sont mobilisés en nombre !
Bon, depuis quelques jours, je m'étonne de vois des objets VB contenant des Collection en "Private", avec des méthodes "GetObjAt(ByVal obj, ByVal idx)", qui va attribuer "ByVal" un objet de la collection à l'index idx. Pratique. En plus il n'y a pas de "Add" ni de "Delete", donc si on veut faire une modif, faut passer par un autre objet, détruire celui-ci et le recharger. La totale. N'oublions pas les propriété "Get" aux noms divers "GetCountUsers", "GetCountUsersValide", etc. par exemple, qui font toutes un .Count de la MÊME collection privée, qui a été chargée différenement selon la méthode uitilisée pour la remplir. J'ai expliqué à ça mon chien un soir, il a vomi. Moi j'en rêve encore.
Bon, je dois me faire de nouveaux objets. Je décide de partir sur des bases un peu plus propres. Les collections contenant des autres objets liés, je décide de passer mes collections en Public, et simplement les utiliser ensuite par l'instruction "for each ObjItem in Obj.maCollection". Carrément plus simple à coder, plus lisible, et étant donné qu'on travaille directement sur un pointeur de l'objet qui reste à sa place, je soupçonne que ce soit infiniement plus rapide.
Je leur explique ce que j'ai fait. Ils semblent surpris.
Après concertation de leur part, j'obtiens la réponse qui tue :
"Nan, faut pas faire comme ça, faut garder un truc homogène".
Ils me parlent d'homogénéité ??? Mais ils ont fumé ça où ? Dans un objet sur deux, la collection contient un obj, et dans les autres, un tableau à une seule colonne, chaque ligne correspondant à une propriété de l'objet qui aurait dû s'y trouver ! Pour lire UNE information, on est obligé parfoit d'appeler une méthode qui prend 25 paramètres (c'est bien 25, pas une éxagération de ma part) tous en ByRef et de type Variant. Super, je vient de créer 25 objets en mémoire pour quoi ? Aller lire un pauvre booléen ?
T'ain, je déprime.
Le pire, c'est que je vais au moins passer une journée entière à bordeliser mon code.
Quand je pense que certains ici me trouvent crade dans ma façon de coder... J'amerais voir leurs tête ici !