Table des matières

Livre blanc du scripteur

Ce document, qui s'étoffera au fur et à mesure, est là pour vous donner des préceptes qui, nous l'espérons, vous aideront à faire des scripts propres et lisibles.

Conventions de nommage

Que ce soit en TCL ou dans n'importe quel autre langage, vous devez vous créer et respecter des conventions de nommage, que ce soit pour les variables ou les procédures.

Privilégiez l'anglais pour nommer vos variables et procédures, cela peut éviter certains problèmes. Mais prenez garde à ne pas utiliser de noms déjà existants, car TCL ne provoquera pas d'erreur.

Variables

Exemple de convention

Ce qui nous donnera donc:

set lfriends
# lfriend : liste des "amis"
foreach scchannel [channels] {
# scchannel : canal actuellement vu
   foreach scnick [chanlist $scchannel] {
# scnick : pseudo actuellement vu
      if {$nick eq $scnick || [lsearch lfriends $scnick]>=0 } { continue }
      append lfriends $scnick
   }
}

Vous constaterez que le CamelCase n'est pas utilisé dans ce bout de code: les variables sont suffisamment simple pour que l'on s'en passe. Mais nous aurions pu appeler la variable lfriends lnicksInMyChans.

Procédures

Comme pour les variables, les noms des procédures doivent être à la fois concis et explicites. Certains préconisent de les préfixer par le type de la donnée retournée, mais comme il est fréquent que les procédures ne renvoient rien (void) ou que le type soit variable, nous ne souscrivons pas à cette idée.

Par contre vous pouvez tout à fait regrouper2) les procédures de manière à mieux identifier leur champ d'actions.

Ainsi, une procédure réagissant à un pub commencera par pub. (comme pub.logMsg) alors qu'une procédure agissant sur une base de données commencera par db. (comme db.connect). Notez aussi l'utilisation du . (point) comme séparateur plutôt que : (deux points). En effet, les :: (double deux points) sont utilisés pour séparer les espaces de nom et peuvent prêter à confusion, voir créer une erreur.

1)
d'autant plus qu'en TCL, la plupart des variables sont simplement du texte
2)
entendez par là d'avoir des préfixes identiques