Précédent   Forum des professionnels en informatique > Le club des professionnels en informatique > La taverne du Club : Humour et divers > Humour Informatique
Humour Informatique Le Forum des meilleures anecdotes en humour informatique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/06/2011, 00h07   #1
Membre du Club
 
Avatar de LeGnome12
 
Développeur Web
Inscription : mai 2008
Messages : 78
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 78
Points : 61
Points : 61
Par défaut Les codes les plus hallucinants rencontrés :

Voilà mon souci :
Après avoir fait des études informatiques et un stage dans une boite internationale, je viens d'arriver dans le SI d'une PME.
Et là, ho stupeur ! Je vois des choses hallucinantes !!! Des codes incompréhensibles et pas du tout optimisé !

Alors, je demande au collègue (sans chercher à provoquer de conflits dès mon arrivé) pourquoi il fait comme ça.
La seule réponse a été "Tu sorts tout juste des études le jeunes. Dans le monde réel, on ne fait pas les choses de la même manière !"

Alors je me suis demandé si c'est partout la même chose. A priori non.

Mais, je pense que si vous postez quelque truc hallucinant que vous avez pu voir (fonctions à 100 paramètres, algorithme de calcul de la longueur d'une chaine de caractère...) on peut rigoler un bon peu.
LeGnome12 est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 30/06/2011, 00h23   #2
Membre Expert
 
Avatar de granquet
 
Étudiant
Inscription : octobre 2005
Messages : 1 202
Détails du profil
Informations personnelles :
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 1 202
Points : 1 181
Points : 1 181
si tu ne connais pas deja; tu peux lire l'excellent The Daily WTF : http://thedailywtf.com/
__________________
click my www
............|___
...................\
.................._|_
..................\ /
..................."
granquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 09h44   #3
Expert Confirmé
 
Inscription : décembre 2007
Messages : 1 903
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 903
Points : 3 688
Points : 3 688
Une bonne partie des codes "hallucinants" ont été faits sous extrême pression. Parfois, certains ont même l'apparence de code propre, mais, quand on y regarde de plus près, tout devient incompréhensible. Et on retrouve une doc d'une personne ayant passé une semaine à essayer de comprendre, et dont la conclusion est "l'algorithme semble aléatoire".....

Je suis sur que je suis coupable de quelques horreurs. Je me rapelle d'au moins une, j'avais un truc un peu complexe à coder très vite, et, en manque d'inspiration, j'ai sorti une usine à gaz(me souviens plus du détail, juste des horribles imbrications illisibles dans tous les sens).

Après, il y a les gnous, gens doués, mais pas pour l'informatique. Et là, on tombe assez vite dans l'horreur. Du genre :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
dim i as variant
for i = 1 to 2
    'traitement numérique des lignes 1 et 2
next i
i = 3
'traitement alphanumérique de la ligne 3
i = 4
'traitement numérique de la ligne, idem traitement 1 et 2
for i = 5 to 7
    'traitement alphanumérique des lignes 5 à 7, idem traitement ligne 4
next i
'le tout continue comme ça jusqu'à plus de 120.....
Et on m'a demandé de rajouter 4 lignes de plus. En trois jours. 2 heures plus tard, j'étais passé de 1000 lignes à 40, avec un petit référentiel des lignes en plus.(et si j'avais passé plus, j'aurais vraiment été un incompétent, je crois).




Celà étant, ce qu'a dit ton collègue, même si dans son cas c'est peut-être faux, sera parfois vrai. On peut être amené à coder volontairement des solutions suboptimales d'un point du code afin de coller au plus près au besoin du client. J'ai eu un jour à générer du XML en cobol. A partir de cobol 3, il existe un ordre XML GENERATE. Il aurait donc semblé logique de l'utiliser. Eh bien non. Parceque la revue de code était assistée par des outils, calibrés pour le cobol 2, qu'il aurait couté fort cher de faire évoluer. Au final, j'ai fait un module "à la main", plus lent, plus moche, mais qui correspondait au besoin. Et qu'ils pouvaient valider avec leur outillage.

Pas mal de choses doivent être désapprises. La solution optimale techniquement doit parfois être mise de coté(pas toujours, heureusement). Parfois même pour des raisons de maintenance : il sera difficille de trouver quelqu'un pour maintenir un code trop élégant, alors qu'on trouvera facilement quelqu'un pour déboguer du code bourrin.
__________________
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
3)le temps de comprendre toutes les exigences, le projet est terminé
4)le temps de terminer le projet, les exigences ont changé
Et le serment de non-allégiance :
Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.
el_slapper est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 30/06/2011, 13h55   #4
Membre Expert
 
