Conventions de dénomination de fichier standard dans Ruby

Pour un fichier contenant la classe donnée, SomeCoolClass, quel serait le nom de fichier approprié ou standard?

  1. somecoolclass.rb
  2. some_cool_class.rb
  3. certains-cool-class.rb
  4. SomeCoolClass.rb

ou une autre variante?

J’ai remarqué dans le stdlib Ruby, les versions 1, 2 et 3 sont utilisées.

Avec juste Ruby (c’est-à-dire pas Rails), le nommage n’est qu’une convention. Dans Rails, la convention d’utilisation des traits de soulignement est nécessaire (presque).

Je pense que la convention # 2 lowercase_and_underscore.rb est plus courante et semble plutôt bien, même si un article ici dit lowercasenounderscore.rb est la convention Ruby.

Choisissez l’une des conventions les plus courantes ou celles que vous aimez le plus. La chose la plus importante est d’ être cohérent dans un projet .

Je recommande les caractères minuscules avec des tirets bas (numéro 2 dans votre question). Il est vrai que ce schéma de nommage est la convention dans Rails et non nécessaire dans les projets non-Rails. Cependant, je m’en tiendrai toujours à la convention Rails car la plupart des programmeurs Ruby utilisent de toute façon Ruby exclusivement pour Rails.

Personnellement, je pense que le tiret en tant que séparateur de mots offre une lisibilité et une typabilité maximales. Je recommande donc que dans la mesure du possible (dans certains contextes, un tiret ne puisse pas être utilisé, comme dans les identificateurs dans la plupart des langues). Une chose importante à garder à l’esprit est que le schéma que vous choisissez aura une incidence sur la déclaration d’exigence que les utilisateurs utiliseront avec votre lib, et que vous voulez éviter d’avoir un nom de gemme différent de celui de la bibliothèque .

Mal

 # gem install my_cool_lib require 'my-cool-lib' # gem install MyCoolLib require 'my_cool_lib' 

Bien

 # gem install my_cool_lib require 'my_cool_lib' # gem install my-cool-lib require 'my-cool-lib' 

Malheureusement, une poignée de bibliothèques ne respecte pas cette règle d’utilisation simple. Ne soyez pas l’une de ces bibliothèques. 🙂

 my-proj ├── README ├── lib │  └── some_cool_class.rb └── test └── some_cool_class_test.rb