[ruby-gnome2-doc-cvs] [Hiki] update - Conventions et regles de nommage

Back to archive index

ruby-****@sourc***** ruby-****@sourc*****
2004年 3月 15日 (月) 05:30:20 JST


-------------------------
REMOTE_ADDR = 217.117.55.140
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/fr?Conventions+et+regles+de+nommage
-------------------------
  = Conventions et r$BoH(Bles de nommage
- Vous devez vous conformer ce document si vous impl$BqN(Bentez un composant pour Ruby-GNOME2.  Comme ce document n'est pas exhaustif, n'h$BqT(Bitez-pas dans le doute poser des questions sur la liste de diffusion.
+ Vous devez vous conformer ce document si vous impl$BqN(Bentez un composant pour Ruby-GNOME2.
  
  == Noms des biblioth$BoR(Bues
  Le projet s'appelle Ruby-GNOME2.
  
  Pour parler d'une extension de Ruby-GNOME2, utilisez le "/".
  Par exemple:
  
  * Ruby/GNOME - Module gnome2
  * Ruby/GnomeCanvas - Module gnomecanvas2
  * Ruby/GTK - Module gtk2
  * Ruby/GLib - Module glib2 (glib2 est n$BqD(Bessaire et automatiquement chargpar les autres biblioth$BoR(Bues)
  * Ruby/Libglade - Module libglade 
  
  Vous pouvez $BqH(Balement parler de Ruby/GNOME2, Ruby/GTK2, si vous devez faire la distinction avec la premi$BoS(Be g$BqOqS(Bation Ruby-GNOME (qui utilisait Gtk+1.2).
  
  == M$BqU(Bhodes d'acc$BoT(B (set/get)
  
  Il y a deux possibilit$BqT(B.  Dans tous les cas, vous devez impl$BqN(Benter toutes les m$BqU(Bhodes.
  
  * La m$BqU(Bhode n'a qu'un seul argument
  
   set: hoge=(a)             # retourne a.
        set_hoge(a)          # retourne self.
   get: hoge                 # retourne la valeur de hoge.
  
  * la m$BqU(Bhode 2 ou plusieurs arguments
  
   set: set_fuga(a, b)       # retourne self.
   get: fuga                 # pas d'arguments, retourne la valeur de fuga.
        get_fuga(a, b)       # avec arguments, retourne la valeur de fuga.
  
  == M$BqU(Bhodes is_*
  Renommez-les en *?.  Par exemple pour is_foo, il convient mieux d'utiliser la place foo?.  C'est beaucoup plus naturel en Ruby.
  
  == M$BqU(Bhodes has_*, use_*
  Si la m$BqU(Bhode retourne un gboolean, rajoutez simplement '?' la fin de son nom.
  
    has_foo -> has_foo?
    use_bar -> use_bar?
  
  == M$BqU(Bhodes set/get_has_*, set/get_use_*
  
    get_has_foo -> has_foo?
    set_has_foo -> has_foo=(a), set_has_foo(a)
    get_use_foo -> use_foo?
    set_use_foo -> use_foo=(a), set_use_foo(a)
  
  == classname_foo_set_bar, classname_foo_get_bar ...
  Il existe des m$BqU(Bhodes dont le nom ne commence pas par set/get/is/has/use.  Nous pensons que ces m$BqU(Bhodes n'ont pas $BqU(Bnomm$BqF(Bs correctement (le nom est tr$BoT(B important).  Toutefois, nous ne les convertissons pas comme ceci:
  
    gtk_classname_foo_set_bar -> Gtk::ClassName#foo_set_bar
    gtk_classname_foo_get_bar -> Gtk::ClassName#foo_get_bar
    gtk_classname_foo_get_bar -> Gtk::ClassName#foo_get_bar?
    gtk_classname_foo_is_bar -> Gtk::ClassName#foo_is_bar?
    gtk_classname_foo_has_bar -> Gtk::ClassName#foo_has_bar?
    gtk_classname_foo_use_bar -> Gtk::ClassName#foo_use_bar?
  
  == M$BqU(Bhodes d'instances qui retournent void
  Retournez self.
  
  == initialize
  Retournez Qnil.
  
  == M$BqU(Bhodes de classes ou fonctions de modules qui retournent void
  Retournez Qnil.
  
  == M$BqU(Bhodes dites destructive (qui modifient l'objet en lui-m$BsN(Be)
  G$BqOqS(Balement, le nom des m$BqU(Bhodes destructives se termine par '!'.  Par exemple, Gtk::TreeIter#first!, #next!, Gtk::TreePath#prev!, #next!, #up!, #down!.
  
  (*) Notez que '!' plutot une connotation "dangereuse" que "destructive", qui sert alerter le programmeur.
  
  == M$BqU(Bhodes *_foreach
  Renommez-les en 'each'.
  
  == M$BqU(Bhodes list_foos
  Si une m$BqU(Bhode retourne un tableau dont le contenu est initialispartir d'une structure GList ou GSList, alors renommez-la en 'foos'.
  
  == M$BqU(Bhodes qui retournent une valeur bool$BqF(Bnne
  Ajoutez '?' la fin du nom de la m$BqU(Bhode (par exemple, foo -> foo?) en fonction de ce dernier.  Certaines m$BqU(Bhodes insistent plus sur une action particuli$BoS(Be effectuer que sur le renvoi d'une valeur de status.
  
  Exemple:
  
    do_something -> do_something  # Fait quelque chose, et retourne un bool$BqB(Bn.
    some_status -> some_status?   # Retourne simplement un bool$BqB(Bn.
  
  == Constantes
  Quelquefois d$BqG(Binir des constantes peut se r$BqWqM(Ber difficile.  Dans le doute, demandez sur la liste de diffusion.
  
  * Si les constantes sont li$BqT(B un objet (classe ou module) particulier, renommez-les alors d'une fa$BmP(Bn significative.
    Par exemple, dans le cas de GtkDialog:
  
        GtkDialogFlags
           GTK_DIALOG_MODAL               -> Gtk::Dialog::MODAL
           GTK_DIALOG_DESTROY_WITH_PARENT -> Gtk::Dialog::DESTROY_WITH_PARENT
           GTK_DIALOG_NO_SEPARATOR        -> Gtk::Dialog::NO_SEPARATOR
    
        GtkResponseType
           GTK_RESPONSE_NONE     ->  Gtk::Dialog::RESPONSE_NONE
           GTK_RESPONSE_REJECT   ->  Gtk::Dialog::RESPONSE_REJECT
           GTK_RESPONSE_ACCEPT   ->  Gtk::Dialog::RESPONSE_ACCEPT
  
  * Si les constantes sont radicalement ind$BqQ(Bendantes d'un objet particulier (((*'Standard Enumerations'*))):
  
      GTK_FOO_BAR -> Gtk::FOO_BAR
  
  == Classes, Modules et Methodes
  En temps normal, une classe Ruby encapsule une structure C.  Si il n'existe pas de structure C, vous devriez alors envisager d'impl$BqN(Benter le groupe comme un module Ruby.
  
  Il existe $BqH(Balement quelques exceptions, c'est-dire des m$BqU(Bhodes dont le premier argument est une instance d'une autre classe.  Dans ce cas, impl$BqN(Bentez alors la m$BqU(Bhode dans l'autre classe.
  
  == Plusieurs m$BqU(Bhodes avec la m$BsN(Be signification, mais qui acceptent des arguments diff$BqS(Bents
  Combinez-les dans une seule m$BqU(Bhode.
  
  == Divers
  * Vous pouvez ajouter des m$BqU(Bhodes qui n'existent pas dans la biblioth$BoR(Bue C si vous le d$BqT(Birez.
  * Vous pouvez changer le nom de certaines fonctions de la biblioth$BoR(Bue C, si vous pensez que la m$BqU(Bhode para$B{U(Bra plus naturelle dans Ruby.
  
  Ces choses ne sont pas interdites, car Ruby-GNOME2 n'est pas qu'un simple "emballage" GNOME pour Ruby.
  Mais proposez toutefois votre id$BqF(B sur la liste de diffusion.
  
  === ChangeLog
  :2003-10-05 Ajout de la r$BoH(Ble list_foos ((<Masao|URL:../hiki.cgi?Masao>))
  
  Page traduite de l'anglais par Laurent Sansonetti.





ruby-gnome2-cvs メーリングリストの案内
Back to archive index