2008-10-21 9 views
42

Para un archivo que contiene la clase determinada, SomeCoolClass, ¿cuál sería el nombre de archivo correcto o estándar?Convenciones de nomenclatura de archivos estándar en Ruby

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

o alguna otra variación?

Me di cuenta en el Ruby stdlib, las versiones 1, 2 y 3 se utilizan.

Respuesta

37

Con tan solo Ruby (es decir, no en Rieles), nombrar es solo una convención. En Rails el convention de usar guiones bajos es necesario (casi).

Creo que la convención # 2 lowercase_and_underscore.rb es más común y se ve bastante bien, aunque un artículo Here dice lowercasenounderscore.rb es la convención de Ruby.

Escoge, cualquiera que sea la convención es más común o cualquiera que te guste más. Lo más importante es ser coherente dentro de un proyecto.

+6

La palabra de rubí Gems es utilizar subrayados (aka caja de corte o serpientes) para nombres de archivo y los nombres de la gema: [nomenclatura coherente] (http://guides.rubygems.org/patterns/ # consistente-naming). – stevenharman

+9

Ese artículo que citó para 'lowercasenounderscore.rb' es antiguo y no he visto a nadie más alegando eso como la convención. Underscores es casi universalmente el estándar. – SFEley

7

Recomendaría caracteres en minúsculas con guiones bajos (número 2 en su pregunta). Es cierto que este esquema de nombres es la convención en Rails y no es necesario en proyectos que no sean de Rails. Sin embargo, todavía me apegaré a la convención de Rails porque la mayoría de los programadores de Ruby probablemente estén usando Ruby exclusivamente para Rails de todos modos.

+0

No solo eso, sino que los guiones bajos son la convención para la mayoría de las herramientas de prueba, las interfaces de complementos, etc. (Por ejemplo, si tiene un archivo 'foo.rb' y un archivo de especificación en' spec/foo_spec.rb', Autotest ejecutará el último cuando cambie el anterior, y muchos editores de texto tendrán accesos directos para saltar entre los dos). – SFEley

4

Personalmente, creo que el guión como separador de palabras permite una legibilidad y tipabilidad máximas en general, por lo que recomiendo que, cuando sea posible (en algunos contextos, no se pueda usar un guión, como identificadores en la mayoría de los idiomas). Una cosa importante que hay que tener en cuenta es que el esquema que elijas influirá en la declaración obligatoria que los usuarios utilizarán con tu lib, y quieres que evite tener un nombre de gema diferente al nombre de la biblioteca.

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

# gem install MyCoolLib 
require 'my_cool_lib' 
Buena
# gem install my_cool_lib 
require 'my_cool_lib' 

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

Por desgracia, un pequeño puñado de bibliotecas violan esta regla sencilla usabilidad. No seas una de esas bibliotecas. :)

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

Gemfile también va al nivel superior si usa Bundler o Rails –

Cuestiones relacionadas