Pergunta

Para um arquivo que contém a classe dada, SomeCoolClass, qual seria o nome do arquivo próprio ou padrão?

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

ou alguma outra variação?

Eu observei no stdlib Ruby, versões 1, 2 e 3 são usados.

Foi útil?

Solução

Com apenas Rubi (ou seja, não Rails), nomenclatura é apenas uma convenção. Em Rails o convenção da usando sublinhados é necessário (quase).

Eu acho convenção nº 2 lowercase_and_underscore.rb é mais comum e parece muito bom, embora um artigo Aqui diz lowercasenounderscore.rb é a convenção ruby.

Escolha qualquer que nunca convenção é mais comum ou que sempre que você gosta mais. A coisa mais importante é ser consistente dentro de um projeto .

Outras dicas

Eu recomendaria caracteres minúsculos com sublinhados (número 2 na sua pergunta). É verdade que este esquema de nomenclatura é a convenção em Rails e não é necessário em projetos não-Rails. No entanto, eu ainda iria ficar com a convenção Rails porque a maioria dos programadores Ruby provavelmente estão usando Ruby exclusivamente para Rails de qualquer maneira.

Eu pessoalmente acho que o hífen como marcas de separação palavra para facilitar a leitura máxima e typability em geral, então eu recomendo que, quando possível (em alguns contextos, um hífen não pode ser usado, como em identificadores na maioria dos idiomas). Uma coisa importante a ter em mente é que o esquema que você escolher terá um impacto sobre a declaração exigem que os usuários vão usar com o seu lib, e você quer evitar ter um nome gem diferente do nome da biblioteca .

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

# gem install MyCoolLib
require 'my_cool_lib'
Boa
# gem install my_cool_lib
require 'my_cool_lib'

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

Infelizmente, um pequeno punhado de bibliotecas violar esta regra usabilidade simples. Não seja uma dessas bibliotecas. :)

my-proj
├── README
├── lib
│   └── some_cool_class.rb
└── test
    └── some_cool_class_test.rb
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top