Précédent   Forum du club des développeurs et IT Pro > Le club des professionnels en informatique > Actualités
Actualités L'actualité des sociétés du secteur informatique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 04/11/2009, 13h39   #61
Nee
Nouveau Membre du Club
 
Inscription : mai 2002
Messages : 47
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 47
Points : 32
Points : 32
Moi j'ai vu quelque chose comme ça en PHP, il fallait y penser :
Code :
1
2
3
4
5
6
7
8
try {
  if (! uneFunction()){
     throw new Exception();
  }
} catch(Exception $e){
   return false;
}
__________________
we are the knights who said nee !
Nee est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 13h45   #62
Furikawari
Inactif
 
Inscription : septembre 2008
Messages : 357
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 357
Points : 403
Points : 403
Citation:
Envoyé par bubulemaster Voir le message
En java :

Code :
1
2
3
4
5
for(...) {
StringBuffer sb = new StringBuffer() ;
sb = new StringBuffer()
....
}
On aurait pu sortir la déclaration de la variable sb de la boucle.
Et l'instancier deux fois de suite

Le classic :
Code :
1
2
3
4
5
6
7
private int longueur(List liste) {
    return liste.size();
}

private void ajouter(List liste, String chaine) {
    liste.add(chaine) ;
}
Ca m'étonne pas qu'on dise que Java est lent quand on voit ça

Ah, précision, la personne était programmeuse Java depuis 5 ans
Bof, le compilo optimise tout ça.
Furikawari est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 13h59   #63
Yacodo
Invité de passage
 
Inscription : août 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 4
Points : 3
Points : 3
Bonjour,

Des perles, ont n'en vois souvent, souvent marrantes.

En voila une pour moi :
Lors d'un stage(en seconde) dans le réseau informatique d'une mairie(je ne venais pas pour du PHP), lorsque mon maitre de stage a vu que je connaissais le PHP il à sauter sur l'occasion pour me faire débugger une application réseau de gestion.

Le but du code était de sélectionner certaines personnes dans une liste grâce à un statut...
La boite à mis la clé sous la porte(ce que je comprends maintenant), et ne pouvait donc pas assurer la maintenance, et donc l'application ne sélectionnait pas en fonction du critère.
Je vous laisse voir :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$statut = (isset($_POST['statut']))?$_POST['statut']:'all';

if($statut == 'all'){
$rq = "SELECT * FROM table WHERE statut='all'";
}elseif($statut == 'chose'){
$rq = "SELECT * FROM table WHERE statut='all'";
}//Sur 7 critères
...
<select name="statut"><option value="all">Tous</option><option value="chose">Chose</option>//de même sur 7 critères</select>
C'est assez marrant, ce que l'on peut faire pour ce compliquer la vie.

Yacodo
Yacodo est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 14h03   #64
hermes1983
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 22
Points : 12
Points : 12
Citation:
Envoyé par Alain Defrance Voir le message
Par contre c'est faux de dire que == ne marche pas il a juste un comportement un peu spécial. Il ne compare pas les valeurs mais les adresses en mémoire. Le fait est que dans ce cas préci pour peu que l'on passe un litéral à la méthode convert, le programme marchera normalement. En effet la JVM implémente le pattern flyweight qui construit un parc de données pour les littéraux. De ce fait les littéraux sont partagés dans tous le programme. Puisqu'ils sont partagés alors quand on fait "1" == "1", alors on compare les deux adresses, qui pointent vers la même instance en mémoire, et qui du coup est égal. En fait on fait un test qui ne fait pas ce qu'on veut mais qui au final donnera le bon résultat. Pour être certain que le code marche il faudrait non pas utiliser value mais value.intern(). Pour plus de détails pous pouvez lire ce billet.
J'avais écrit ça une fois sans faire gaffe en Java, et je m'en suis rendu compte dans le debugger. Maintenant, voilà pourquoi je me permets de faire un commentaire : le compilateur (Java 6) avait remplacé le == par un appel à equals sans me le dire, et le watch du debugger que j'avais fait par copier/coller n'avait pas fait cette substitution. Il m'en a fallu du temps pour comprendre ça...
hermes1983 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 14h16   #65
bubulemaster
Membre chevronné
 
Développeur Java
Inscription : mars 2004
Messages : 619
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : mars 2004
Messages : 619
Points : 630
Points : 630
Citation:
Envoyé par Furikawari Voir le message
Bof, le compilo optimise tout ça.
Oui mais bon, ça veut dire que la personne n'a pas vraiment compris le Java et même la programmation.
Pour qu'un compilateur optimise, il faut qu'il y ait des programmeurs qui est compris la programmation et la programmation à la one again.

