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

Zurück zum Archiv-Index

ruby-****@sourc***** ruby-****@sourc*****
2003年 8月 15日 (金) 22:07:07 JST


-------------------------
REMOTE_ADDR = 217.117.54.155
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/fr?Conventions+et+regles+de+nommage
-------------------------
= Conventions et r鑒les de nommage
Vous devez vous conformer ce document si vous impl駑entez un composant pour Ruby-GNOME2.  Comme ce document n'est pas exhaustif, n'h駸itez-pas dans le doute poser des questions sur la liste de diffusion.

== Noms des biblioth鑷ues
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馗essaire et automatiquement chargpar les autres biblioth鑷ues)
* Ruby/Libglade - Module libglade 

Vous pouvez 馮alement parler de Ruby/GNOME2, Ruby/GTK2, si vous devez faire la distinction avec la premi鑽e g駭駻ation Ruby-GNOME (qui utilisait Gtk+1.2).

== M騁hodes d'acc鑚 (set/get)

Il y a deux possibilit駸.  Dans tous les cas, vous devez impl駑enter toutes les m騁hodes.

* La m騁hode 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騁hode 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騁hodes 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騁hodes has_*, use_*
Si la m騁hode retourne un gboolean, rajoutez simplement '?' la fin de son nom.

  has_foo -> has_foo?
  use_bar -> use_bar?

== M騁hodes 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騁hodes dont le nom ne commence pas par set/get/is/has/use.  Nous pensons que ces m騁hodes n'ont pas 騁nomm馥s correctement (le nom est tr鑚 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騁hodes d'instances qui retournent void
Retournez self.

== initialize
Retournez Qnil.

== M騁hodes de classes ou fonctions de modules qui retournent void
Retournez Qnil.

== M騁hodes dites destructive (qui modifient l'objet en lui-m麥e)
G駭駻alement, le nom des m騁hodes 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騁hodes *_foreach
Renommez-les en 'each'.

== M騁hodes qui retournent une valeur bool馥nne
Ajoutez '?' la fin du nom de la m騁hode (par exemple, foo -> foo?) en fonction de ce dernier.  Certaines m騁hodes insistent plus sur une action particuli鑽e effectuer que sur le renvoi d'une valeur de status.

Exemple:

  do_something -> do_something  # Fait quelque chose, et retourne un bool饌n.
  some_status -> some_status?   # Retourne simplement un bool饌n.

== Constantes
Quelques fois d馭inir des constantes peut se r騅駘er difficile.  Dans le doute, demandez sur la liste de diffusion.

* Abolissez les modules sp馗ialement cr馥s pour contenir des constantes.  Par exemple: Gtk::ItemFactory::Constants.
* Si les constantes sont li駸 un objet (classe ou module) particulier, renommez-les alors d'une fa輟n 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駱endantes 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駑enter le groupe comme un module Ruby.

Il existe 馮alement quelques exceptions, c'est-dire des m騁hodes dont le premier argument est une instance d'une autre classe.  Dans ce cas, impl駑entez alors la m騁hode dans l'autre classe.

== Plusieurs m騁hodes avec la m麥e signification, mais qui acceptent des arguments diff駻ents
Combinez-les dans une seule m騁hode.

== Divers
* Vous pouvez ajouter des m騁hodes qui n'existent pas dans la biblioth鑷ue C si vous le d駸irez.
* Vous pouvez changer le nom de certaines fonctions de la biblioth鑷ue C, si vous pensez que la m騁hode para〓ra 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馥 sur la liste de diffusion.

- ((<Masao|URL:../hiki.cgi?Masao>))

Page traduite de l'anglais par Laurent Sansonetti.





ruby-gnome2-cvs メーリングリストの案内
Zurück zum Archiv-Index