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.