Pour me rattrapé je me suis rappelé d'un code comme ça :
Code :
1
2
3
4
int a ;
String b;
StringBuilder c;
...
Que des variables à 1 lettre, sympa ça ! Mais bon, c'est vrai que la personne qui avait fait ce code était un artiste
bubulemaster est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 14h22   #66
Faiche
Membre expérimenté
 
Homme
Consultant informatique
Inscription : septembre 2006
Messages : 572
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : septembre 2006
Messages : 572
Points : 583
Points : 583
Code :
1
2
3
4
5
6
7
8
9
10
if (resultat <= 10) {
   traitement();
}
else if (resultat > 10) {
  autreTraitement();
}
else {
   traitement(); // oui oui, le meme qu'au dessus, on sait jamais.
}
Faiche est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 14h23   #67
hermes1983
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 22
Points : 12
Points : 12
Alors moi, je pense que le truc le plus incroyable a été de chercher un jour sous quelle condition je recevais la valeur "E000:R" via un socket TCP. Je suis tombé sur le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    if(
        !checkTag(session->barcode, "TRANSIT") &&
        (
         (!strcmp(mode, F_IT) && ((g_comlabel!=0 && !checkTagValue(session->barcode, "TYPE", "COMMON")) || checkTag(session->barcode, "RELABEL")) && (session->isnprint || !checkTagValue(session->barcode, "CPEX", "N"))) ||
         (!strcmp(mode, "RELABEL") && !strcmp(szStr1, "FR")) ||
         (!strcmp(mode, F_IT) && checkTag(session->barcode, "REBUILD")) ||
         (g_comlabel && strcmp(mode, F_IT) && strcmp(mode, "RELABEL") && (!checkTagValue(session->barcode, "TYPE", "COMMON") /*|| checkTagValue(session->barcode, "EXPORT", "Y")*/) && (session->isnprint || !checkTagValue(session->barcode, "CPEX", "N")) ) ||
         (!g_comlabel && strcmp(mode, F_IT) && strcmp(mode, "RELABEL") && checkTag(session->barcode, "RELABEL")) ||
         (g_frinitcheck && !strcmp(mode, F_IT) && !checkTag(session->barcode, "COMIMP") && checkTagValue(session->barcode, "TYPE", "COMMON") && !frCheckRoute(session->barcode))
        ) 
      )
    {
        strcpy(data, "E000:R");
        // Autres trucs imbitables
    }
À ce jour, je ne sais toujours pas quelle est la condition réelle, même si j'ai résolu mon problème par un autre moyen
hermes1983 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 14h25   #68
Pill_S
Membre Expert
 
Avatar de Pill_S
 
Homme Sébastien Piller
Consultant informatique
Inscription : janvier 2004
Messages : 1 632
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Piller
Âge : 30
Localisation : Suisse

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 632
Points : 2 221
Points : 2 221
Envoyer un message via MSN à Pill_S
Citation:
Envoyé par bubulemaster Voir le message
Que des variables à 1 lettre, sympa ça ! Mais bon, c'est vrai que la personne qui avait fait ce code était un artiste
Bof, moi ça me choque pas, du moment que ce sont des variables locales... c'est même plus clair je trouve...

Qui n'a jamais programmé une boucle for avec un compteur "i"?

__________________
gg
Pill_S est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 14h27   #69
fnobb
Membre chevronné
 
Inscription : avril 2003
Messages : 776
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 776
Points : 786
Points : 786
Une que j'aime bien
Code :
1
2
3
if (condition == true) {
       [...]
}
fnobb est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 14h47   #70
gjourdan
Invité de passage
 
Développeur informatique
Inscription : avril 2009
Messages : 4
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2009
Messages : 4
Points : 4
Points : 4
Envoyer un message via MSN à gjourdan
Dans mon ancienne équipe, il y avait un morceau de code qui nous a fait marré pendant longtemps et qui me fait marrer encore en y pensant

On bossait sur des interfaces graphiques SWING et il y avait une correction de bug qui consistait à griser un champ. La correction faite par le développeur, ça marchait correctement. Seulement, on a été intrigué par le gris qui était légèrement différent que les autres champs. On est allé voir dans le code et la fou rire général, ça donné ça :

Code :
1
2
3
4
5
6
7
8
9
JTextField textField = new JTextField();

// Passage du text field à non éditable.
textField.setEditable(false);

