GB3- Les Commentaires sont ils indispensables ?( Temps de lecture estimé à 3 min 39 sec )
J'ai commencé à programmer il y a bien longtemps sur des machines qui feraient hurler de rire vos chers téléphones portables.
J'en ai bien, un aujourd'hui mais il ne me sert que de téléphone.
Mon premier programme en assembleur m'a pris un mois d'écriture pour faire défiler un "bonjour, madame" sur la ligne écran de mon Z80, c'était en 19.. (de quoi je me mêle ?).
Ensuite je suis passé à un commodore 64, il avait tellement peu de mémoire que pour faire tourner un programme (en basic 16 bits, si madame ça a existé) il fallait découper le dit programme en morceaux que l'on chargeait un par un, en mémoire après avoir vidé celle-ci, du morceau précédent.
Pourquoi je disais ça, faut dire que si vous n'arrêtez pas de m'interrompre tout le temps, je perds le fil, moi.
En fait en arrivant sur Gambas, mes premiers programmes étaient aussi peu rangés que ma chambre si ma femme ne passait pas, derrière moi.
En lisant des articles et des programmes commentés je me suis aperçu qu'ils étaient faciles à suivre et comprendre parce qu'ils étaient aérés et commentés.
En lisant un code d'un certain Cogier, cherchez ses productions sur la logithèque de Gambas, chaque ligne était commentée et la présentation était soignée, les commentaires tirés au cordeau, toujours à 81 caractères sur la ligne (ce qui correspond à plusieurs tabulations, vous les compterez) ce qui rendait le code attractif, facile à lire et compréhensible.
Depuis je me suis imposé ce travail qui de fastidieux est devenu une autre chose, très intéressante, cela m'oblige à relire mon code, à améliorer celui-ci et surtout les commentaires pour qu'ils soient les plus explicites possibles, en peu de place.
Et, ce faisant vous vous rendrez compte des évolutions de vos propres pensées et de la structuration de celles-ci et donc de l'apport indéniable des commentaires dans vos programmes.
Car vos commentaires sont la traduction de vos pensées et non une simple traduction de texte, sans aucune valeur.
Alors n'hésitez pas, commentez vos codes, d'abord pour vous même et ensuite .. pour vous même car les autres suivront.
Public Sub Command(Command As String) As String 'Takes the Command and returns the output of the command If Not Command Then Return 'If there is no Command then get out of here! sCommand = Command 'Move the Command to a global variable If sPassword Then 'If the password has been stored then.. ButtonAuthenticate_Click 'Click the 'Authenticate' button Return sOutput 'Return the Command's output End If LabelHeader.text = ("Authentication is required to run this programn'") & Command & "'" 'Add a notice and the name of the command to be run CheckCapsLock 'Check if the Caps Lock is on Me.Showmodal 'Show the Authentication Form Return sOutput 'Return the Command's output End
Public Sub obs_Change() ''Contrôle de la saisie If Me.text Then '<--------------------------------------------------------- pour ne pas avoir d'erreur de texte vide $regex.Exec(Me.Text) '<--------------------------------------------- test de la valeur au crible de l'expression régulière Me.Text = $regex.Text '<--------------------------------------------- isNumber() donc on récupère chaque chiffre If Me.Text Match "." Then Me.Text = Replace(Me.Text, ".", ",") '<----- pour récupérer la virgule à partir du point If Me.text Then $value = Val(Me.Text) '<----------------------------- si j'ai du texte alors j'ai une valeur If Me.Value > 999999999.99 Then '<------------------------------------- pour ne pas dépasser la somme Me.Value = 0 '<------------------------------------------------- la valeur est remise à zéro Me.Clear '<----------------------------------------------------- le texte est effacé Me.SetFocus '<----------------------------------------------------- le focus est remis au champ $lab.Text = "" '<------------------------------------------------- le label d'affichage est effacé Endif Else '<----------------------------------------------------------------- si le texte n'est pas alimenté alors $value = 0 '<--------------------------------------------------------- s'il n'y a pas de texte alors la valeur = 0 $lab.Text = "" '<----------------------------------------------------- et on vide le texte du label Endif If Me.Text And If $format Then '<----------------------------------------- si le texte et le format sont alimentés alors $lab.Text = Format(Val(Me.Text), $format) '<------------------------- affichage dans le label selon le format Endif End