Précédent   Forum des professionnels en informatique > Le club des professionnels en informatique > La taverne du Club : Humour et divers
La taverne du Club : Humour et divers Divers, détente et humour. Pour le Chat, c'est ici : -> Le Chat
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 11/02/2008, 10h50   #1
Membre confirmé
 
Avatar de wace
 
Inscription : septembre 2003
Messages : 225
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 225
Points : 223
Points : 223
Par défaut How to Write Unmaintainable Code



How To Write Unmaintainable Code


Je ne savais pas où le mettre mais ca vaux vraiement le détour,

Désolé pour les non anglophones, mais je n'ai pas trouvé de version dans la langue de Moliére, si quelqu'un veux nous en faire une traduction ... je pense qu'il sera le bien venu
__________________
Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
[article 1er Declaration Universelle des Droits de l'Homme]
www.baseball-grizzlys.com
wace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2008, 11h12   #2
Inactif
 
Inscription : juillet 2007
Messages : 4 555
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4 555
Points : 5 002
Points : 5 002
Bonjour,

vraiment pas besoin d'en arriver là pour parvenir à cette fin...

Je me rappelle parfaitement avoir écrit un code (proprement d'abord) puis l'avoir volontairement "éclaté" pour en empêcher toute modification maitrisée... (ma manière de lutter contre un "bidouilleur" qui s'amusait à transformer puis criait ensuite au secours pour réparer les dégâts colatéraux que ses modifs avaient engendrées). Je me rappelle également avoir eu alors moi même les plus grandes difficultés, 3 mois plus tard, à ajouter une foinctionnalité ... Au point qu'il m'a fallu repartir, pour y parvenir, du code "propre" que j'avais heureusement conservé ...
ucfoutu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2008, 12h27   #3
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 496
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 496
Points : 28 785
Points : 28 785
Envoyer un message via MSN à Médinoc
Une version plus structurée: http://mindprod.com/jgloss/unmain.html
__________________
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 00
Vieux 11/02/2008, 12h33   #4
Rédacteur
 
Avatar de gege2061
 
Inscription : juin 2004
Messages : 5 850
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : juin 2004
Messages : 5 850
Points : 8 299
Points : 8 299
Citation:
Envoyé par wace Voir le message
Désolé pour les non anglophones, mais je n'ai pas trouvé de version dans la langue de Moliére, si quelqu'un veux nous en faire une traduction ... je pense qu'il sera le bien venu
Ah ces jeunes, ils ne connaissent même pas les bons magazines, qui en leur temps avaient publiés une traduction : http://www.acbm.com/virus/num_22/inf...re-emploi.html
__________________
gege2061's blog
gege2061 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 13h38   #5
Membre éclairé
 
Avatar de heid
 
Inscription : mai 2002
Messages : 324
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2002
Messages : 324
Points : 315
Points : 315
[MODE TROLL]
Sinon tu demandes un bout de code à un jeune ingénieur nouvellement diplômé, j'ai pas trouvé mieux comme code inmaintenable
[/MODE TROLL]
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 08h38   #6
Membre Expert
 
Avatar de Lung
 
Analyste-programmeur
Inscription : mai 2002
Messages : 2 047
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Yonne (Bourgogne)

Informations professionnelles :
Activité : Analyste-programmeur
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 2 047
Points : 2 053
Points : 2 053
Citation:
Envoyé par heid Voir le message
[MODE TROLL]
Sinon tu demandes un bout de code à un jeune ingénieur nouvellement diplômé, j'ai pas trouvé mieux comme code inmaintenable
[/MODE TROLL]
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
______________________________________________________________________________________________

Delphi 6#2 Entreprise - Delphi 2010 Architecte - Delphi XE2 Entreprise
Win XP Pro - OpenGL 2.1 - Oracle 11g - Firebird 2.5.0.2
Écrivez dans un français correct !!
Lung est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 09h02   #7
Membre confirmé
 
Avatar de wace
 
Inscription : septembre 2003
Messages : 225
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 225
Points : 223
Points : 223
Le problème c'est que ca arrive aussi avec des Ingénieurs qui developpent depuis dix ans...
__________________
Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
[article 1er Declaration Universelle des Droits de l'Homme]
www.baseball-grizzlys.com
wace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 09h31   #8
Expert Confirmé
 
Inscription : décembre 2007
Messages : 1 917
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 917
Points : 3 744
Points : 3 744
parmi les auteurs de code les plus propres que j'ai croisé, 2 simples bacheliers de 45 ans(dont 25 de métier), lents mais terrrrrrrriblement efficaces, et une économiste de 24 ans fraichement reconvertie(par contre, elle, elle laissait des bugs).

Les plus illisibles étaient généralement des maîtres de la technique
el_slapper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 09h33   #9
Membre éclairé
 
Avatar de heid
 
Inscription : mai 2002
Messages : 324
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2002
Messages : 324
Points : 315
Points : 315
Sinon en catégorie spécial tu as le consultant ...
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 10h54   #10
Membre confirmé
 
Avatar de wace
 
Inscription : septembre 2003
Messages : 225
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 225
Points : 223
Points : 223
Citation:
Envoyé par heid Voir le message
Sinon en catégorie spécial tu as le consultant ...
You're the King of the day
__________________
Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
[article 1er Declaration Universelle des Droits de l'Homme]
www.baseball-grizzlys.com
wace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 13h12   #11
Membre chevronné
 
Inscription : octobre 2005
Messages : 634
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2005
Messages : 634
Points : 678
Points : 678
Il n'y a pas besoin d'un ingénieur incompétent pour écrire du code illisible. Il suffit de laisser les commerciaux fixer les délais.
BugFactory est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 15h21   #12
Membre éclairé
 
Avatar de heid
 
Inscription : mai 2002
Messages : 324
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2002
Messages : 324
Points : 315
Points : 315
Enigme détente du vendredi au sujet de code inmaintenable.
trouver le nom de la fonction :

Code Java :
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
31
32
33
34
35
36
37
38
private int ?????? (Date date1, Date date2)
{
  int retval = 0;
  if (date1 > date2) return 0;
 
  int d1 = date1.Year * 10000 + date1.Month * 100 + date1.Day;
  int d2 = date2.Year * 10000 + date2.Month * 100 + date2.Day;
  int dat = d1 / 100;
  int a = 0, d = 0;
 
  while ((dat <= (d2 / 100)) && (a < 12))
  {
 
    int daymo = 31;
    if (dat/100 == 2) if ((dat%100 %4)==0) daymo -= 2; else daymo -= 3;
    if ((dat/100 % 2)==(dat/100 / 8)) daymo -= 1;
 
    if ((d1/100 == dat) || (d2/100 == dat))
    {
      if (d1/100 == dat) d = daymo - (d1%100)+1;
      if (d2/100 == dat)
      {
        if (d1/100 == d2/100) d -= daymo - d2%100;
        else d = d2%100;
      }
    }
    else d = daymo;
 
    retval += d;
 
    if (dat%100 == 12) dat = (dat/100 + 1)*100 + 1;
    else dat += 1;
 
    a +=1;
  }
 
  return retval;
}


Réponse :
la même qui fait ...
Code Java :
return (date1 - date2);

... mais ajouter consultantWay() à la fin
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 14h43   #13
Membre confirmé
 
Inscription : avril 2007
Messages : 239
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : avril 2007
Messages : 239
Points : 202
Points : 202
S'il n'y a pas de volonte de faire du travail de qualite, n'importe quel code devient vite non-maintenable apres quelques annees.
_vince_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 14h53   #14
Membre confirmé
 
Inscription : avril 2007
Messages : 239
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : avril 2007
Messages : 239
Points : 202
Points : 202
Citation:
Envoyé par heid Voir le message
Enigme détente du vendredi au sujet de code inmaintenable.
trouver le nom de la fonction :

Code Java :
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
31
32
33
34
35
36
37
38
private int ?????? (Date date1, Date date2)
{
  int retval = 0;
  if (date1 > date2) return 0;
 
  int d1 = date1.Year * 10000 + date1.Month * 100 + date1.Day;
  int d2 = date2.Year * 10000 + date2.Month * 100 + date2.Day;
  int dat = d1 / 100;
  int a = 0, d = 0;
 
  while ((dat <= (d2 / 100)) && (a < 12))
  {
 
    int daymo = 31;
    if (dat/100 == 2) if ((dat%100 %4)==0) daymo -= 2; else daymo -= 3;
    if ((dat/100 % 2)==(dat/100 / 8)) daymo -= 1;
 
    if ((d1/100 == dat) || (d2/100 == dat))
    {
      if (d1/100 == dat) d = daymo - (d1%100)+1;
      if (d2/100 == dat)
      {
        if (d1/100 == d2/100) d -= daymo - d2%100;
        else d = d2%100;
      }
    }
    else d = daymo;
 
    retval += d;
 
    if (dat%100 == 12) dat = (dat/100 + 1)*100 + 1;
    else dat += 1;
 
    a +=1;
  }
 
  return retval;
}


Réponse :
la même qui fait ...
Code Java :
return (date1 - date2);

... mais ajouter consultantWay() à la fin
En plus, de n'etre pas facilement maintenable, la fonction contient un bug dans la deuxieme ligne du corps de la fonction.

Ce que je trouve surprenant, c'est qu'un programmeur est par definition un peu faineant. Il ne va pas recoder ce qui existe deja. Et la franchement, il aurait pu demander sur n'importe quel forum de java comment faire.

Honnetement, je n'aurai jamais pu faire un code aussi complique.
_vince_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 15h42   #15
Membre émérite
 
Avatar de Gastiflex
 
Inscription : octobre 2004
Messages : 831
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 831
Points : 886
Points : 886
Dans le même genre en français, il y a l'échelle de Goret :
http://emmanuel-delahaye.developpez.com/goret.htm
Gastiflex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 13h39   #16
Membre Expert
 
Avatar de Lung
 
Analyste-programmeur
Inscription : mai 2002
Messages : 2 047
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Yonne (Bourgogne)

Informations professionnelles :
Activité : Analyste-programmeur
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 2 047
Points : 2 053
Points : 2 053
Citation:
Envoyé par Gastiflex Voir le message
Dans le même genre en français, il y a l'échelle de Goret :
http://emmanuel-delahaye.developpez.com/goret.htm
C'est quoi le pire ?
Le niveau 1 ou le niveau 10 ?
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
______________________________________________________________________________________________

Delphi 6#2 Entreprise - Delphi 2010 Architecte - Delphi XE2 Entreprise
Win XP Pro - OpenGL 2.1 - Oracle 11g - Firebird 2.5.0.2
Écrivez dans un français correct !!
Lung est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 14h34   #17
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
Citation:
Force 8
  • Plus d'un return par fonction
j'y suis

c'est mal d'après vous ??
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 14h35   #18
Membre émérite
 
Avatar de Gastiflex
 
Inscription : octobre 2004
Messages : 831
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 831
Points : 886
Points : 886
Je m'étais posé la question aussi la première fois que je l'avais lu, mais je pense que c'est le 10.
Tout d'abord parce que c'est le même principe que les échelles de Richter ou de Beaufort, et puis quand tu regarde en détail, on voit que c'est de plus en plus dégueu (même si je suis pas d'accord avec tout).
Gastiflex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 16h09   #19
Membre confirmé
 
Inscription : avril 2007
Messages : 239
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : avril 2007
Messages : 239
Points : 202
Points : 202
Citation:
Envoyé par beekeep Voir le message
j'y suis

c'est mal d'après vous ??
En effet, c'est discutable. Avoir plusieurs return dans une meme fonction oblige a dupliquer le code de sortie - s'il y en a - plusieurs fois.

Un des avantages d'avoir plusieurs return est de ne pas avoir a derouler toute la fonction pour comprendre qu'on peut sortir prematurement de la fonction en cas de donnees d'entree invalides par exemple.

Concernant la force 8 ou l'utilisation abuvise des assertions est un defaut, je suis d'accord. Mais trop d'assertions, c'est beaucoup mieux que pas d'assertions du tout !
_vince_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 16h13   #20
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 496
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 496
Points : 28 785
Points : 28 785
Envoyer un message via MSN à Médinoc
Je pense que le coup du "plusieurs return par fonction" devrait dissocier deux cas:
  • Les contrôles sur les paramètres
  • Les échecs d'appels de fonction dans le programme (ouverture de fichier, allocation mémoire, etc.)
Généralement, je mets des return pour les premiers mais je m'abstiens pour les seconds.
__________________
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 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h55.


 
 
 
 
Partenaires

Hébergement Web