// Mais comme le text field actif, il n'est donc pas grisé, alors on change la
//couleur du champ!!
textField.setBackground(Color.GRAY);
gjourdan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2009, 14h51   #71
Khleo
Membre confirmé
 
Homme
Développeur Web
Inscription : janvier 2008
Messages : 448
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2008
Messages : 448
Points : 235
Points : 235
Code :
1
2
3
4
5
6
7
$req_sql = "SELECT parrain FROM membres WHERE id=$id";
$req = mysql_query($req_sql);
while ($row = mysql_fetch_assoc($req))
{
     $varparrain = $row["parrain"];
}
mysql_free_result($req);
C'était le seul moyen que j'avais pour lancer une requête ...
__________________
Codez toujours en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.
Khleo est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 14h55   #72
bubulemaster
Membre chevronné
 
Développeur Java
Inscription : mars 2004
Messages : 619
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : mars 2004
Messages : 619
Points : 630
Points : 630
Je viens de tomber à l'instant sur ce code :

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
try {
    try {
        ...
    } catch (TrucException e) {
        throw new VenteException("message") ;
    }
    
    ...
    
    try {
        ...
    } catch (TrucException e) {
        throw new VenteException("message") ;
    }

    ...
        
    try {
        ...
    } catch (TrucException e) {
        throw new VenteException("message") ;
    }
} catch (VenteException e) {
    JournalException ex = new JournalException() ;
    ex.setMessage(e.getMessage) ;
    throw ex ;
}
Je pense qu'on peut lever l'exception JournalException directement non ?
bubulemaster est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 15h18   #73
jabbounet
Expert Confirmé
 
Avatar de jabbounet
 
Homme frederic frances
Consultant informatique
Inscription : juin 2009
Messages : 1 850
Détails du profil
Informations personnelles :
Nom : Homme frederic frances
Âge : 37

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : juin 2009
Messages : 1 850
Points : 2 680
Points : 2 680
une state machine avec 70 états, et un bon paquet de transition entre ces derniers.

a maintenir dans un soft c'est le pied
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 15h30   #74
grunt2000
Membre éclairé
 
Inscription : janvier 2007
Messages : 371
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 371
Points : 350
Points : 350
Vu en COBOL: La vraie programmation séquentielle.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
AFFICHAGE DE L'ECRAN ET SAISIE

SI ERREURS DE SAISIE
   AFFICHAGE DE L'ECRAN ET SAISIE
   
   SI ERREURS DE SAISIE
      AFFICHAGE DE L'ECRAN ET SAISIE
     
       SI ERREURS DE SAISIE
          AFFICHAGE DE L'ECRAN ET SAISIE

           SI ERREURS DE SAISIE
              On quitte le programme. 
              Parce que bon, on a laissé à l'utilisateur quatre chances, non?
grunt2000 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/11/2009, 15h40   #75
LordBob
Membre éclairé
 
Homme Jérémy
Ingénieur développement logiciels
Inscription : mai 2005
Messages : 513
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : mai 2005
Messages : 513
Points : 397
Points : 397
Citation:
Envoyé par grunt2000 Voir le message
Vu en COBOL: La vraie programmation séquentielle.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
AFFICHAGE DE L'ECRAN ET SAISIE

SI ERREURS DE SAISIE
   AFFICHAGE DE L'ECRAN ET SAISIE
   
   SI ERREURS DE SAISIE
      AFFICHAGE DE L'ECRAN ET SAISIE
     
       SI ERREURS DE SAISIE
          AFFICHAGE DE L'ECRAN ET SAISIE

           SI ERREURS DE SAISIE
              On quitte le programme. 
              Parce que bon, on a laissé à l'utilisateur quatre chances, non?
je crois que l'on tient un des meilleurs code là ...
__________________
Jérémy
Ingénieur Conception et Développement
LordBob est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/11/2009, 15h50   #76
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 666
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 666
Points : 25 516
Points : 25 516
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par Népomucène Voir le message
Il y a quelques temps, j'ai été appelé pour modifier un programme en VBA (une application Access)
Manifestement, le mec qui avait codé voulait économiser sur les lignes de code ;
et plutôt que d'aller à la ligne pour chaque instruction, j'ai eu droit à :
Code :
Dim t As Date: Debug.Print "début": t = DateAdd("s", 10, Now()): While t > Now(): Wend: Debug.Print "fini"
Tous les modules étaient écrits comme ça (la peur des espaces blancs sans doute ).
Le client était étonné que je mette deux jours à déboguer un truc tout con
J'ai commencé à tripatouiller du code au début des années 1980, quand les processeurs étaient en 8 bit et la mémoire vive de 1 kilo-octets (oui les p'tits jeunes, vous avez bien lu ! ).