Avatar de LooserBoy
 
Homme Alexis Lechevalier
Ingénieur développement logiciels
Inscription : février 2005
Messages : 1 005
Détails du profil
Informations personnelles :
Nom : Homme Alexis Lechevalier
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2005
Messages : 1 005
Points : 1 471
Points : 1 471
Après un certain nombre d'expériences professionnelles, j'ai découvert que si on dispose de temps, on sera beaucoup plus enclin à faire du code élégant.
Par contre, en cas de manque de temps, il est toujours plus viable de faire du code simple, direct et robuste, quitte à perdre en flexibilité et en maintenabilité.

Il faut parfois choisir la manière de coder la plus rentable en fonction des contraintes posées par le client/l'utilisateur/le chef/le planning.
__________________
Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...
LooserBoy est déconnecté   Envoyer un message privé Réponse avec citation 31
Vieux 30/06/2011, 14h07   #5
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 734
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 734
Points : 9 957
Points : 9 957
Citation:
Envoyé par LeGnome12 Voir le message
Voilà mon souci :
Après avoir fait des études informatiques et un stage dans une boite internationale, je viens d'arriver dans le SI d'une PME.
Et là, ho stupeur ! Je vois des choses hallucinantes !!! Des codes incompréhensibles et pas du tout optimisé !

Alors, je demande au collègue (sans chercher à provoquer de conflits dès mon arrivé) pourquoi il fait comme ça.
La seule réponse a été "Tu sorts tout juste des études le jeunes. Dans le monde réel, on ne fait pas les choses de la même manière !"

Alors je me suis demandé si c'est partout la même chose. A priori non.

Mais, je pense que si vous postez quelque truc hallucinant que vous avez pu voir (fonctions à 100 paramètres, algorithme de calcul de la longueur d'une chaine de caractère...) on peut rigoler un bon peu.
y'a pas de quoi rigoler..

Même si cela peut s'avérer faux, la réponse du collègue est (le plus souvent) correcte...

a) le monde réel N'EST PAS une théorie

b) le monde réel a des contraintes

c) quelques fois les problèmes sont TRES complexes, et les résoudre en suivant soi-disant les manières optimales les compliquent (le code, la maintenance, la perspective) plus que ne les simplifient...


