RePeGlio    Le principe KISS expliqué
   Le principe KISS signifie en Anglais: "Keep It Simple Stupid" autrement dit rendre simple à réparer. Mais selon Léonard de Vinci: “la simplicité est la sophistication ultime”...

   Dans la lettre de ce mois, nous verrons en premier deux exemples de programmes RPGIV dont l'un est typiquement conforme à le principe KISS. Puis nous allons introduire dans la deuxième partie le principe KISS lui-même.

    Les deux programmes suivants, fonctionnellement identiques, consistent à retourner le jour en alphanumérique connaissant le rang dans la semaine. Question: lequel de ces deux programmes correspond le mieux aux notions de Simplicité Stupidité définies par le principe KISS?

   

Programme 1:

Programme 2:

DJourNum     s     1P 0
DJourAlp     s    10A
JourNum = 4;
if JourNum = 1;
   JourAlp = 'Lundi';
elseif JourNum = 2;
   JourAlp = 'Mardi';
elseif JourNum = 3;
   JourAlp = 'Mercredi';
elseif JourNum = 4;
   JourAlp = 'Jeudi';
elseif JourNum = 5;
   JourAlp = 'Vendredi';
elseif JourNum = 6;
   JourAlp = 'Samedi';
elseif JourNum = 7;
   JourAlp = 'Dimanche';
else;
   JourAlp = 'Erreur';
endif;
Dsply JourAlp;
*inlr = *on;
DJourNum    s    1P 0
DJourAlp    s    10A
DSemaine    s    100A
JourNum = 4;
if JourNum < 1 or Journum > 7;
   JourAlp = 'Erreur';
Else;
   Semaine = 'Lundi     Mardi   Mercredi  Jeudi' +
             'Vendredi  Samedi  Dimanche';
   JourAlp = %SubSt(Semaine:Journum*10-10+1:10);
Endif;
Dsply JourAlp;
*inlr = *on; 









Règle d'or KISS: Ne jamais oublier que le meilleur commentaire est le code lui-même. En effet, un commentaire peut mentir, un code RPG ne ment jamais. Plus le code est explicite, moins il a besoin d'être commenté. Le programme 1 est compréhensible en lui-même sans devoir être commenté. Il répond donc aux exigences KISS de Simplicité Stupidité.

Oui, mais...: Cependant, en cas d'ajout de codes langues, avec le programme 2, il suffit de traduire et conditionner en plusieurs langues la  variable "semaine" pour obtenir un programme multi-langues.
   La solution idéale consiste donc à préférer le programme 1 à priori. Cependant si le multi-langues est demandé, choisir le programme 2. L'idée est de n'employer des fonctions techniques que lorsqu'elles suppriment des redondances et des lourdeurs, surtout au niveau de la structure du programme. La notion de Simplicité Stupidité KISS est donc laissée à l'appréciation du développeur en fonction de l'analyse à coder. KISS est donc avant tout un état d'esprit. Par principe, le développeur KISS pense à celui qui viendra après, à celui qui devra maintenir sous la pression des utilisateurs et qui ne sera pas forcément un champion du RPGIV.
Notez que le deuxième paramètre du %SubSt  :Journum*10-10+1: qui indique la position de début dans la chaine de caractères, avec +1 pour l'intervalle, est plus lisible que  :Journum*10-9: Souvent, une lourdeur volontaire du code peut remplacer un commentaire.

Origine du principe KISS

   On ne compte plus les inventions dues aux conflits armés. A croire que trucider son voisin est une source inégalable d’innovations. Ainsi, Arpanet, l’ancêtre d’internet, a été financé par l’armée Américaine afin que les réseaux puissent continuer à fonctionner malgré une attaque nucléaire massive de la part de l’Union Soviétique, un relai valide pouvant automatiquement remplacer le relai qui vient d’être détruit. Sans la guerre froide nous n'aurions peut-être pas eu internet! En outre, nous devons à l’armée de l’air le célèbre principe KISS qui s’applique merveilleusement bien aux contraintes de l’informatique de gestion.  

   Le principe a été inventé par Kelly Johnson, ingénieur en Chef avionique à Lockheed. Le challenge était que les avions de guerre devaient être réparés parfois sous les bombes par des mécaniciens disposant d’outils standards. Prenons l'exemple d'un avion en panne sur la piste qui doit décoller en urgence pour reprendre le combat. Un mécanicien normal, autrement dit, comme dirait Coluche un « mec normal », doit courir sous les bombes la peur au ventre avec sa petite boite à outil dotée de clés plates standards et être capable d’effectuer les réparations d’urgence qui s'imposent pour faire repartir l'avion.  

   Il est clair que la rapidité de la réparation dépendra avant tout de la conception de l’avion en amont : plus le design est Simple Stupide, plus la maintenance en sera facilitée.  A contrario, un avion complexe nécessitant le recours à des ingénieurs pointus ne vaudra pas plus qu’un tas de ferraille en cas de panne sur un lieu d’opération éloigné.
   De la même manière, en informatique de gestion, un développeur normal, malgré la pression d’utilisateurs bloqués, doit pouvoir maintenir en urgence le logiciel de sa société avec des outils simples.
   Nous proposons sur notre site une brochure des instructions RPGLE idéales pour mettre en œuvre le principe  KISS. En effet, notre générateur Expert RPGIV RePeGlio génère un code structuré, Simple Stupide depuis toujours car nous sommes adeptes du principe KISS.

Jean Mikhaleff/RePeGlio

Nos références:

Notre Site: www.repeglio.fr

Pour un commentaire libre ou pour abonner quelqu'un: jean@repeglio.com


Pour retirer votre email d'envoi  de notre liste de diffusion: 

Retourner-nous la lettre avec en objet OPTOUT et votre email d'envoi:  #E-mail#    sera retiré de notre liste de diffusion.