A l'époque, on programmait en Basic interprété et on utilisait souvent la ligne à multiples instructions séparées par : parce que tout ce qui était écrit dans le programme allait dans la mémoire, notamment je crois me souvenir les numéros de lignes et les commentaires. Du coup on économisait les lignes et quand le programme (ou le bout de programme) fonctionnait, on supprimait les commentaires !

Je me souviens avoir passé quelques heures à traquer le moindre caractère inutile sur un programme pour qu'il tienne en mémoire !

Aujourd'hui c'est l'inverse !
Depuis que j'examine des programmes PHP faits par d'autres, je suis très étonné de voir des paquets de require qui chargent des paramètres et des fonctions inutilement chargés ou lancées dans le contexte où elles se trouvent.
Un exemple : OBM charge dès le démarrage un tas de paramètres concernant par exemple le calendrier avant même qu'on soit entré dans l'application. Et nous ne nous servons même pas de la fonction de calendrier de ce logiciel !
Ce serait vraiment plus dur de charger les paramètres du calendrier seulement quand on veut utiliser cette fonction ?

Et quand dans un programme on a de l'objet, du procédural, des modules ne contenant que des fonctions, d'autres contenant du code actif et des fonctions qui ne seront pas forcément utilisées dans le module où elles se trouvent, du mélange de Perl, PHP, HTML (avec ou sans echo), javascript, CSS... c'est galère pour s'y retrouver.

Tout ça pour dire que l'extrait cité en tête de ce message vient peut-être d'un dinosaure de l'informatique dans mon genre et qui a gardé de mauvaises habitudes de sa jeunesse.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 16h00   #77
Bisûnûrs
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 138
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 138
Points : 13 959
Points : 13 959
Bon, c'est peut-être pas le pire que j'ai pu voir, mais voici un exemple de code qui m'a été donné de voir :

Code :
formate_code(document.form_sites.ban_code_js_<?php echo $id_ban; ?>,'<scr'+'ipt language="javascript" type="text/javascript" src="<?php echo $chemin; ?>/ban.php?ban=<?php echo $id_ban; ?>&url='+escape(document.form_sites.site_url.value)<?php if (in_array("style",$parametres)) echo "+'&params=id_style%3D'+document.form_sites.choix_style.value"; if (in_array("MB directe",$parametres)) echo "+'&params=bg%3D'+document.form_sites.bg.value+'%26txt%3D'+document.form_sites.txt.value+'%26link%3D'+document.form_sites.link.value"; ?>+'"></scr'+'ipt>');
Une ligne de 547 caractères.

Mieux :

Code :
onclick="if(confirm('En cliquant sur OK vous ne supprimez que le sous-domaine \''+sous_domaine[f.choix_style.options[f.choix_style.selectedIndex].value]+'\'.\n(Le style \''+f.choix_style.options[f.choix_style.selectedIndex].text+'\' ne sera pas supprim?)\n\n/!\\ ATTENTION /!\\ \n les inscrits que vous avez avec cette marque blanche seront irr?m?diablement perdus !\n\n\nEtes-vous s?r ?')&&confirm('Etes-vous vraiment s?r de vouloir supprimer les marques blanches \''+sous_domaine[f.choix_style.options[f.choix_style.selectedIndex].value]+'\' et tous les inscrits que vous avez g?n?r?s avec celles-ci ?')){document.location='?page=delete_style&domaine='+f.choix_style.options[f.choix_style.selectedIndex].text}">
Une ligne de 713 caractères.

Je dois en avoir une qui traine de plus de 800 caractères mais je n'arrive pas à remettre la main dessus.


Sinon, le pire que j'ai pu voir, c'est des noms de variables/fonctions PHP avec des accents.

Ah non, que dis-je, c'était juste pour me mettre dans le bain, après il a fallu que ce soit les noms de bases/tables/champs MySQL qui prennent tous les caractères spéciaux et espaces imaginables.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 16h35   #78
gailuris
Membre éprouvé
 
Manuel SIRE
Développeur Java
Inscription : avril 2004
Messages : 264
Détails du profil
Informations personnelles :
Nom : Manuel SIRE
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Java
Secteur : Distribution

