2008-07-17
S'il existe un domaine (art?) particulier où l'on peut réaliser des choses de manières différentes, c'est bien celui du développement. Sans cette liberté, notre site n'aurait d'ailleurs pas raison d'être. Tel un philosophe, le développeur se pose souvent des questions métaphysiques. Au fil du temps, de grands courants de pensées ont émergés. Rien que ces dernières semaines, j'ai assisté à "Exception Runtime / Exception à catcher", Modélisation UML qui formalise la base / Modélisation Merise qui induit le diagramme de classes" , "Session utilisateur dans la partie WEB / Session dans un EJB statefull", "Utilisation des Frames dans une application de gestion". Chaque industrie possède t-elle ses grandes questions sources de débats passionnés ou sommes nous une exception ?
2008-07-11
Les Framework d'entreprise, c'est un peu comme les boites de chocolats : on ne sait jamais sur quoi on va tomber. Contrairement à la boite de chocolats qui peut vous rendre malade pendant un ou deux jours, l'indigestion de Framework d'entreprise peut vous gâcher la vie pendant bien plus longtemps. Personnellement je considère que lorsque de tels Framework sont bien ficelés et gérés par un service technique efficace, capitaliser sur l'expérience et les bonnes idées des développeurs est une excellente chose.
2008-07-09
En tant que fan du film WarGames - où un jeune hacker réussissait à changer ses notes en piratant le réseau informatique de son école (déclenchant au passage la 3ème guerre mondiale) - j'ai eu de l'empathie pour les deux adolescents californiens qui risquent 38 ans de prison pour avoir un peu boosté leurs résultats scolaires en rentrant dans le réseau de l'école sans y être convié.
2008-07-04
Puisque c'est demain le coup d'envoi du Tour de France 2008 Tour de France 2008, je vous propose un code du jour qui me semble de circonstance. Stéphane M remarqua l'année passée que s'il tournait sa tête de 90° et qu'il plissait un peu les yeux, les contours formés par les pics et les vallées du code lui semblaient plutôt familiers...
2008-06-27
Jeremiah V. partage avec nous une règle universelle en informatique : quelque soit le langage utilisé, il existe toujours une autre façon plus longue de faire les choses. Pour les bases de données compatibles SQL-92, ce n’est pas évident d'avoir une clause ORDER BY générée dynamiquement, il existe cependant plusieurs façons de produire une implémentation raisonnable. Pour exemple, une recherche rapide sur Google propose l'utilisation combinée de CASE et CONVERT pour gérer le « ORDER BY » dynamique avec plusieurs types de colonnes.
2008-06-24
Le bout de code du jour à été découvert par Dave Conrad à l'intérieur d'une grande application web en production depuis plus de quatre ans. Comme vous pouvez l'imaginer, des projets de cette taille sont plutôt difficiles à résumer dans un article. Comme on dit, une belle fonction javascript vaut mieux qu'un long discours.
2008-06-23
Si on me demandait de choisir la partie du développement logiciel qui a le meilleur potentiel pour les monstruosités, je répondrais sans hésiter : les exceptions. Un Jeune prestataire qui souhaite rester anonyme nous envoie le code d'une exception trouvée dans un projet J2EE.
2008-06-13
Ralph B nous a soumis aujourd’hui cet effrayant bout de code trouvé dans un script utilisé pour « nettoyer » les données d’une source de données vers une autre.
2008-06-12
Christophe nous fait parvenir un bout de code (comme toujours, d'une grosse application pour une grosse société), qui mérite la mention WTF.
2008-06-10
J.S Bangs nous envoie un bout de code qu’il a déniché au plus profond d’une application Java qu’il maintient. La fonction getRandomBits() retourne un tableau de 32 bits aléatoires pour des raisons de sécurité. Puisque Java offre une méthode Random, ceci devrait être assez facile. A vrai dire, une bonne implémentation peut être écrite en cinq lignes :
2008-05-21
Les accesseurs de propriétés sont un ajout plutôt utile à la POO. Ils permettent aux designers de classe de restreindre et d’abstraire ce qui aurait été normalement de simples valeurs en utilisant la logique des "getter" et des "setter". Bien que les propriétés exposent dans 90% des cas simplement une variable privée, c'est parfois utile d'inclure un peu de logique additionnelle dans le code. Russ, remarqua que le développeur de la classe "Contact" n'avait pas compris le principe de "un peu de logique additionnelle" ...
2008-05-14
Sandy Barnabas reçu un message plutôt étrange lorsqu'elle valida son formulaire d’enregistrement :
2008-05-07
On est tous passé par là : tous nos tests unitaires fonctionnaient la veille mais quand il s'agit de lancer la démo vous réalisez que vous avez oublié quelque chose. Depuis, on a inventé la revue de code. Non pas qu'il y ait moins de bug, vous vous sentez juste mieux puisque quelqu'un d'autre a raté le problème.
2008-05-06
Don nous propose un bout de code sur l'envoi d'email, avec une façon plutôt spéciale de gérer les exceptions :
2008-04-29
Ward n’est pas un développeur chanceux. Lorsque les deux principaux (et uniques) développeurs de l’application flash furent licenciés, il fut appelé pour nettoyer leur bazar. Voici ce qu’il nous raconte :
2008-04-24
Le bout de code du jour nous viens de Rob O. Rob travaillait en tant que prestataire sur différents projets depuis environ une année quand on lui demanda de participer à une réunion avec deux avant vente et deux membres de la MOA client pour préparer un nouveau projet. Bob n'avait pas remarqué que pendant la discussion, l'un des avant vente de sa société prenait des notes d'une manière très énergique à chaque fois qu'on leur posait une question à propos de XML.
2008-04-22
Algirdas Kepezinskas était en train de débugger du code d'un client lorsqu’il trouva l'un des plus merveilleux algorithmes de manipulation de date. J'ai enlevé le nom de la fonction, et je vous laisserai comme exercice, d'essayer de trouver ce que ce gros tas d'arithmétique fait ...
2008-04-16
Objet. L' encapsulation de champs et d'opérations pour rendre le code plus simple et plus réutilisable. Facile !
Polymorphisme : L'habilité d'avoir des objets avec le même comportement, à travers l'héritage, les interfaces , etc.. Pigé.
2008-04-15
Alexandre partage avec nous un morceau de code du projet dont il a eu la "chance" d'hériter.
2008-04-11
David Boissonnault nous envoie une petite perle qu'il a trouvé par hasard sur le site de la poste Canadienne. Ce sont trois fonctions JavaScript qui sont présentes sur la page de recherche d'une tranche d'adresse.Vous remarquerez que chacune de ces trois fonctions est optimisable en une seule et simple ligne.
2008-04-10
Les plus chanceux d'entre nous qui ont eu à développer leur propre fonction de tri pendant leurs études ou dans leur vie professionnelle, ont probablement eu au moins une pensée pour l'efficacité de leur algorithme. En vérité il y a une vraie science pour cela. Mais combien d'entre nous ont modifié un tri à bulle (le moins efficace et efficient O(n²) tris), en lui baissant ses performances, et en le rendant récursif? Le collègue d'Andrew Reid par exemple.
2008-04-08
Quand David fut contacté par son collègue pour évaluer la qualité un projet php, il insista pour avoir accès au code. Il savait seulement que le projet était un site PHP MYSQL avec une base utilisateur assez conséquente.
2008-04-04
Ludwig Von Anon nous envoie un code issu d'un composant graphique d'un large système multiplateforme avec lequel il a eu le plaisir de travailler. A première vue, le code ne semble pas si mauvais que ça...
2008-04-02
Le bout de code du jour nous est envoyé par un contributeur qui souhaite rester anonyme. C'est délicieux de voir qu'à partir d'un bon sentiment, un développeur peut créer un horrible monstre qui aura des répercussions pendant plusieurs années. Le WTF serait-il lui aussi pavé de bonnes intentions?
2008-04-01
Je me suis souvent demandé quelle tranche de population de développeurs professionnels produit le plus de "WTF". D'un côté les seniors ont de l'expérience c'est sûr. Mais en même temps, ils doivent passer du cobol vers Java/.net avec trois jours de formation, pour livrer la semaine suivante le nouvel Intranet de leur société. Les jeunes ingénieurs fraîchement diplômés eux sont au top ! Aucune expérience professionnelle ni conscience des contraintes d'une entreprise? Qu'importe ! Ils connaissent java sur le bout des doigts. Dès lors, la tranche de population la plus génératrice de "WTF" serait les jeunes diplômés.... formés par un senior qui vient d'apprendre le C. C'est en tout cas ce qu' Antoine me laisse penser. Il nous dit :
2008-03-31
Le collègue de David Crowell nous a trouvé un moyen absolument merveilleux de s'affranchir de propriétés. Qui en a vraiment besoin d'ailleurs?
2008-03-27
Alexandre nous fait le plaisir de partager avec nous le premier WTF Français. Alexandre travaille dans une grande société d'assurance française. En poste depuis 6 mois, il a hérité du système de gestion des devis. C'est un client riche Java basé sur le framework de présentation Struts.
2008-03-23
Le bout de code du jour nous vient de Christopher Stolworthe. Christopher à un ami qui prépare une soutenance pour obtenir son diplôme universitaire en sciences informatiques. Un jour son ami l'appelle ...
2008-03-22
C'est assez courant de voir un programmeur ignorer complètement les expressions régulières, préférant à la place implémenter son propre code de validation. Une majorité d'entre eux implémentent même leur propre code de recherche de sous chaines, avec toute sorte de boucle et de comparaisons.
2008-03-20
Si vous n'avez pas eu l'opportunité de travailler sur une application qui nécessite plus de développeur en maintenance que la plupart des sociétés en ont, alors, vous avez raté des instants de pur bonheur. Dans ce genre de système, essayer de trouver du code de qualité c'est comme essayer de trouver une aiguille dans une botte de foin dans un tas d'aiguille ... les yeux bandés ... avec vos pieds.
2008-03-19
C'est l'heure une fois encore de casser la règle des "exemple professionnels seulement" et de montrer encore une autre WTF HTML. A.S le découvrit quand il copie colla les horaires d'ouvertures d'une bibliothèque dans un mail pour ses étudiants. Le pauvre homme qui mis à jour le système avait trouvé une façon plutôt unique de s'affranchir de l'utilisation des balises de saut de ligne :
2008-03-15
Je ne pensais pas cela possible. Je pensais honnêtement qu'on ne pouvait pas faire pire que cette fonction d'arrondi.
2008-03-06
Dave nous envoie une fonction JavaScript qu'il a eu la plaisir de découvrir dans l'application qu'il doit maintenir.
2008-03-06
Même si vous êtes presque sûr que ce n'est pas le meilleur moyen, parfois ça semble plus facile de faire de la façon que l'on connait plutôt que de lutter avec une nouvelle méthode. Je suis presque sûr que c'est ce à quoi pensait l'auteur du code d'aujourd'hui. Il savait comment enregistrer une librairie OCX, cliquer sur le bouton démarrer, appuyer sur R(Run) puis taper la commande regsvr32 ...
2008-03-06
J'essaie vraiment de ne pas avoir un nombre disproportionné de posts en VB/VBScript/ASP par rapport au c#, Java , Perl et tous les autres. Mais quand Ray S nous envoie sa fonction de validation de données d'un vrai système en production, comment puis-je résister?
2008-03-06
Miles nous envoi une méthode joliment exotique pour convertir un nombre de byte en kb.
2008-03-05
Je vais tenter d'imaginer ce que l'auteur de ce code (sur lequel Marvin Smit est tombé lors d'une revue) pensait :
2008-03-05
Quant il s'agit de parler d'Access, il semble que deux versions de moi même apparaissent sur chacune de mes épaules.
2008-03-05
David Shay nous envoie une façon plutôt inefficace d'addition en c++ : Pour connaitre la grandeur de 10, commencez à 1 et comptez jusqu'à 10, à chaque fois que vous dites un nombre, levez un doigt. Comptez vos doigts, vous devriez avoir dix !
2008-03-05
Voici un snippet d'un projet web que Jake a eu la chance d'hériter ...