J'ai déjà fait des fonctions à 3000 lignes.... Je n'en suis pas particulièrement fier, mais je ne voyais pas (et j'ai eu du temps pour réfléchir) de moyen simple de faire autrement sans passer mon temps à jongler avec des sous-fonctions à 40 paramètres....


En bref, la théorie et la pratique sont 2 choses bien différentes...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 72
Vieux 30/06/2011, 15h44   #6
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
souviron34, j'ai un peu de mal avec ce que tu dis.

Ok, un petit jeune qui arrive, il a certes ses visions utopiques du métier.

Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible. À la question "pourquoi tu fais comme ça?", il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.

Bref, il faut savoir rester critique sur son code et le code de ses collègues...
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 41
Vieux 30/06/2011, 15h49   #7
Membre Expert
 
Avatar de zaventem
 
Cédric
Inscription : février 2003
Messages : 283
Détails du profil
Informations personnelles :
Nom : Cédric
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : février 2003
Messages : 283
Points : 1 111
Points : 1 111
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible.
Qu'est-ce qui est important? Avoir un code respectant la norme du jour (parce qu'une norme qui change tous les deux où trois ans, c'est juste une mode) ou un code qui fait ce que l'on attend de lui et sans bug (connus)?
zaventem est déconnecté   Envoyer un message privé Réponse avec citation 101
Vieux 30/06/2011, 16h01   #8
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 734
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 734
Points : 9 957
Points : 9 957
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.

Bref, il faut savoir rester critique sur son code et le code de ses collègues...
Entièremnt d'accord sur le fait de savoir rester critique...

Cependant, sur la partie "optimisation" par exemple, qu'est-ce qui n'est plus vrai à la version N+3 ??

C'est parce que les DD ou la RAM ne coûtent pas cher, ou que les processeurs tournent 1000 fois plus vite ???

Et alors ??

Est-ce une raison pour ne pas optimiser ???
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 16h04   #9
Membre Expert
 
Avatar de LooserBoy
 
Homme Alexis Lechevalier
Ingénieur développement logiciels
Inscription : février 2005
Messages : 1 005
Détails du profil
Informations personnelles :
Nom : Homme Alexis Lechevalier
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2005
Messages : 1 005
Points : 1 471
Points : 1 471
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible. À la question "pourquoi tu fais comme ça?", il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.

Bref, il faut savoir rester critique sur son code et le code de ses collègues...
Il ne faut pas oublier que maintenir ses codes, afin d'être à jour au niveau optimisation, est particulièrement chronophage.

Je me suis dit, je ne sais combien de fois, que je passerais un peu de temps entre deux projets pour "refactorer" les codes existants et, au final, je n'ai absolument pas touché faute de temps.
__________________
Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...
LooserBoy est déconnecté   Envoyer un message privé Réponse avec citation 50
Vieux 30/06/2011, 16h54   #10
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
J'ai relativement peu d'années d'expériences mais j'ai vu pas mal de codes vraiment moches. Et pourtant j'ai bossé (en SSII) uniquement pour des "grands" groupes : Ministères, France Telecom, Airbus, ...

Un bout de code sur lequel un collègue est tombé sur un utilitaire de log qui faisait une surcouche à log4j (projet interne d'un des grands groupes ci-dessus) :
Code Java :
1
2
3
4
5
try {
  // main du programme
} catch (Throwable t) {
  System.exit(1);
}

En gros : une NullPointerException lancée dans le logger fait planter tout le programme (donc pas seulement l'utilitaire de log). Assez gênant...
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 21h45   #11
Membre du Club
 
Avatar de LeGnome12
 
Développeur Web
Inscription : mai 2008
Messages : 78
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 78
Points : 61
Points : 61
Bon alors pour ceux qui se demandent encore pourquoi j'ai poster ce sujet.
Pour ceux qui disent que dans le monde de l'entreprise, les contraintes obligent certaines choses.
Je suis d'accord que le monde de l'entreprise n'est pas celui des études cependant il y a des codes qui ne sont pas concevable.
Par exemple, j'ai vue des requêtes où il était utilisé des group by à la place d'order by !

Un autre exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$Rqt = "SELECT pkTable2, pkTable3, pkTable4 FROM table1 WHERE condition";
$db = new SQLConnnect();
$db->ExecuteRqt($Rqt);
$cpt = 0;
WHILE ($rs = $db->MapRecord())
    {
    echo "Ligne num";
    echo $cpt++;
    echo "<BR>";
    $db2 = new SQLConnect();
    $Rqt2 = "SELECT libelle1 FROM table2 WHERE pk=".$rs->pkTable2;
    $db2->ExecuteRqt($Rqt2);
    $rs2 = $db2->MapReccord();
    echo "Libelle 1 = ".$rs2->libelle1."<BR>";
    $db2->CloseConnection();
    $db3 = new SQLConnect();
    $Rqt3 = "SELECT libelle2 FROM table3 WHERE pk=".$rs->pkTable3;
    $db3->ExecuteRqt($Rqt3);
    $rs3 = $db3->MapReccord();
    echo "Libelle 2 = ".$rs3->libelle2."<BR>";
    $db3->CloseConnection();
    $db4 = new SQLConnect();
    $Rqt4 = "SELECT libelle3 FROM table4 WHERE pk=".$rs->pkTable4;
    $db4->ExecuteRqt($Rqt4);
    $rs4 = $db4->MapReccord();
    echo "Libelle 3 = ".$rs4->libelle3."<BR>";
    $db4->CloseConnection();
    }
    // fin
    $db->CloseConnection();
Voilà à peu près comment était construit l'algorithme que j'ai trouvé un jour.
Et encore j'ai rajouté des commentaire.
Donc, que l'on m'explique pourquoi ouvrir et fermer des connexions à la bdd dans une boucle (de plusieurs milliers de lignes). Alors qu'une seule requête et quelques jointures (vraiment simple) fonctionne très bien !!
LeGnome12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 00h18   #12
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Citation:
Envoyé par LooserBoy Voir le message
Il ne faut pas oublier que maintenir ses codes, afin d'être à jour au niveau optimisation, est particulièrement chronophage.
Attention, je ne parle pas de mise à jour du code existant mais d'utiliser des "optimisations" d'un autre âge sur du nouveau code.
En bd, j'ai vu des hint pour "optimiser" des requêtes qui n'avaient aucune raison d'être de nos jours, surtout quand on ne sait même pas à quoi ça sert. "On m'a montré à faire comme ça quand j'ai commencé à travailler, y a 10 ans" n'excuse pas de se renseigner un minimum...
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 01/07/2011, 22h34   #13
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
En lisant le titre du post j'ai immédiatement pensé à ça ^^ (pardon à tous ceux qui connaissent déjà, ça date un peu faut bien avouer. Pour les autres, attention hallucination droit devant )

Mais... vu la tournure qu'a pris la conversation je suis peut-être hors-sujet ?
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 02/07/2011, 00h41   #14
Membre du Club
 
Avatar de LeGnome12
 
Développeur Web
Inscription : mai 2008
Messages : 78
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 78
Points : 61
Points : 61
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible. À la question "pourquoi tu fais comme ça?", il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.
Cela reprend très bien l'idée de mon post.

Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Bref, il faut savoir rester critique sur son code et le code de ses collègues...
Je suis totalement d'accord, le code parfait n'existe pas. Lorsque mon collègue pose un regard critique sur mon code, je l'écoute et je sais prendre note.
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Ok, un petit jeune qui arrive, il a ses visions utopiques du métier.
Ca résume le problème que je rencontre depuis mon arrivé dans l'entreprise. Tout ce que je peux dire est faut. Mes formations ne sont pas du tout reconnu ("ho, aujourd'hui tout le monde a le bac S").

Il m'est arrivé de prosposé des idées qui ont été immédiatement regetées ("C'est complètement stupide !") sans même m'avoir laissé finir ma phrase. Deux mois après, mon collègue trouve l'idée sur un site et remarque que c'est exélent ! Lorsqu'il la partage et que je fais remarqué que c'est ce dont j'avais parlé, il répond avec mauvaise fois : "Mais non, c'est pas du tout ça."
(et dire que lors de mon entretient on me demandait d'être force de proposition)

Après ça, lorsque je trouve des tentatives de réinvanter la roue, je ne peux qu'en rire et je suis désolé si ça choque !
LeGnome12 est déconnecté   Envoyer un message privé Réponse avec citation 21
Vieux 02/07/2011, 12h52   #15
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 734
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 734
Points : 9 957
Points : 9 957
Citation:
Envoyé par RomainVALERI Voir le message
En lisant le titre du post j'ai immédiatement pensé à ça ^^ (pardon à tous ceux qui connaissent déjà, ça date un peu faut bien avouer. Pour les autres, attention hallucination droit devant )


Je ne connaissais pas et c'est excellent ..

Merci




Citation:
Envoyé par LeGnome12 Voir le message
Ca résume le problème que je rencontre depuis mon arrivé dans l'entreprise. Tout ce que je peux dire est faut. Mes formations ne sont pas du tout reconnu ("ho, aujourd'hui tout le monde a le bac S").
Pôv pitchoun !!!
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 15
Vieux 04/07/2011, 09h41   #16
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 478
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 21 478
Points : 28 756
Points : 28 756
Envoyer un message via MSN à Médinoc
Je ne comprends pas le dillemme "élégant" contre "simple, direct et robuste". Car pour moi, "élégant" signifie "simple, direct et robuste" (et par extension, maintenable).

C'est le code "intelligent" ("clever" en anglais) qu'il faut craindre.

Ce n'est pas le code non-optimisé qui est mauvais: c'est le code inutilement compliqué, moins efficace qu'un truc plus simple. La réimplémentation maison d'une fonction de la bibliothèque standard comme Convert.ToDouble(). Le test de vérité.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/07/2011, 10h11   #17
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Citation:
Envoyé par granquet Voir le message
si tu ne connais pas deja; tu peux lire l'excellent The Daily WTF : http://thedailywtf.com/
Citation:
Envoyé par Médinoc Voir le message
C'est le code "intelligent" ("clever" en anglais) qu'il faut craindre.

Ce n'est pas le code non-optimisé qui est mauvais: c'est le code inutilement compliqué, moins efficace qu'un truc plus simple. La réimplémentation maison d'une fonction de la bibliothèque standard comme Convert.ToDouble(). Le test de vérité.
Bon ben on est tous abonnés au DWTF ou quoi ?

C'est quoi vos ptits noms là-bas, tiens ? (moi c'est toshir0 ^^)
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h23   #18
Membre éclairé
 
Homme
Responsable de service informatique
Inscription : septembre 2008
Messages : 306
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2008
Messages : 306
Points : 399
Points : 399
Citation:
Envoyé par LooserBoy Voir le message
Il faut parfois choisir la manière de coder la plus rentable en fonction des contraintes posées par le client/l'utilisateur/le chef/le planning.
Pourquoi parfois? qu'est ce qui justifierait de ne pas choisir la manière la plus rentable en fonction des contraintes?
Qui est prêt à payer pour de la sur-qualité?
j.peg est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/07/2011, 17h16   #19
Membre Expert
 
Avatar de LooserBoy
 
Homme Alexis Lechevalier
Ingénieur développement logiciels
Inscription : février 2005
Messages : 1 005
Détails du profil
Informations personnelles :
Nom : Homme Alexis Lechevalier
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2005
Messages : 1 005
Points : 1 471
Points : 1 471
Citation:
Envoyé par j.peg Voir le message
Pourquoi parfois? qu'est ce qui justifierait de ne pas choisir la manière la plus rentable en fonction des contraintes?
Je pensais, par exemple, aux développements que j'ai pu avoir en tâche de fond, parfois en complet sous-marin, pour améliorer le fonctionnement de l'équipe en développant des outils internes, pour remplacer un existant handicapant et fortement ancré dans l'historique de l'entreprise donc ne pouvant pas être remplacé sans avoir une solution "clé en main" et "en béton", ou acquérir la maitrise d'une technologie/technique sans avoir d'application immédiate,...

Il n'y avait pas de contraintes de temps, ni de cahier des charges, un besoin encore mal délimité,... Se baser seulement sur un concept laisse énormément de liberté sur les choix d'architecture, de technologie,... Il n'y a pas de notion de rentabilité à mes yeux dans ce genre de travail, c'est de la recherche et développement.

Tout comme la recherche scientifique, certaines de ces recherches aboutiront sur une exploitation réelle et rentable alors que d'autres finiront dans la poussière au fond du placard, pour peut-être être ressorties un peu plus tard, le moment opportun...

Citation:
Envoyé par j.peg Voir le message
Qui est prêt à payer pour de la sur-qualité?
[exagération]Combien de développements m'a-t-on confié devant faire certaines choses mais si ça pouvait aussi faire le café et ne pas prendre plus de temps à réaliser, ce serait encore mieux...[/exagération]
S'il n'y a pas de surcoût, je ne vois pas pourquoi on refuserait systématiquement la "sur-qualité".

Note: La notion de sur-qualité me pose un problème car je pense qu'on ne dois pas penser à la même chose.

Si c'est dans le sens pourquoi faire simple alors que l'on peut faire compliqué sans que ça n'apporte rien, je suis d'accord, c'est inutile.

Si par contre, c'est faire un peu réfléchi pour que ce soit plus simple ensuite, je vois vraiment pas le problème. Sans tomber dans l’excès et faire dans le très compliqué sans gagner en simplicité, bien-sûr.
__________________
Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...
LooserBoy est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/07/2011, 17h50   #20
Membre habitué
 
Avatar de straasha
 
Homme
Développeur en systèmes embarqués
Inscription : juillet 2004
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur en systèmes embarqués
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2004
Messages : 115
Points : 120
Points : 120
sinon j'avais rencontré ça chez mon ancien client :
Code Fichier.h :
1
2
3
4
5
6
7
8
9
10
#ifdef CONSTANTE_A
...
du code sans entête de fonction ni quoi que ce soit
...
#endif
#ifdef CONSTANTE_B
...
déclarations comme on en trouve dans un .h classique
...
#endif
Code Fichier.c :
1
2
3
4
5
6
7
8
9
10
11
...
au debut :
#define CONSTANTE_B
#include "fichier.h"
#undef CONSTANTE_B
...
plus loin au milieu d'une fonction :
#define CONSTANTE_A
#include "fichier.h"
#undef CONSTANTE_A
...
notez que j'ai simplifié et qu'il y avait en réalité 3 ou 4 sections de codes dans le .h, chacune encadrée par une constante différente et utilisée de cette manière à différents endroits du .c.
le pire c'est que ça marchait très bien, par contre pour relire...
__________________
il parait que la plume est plus forte que l'épée, heureusement j'ai une hache
straasha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h36.


 
 
 
 
Partenaires

Hébergement Web