Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


faq:livre_blanc

Ceci est une ancienne révision du document !


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

Variables

  • Un bon nom de variable doit permettre d'identifier rapidement son type1) et son utilité. Le nom doit être explicite tout en restant assez court.
  • L'utilisation du CamelCase est aussi une excellente idée, mais prenez bien garde: sur les systèmes *nix, l'interpréteur est sensible à la casse et $sNick ne sera pas équivalent à $snick.
  • Autant que faire se peut, utilisez le même nom de variable lorsqu'elle a la même utilité

Exemple de convention

  • débuter la variable par un identifiant de type (s pour une chaîne de caractères (string), i pour un entier(integer), a pour un tableau (array), l pour une liste, …)
  • décrire ce que contient la variable: nick pour un pseudonyme, channels pour une liste de canaux et channel pour un canal spécifique
  • utiliser des variations sur le nom pour une meilleure description: nick sera le pseudonyme de la personne ayant déclenché la procédure, tnick (target nick) sera le pseudonyme de la cible, cnick (current nick) sera le pseudonyme en cours quand on parcourt une liste d'utilisateurs, …

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

1)
d'autant plus qu'en TCL, la plupart des variables sont simplement du texte
faq/livre_blanc.1697716979.txt.gz · Dernière modification : 2023/10/19 12:02 de CrazyCat