Informations forums :
Inscription : avril 2004
Messages : 264
Points : 415
Points : 415
Citation:
Envoyé par phantomass Voir le message
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
31
32
33
34
35
36
public interface NombresConstantes {

	/** 0 */
	int CONST_0 = 0;

	/** 1 */
	int CONST_1 = 1;

	/** 2 */
	int CONST_2 = 2;

	/** 3 */
	int CONST_3 = 3;

	/** 4 */
	int CONST_4 = 4;

	/** 5 */
	int CONST_5 = 5;

	/** 6 */
	int CONST_6 = 6;

	/** 7 */
	int CONST_7 = 7;

	/** 8 */
	int CONST_8 = 8;

	/** 9 */
	int CONST_9 = 9;

	/** 10 */
	int CONST_10 = 10;
/* Et ça continue jusqu'à 100*/
}
Déjà une une classe de constante pour référencer des nombres entiers, c'est très difficile d'y trouver un intérêt.
Mais le pire est à venir . C'est l'usage de ces constantes dans le programme.
Code :
1
2
3
4
5
6
7
8
9
String[] valeurs = new String[NOMBRE_COLONNE];               
valeurs[0] = rs.getString("ChampA");                         
valeurs[1] = rs.getString("ChampB");                         
valeurs[2] = rs.getString("ChampC");                         
valeurs[NombresConstantes.CONST_3] = rs.getString("ChampD"); 
valeurs[NombresConstantes.CONST_4] = rs.getString("ChampE"); 
valeurs[NombresConstantes.CONST_5] = rs.getString("ChampF"); 
valeurs[NombresConstantes.CONST_6] = rs.getString("ChampG"); 
valeurs[NombresConstantes.CONST_7] = rs.getString("ChampH");
On remarquera l'usage mixte de constante et de nombre pour les indices du tableau.
Et ca continue de plus belle.
Code :
monBean.setChampFoncctionnel("1".equals(valeur.substring(2, NombresConstantes.CONST_3)));
Dans une même instruction, 3 manières de représenter un nombre.

Que s'est il passé dans la tête du développeur ?
Bonjour,

ça m'a fait rire, j'ai eu le même, mais j'ai eu l'explication, quand on utilise checkstyle (ou d'autres outils surement), on peut interdire l'utilisation de "magic number" (de nombres utilisés en dur, en toutes logique si j'utilise le nombre 32 dans un programme il a une signification et je peux donc lui créer une constante ayant un nom qui ait un sens) mais certains développeurs ne comprenant pas pourquoi ils ont une erreur (ou un warning) et a qui on n'a pas expliqué les principes de bases de la qualité de codes font ce genre d'abbérations.

C'est de la qualité pour faire plaisir à l'outil => on abouti à l'inverse d'un code de qualité.
gailuris est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2009, 16h41   #79
jabbounet
Expert Confirmé
 
Avatar de jabbounet
 
Homme frederic frances
Consultant informatique
Inscription : juin 2009
Messages : 1 850
Détails du profil
Informations personnelles :
Nom : Homme frederic frances
Âge : 37

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : juin 2009
Messages : 1 850
Points : 2 680
Points : 2 680
vu en fortran77 (code que j'ai vite corrigé quand je suis tombé dessus) des saut dans des étiquette à l'intérieur de blocs.

on me pardonnera la syntaxe ça fait longtemps que je n'en ai pas fait


imaginez que votre code tombe sur un else sans le if associé.....


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   
      <quelque part>
       goto Etiq
   

      < plein de code entre les deux histoire de ne pas le voir tout de suite> 


         if X = Y THEN
etiq      
             Traitement           
         Else
etiq2       
            Traitement2
         endif
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2009, 16h59   #80
Népomucène
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 1 381
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 1 381
Points : 2 323
Points : 2 323
Citation:
Envoyé par CinePhil Voir le message
Tout ça pour dire que l'extrait cité en tête de ce message vient peut-être d'un dinosaure de l'informatique dans mon genre et qui a gardé de mauvaises habitudes de sa jeunesse.
D'après le client, il s'agit d'un programmeur "jeune" (<30 ans !)
qui a depuis émigré au Vietnam pour monter sa boîte de développement là-bas
Aux dernières nouvelles, il refuse d'assurer la maintenance à distance de son application.
Je me demande bien pourquoi
__________________
·· −· −−· ·· ·−· ··− −− ·· −− ··− ··· −· −−− −·−· − ·
· − −·−· −−− −· ··· ··− −− ·· −− ··− ·−· ·· −−· −· ··
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h54.


 
 
 
 
Partenaires

Hébergement Web