Domanda

Per un file contenente la data classe, SomeCoolClass, quale sarebbe il nome file corretto o standard?

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

o qualche altra variante?

Ho notato nella Ruby stdlib, vengono utilizzate le versioni 1, 2 e 3.

È stato utile?

Soluzione

Con solo Ruby (ovvero non Rails), la denominazione è solo una convenzione. In Rails il convenzione sull'uso dei caratteri di sottolineatura è necessario (quasi).

Penso che la convenzione # 2 lowercase_and_underscore.rb sia più comune e sembri piuttosto buona, sebbene un articolo Qui dice lowercasenounderscore.rb è la convenzione Ruby.

Scegli quale convenzione sia più comune o quale ti piace di più. La cosa più importante è essere coerenti all'interno di un progetto .

Altri suggerimenti

Vorrei raccomandare caratteri minuscoli con caratteri di sottolineatura (numero 2 nella tua domanda). È vero che questo schema di denominazione è la convenzione in Rails e non è necessario nei progetti non Rails. Tuttavia, mi atterrei comunque alla convenzione di Rails perché la maggior parte dei programmatori di Ruby probabilmente usano Ruby esclusivamente per Rails.

Personalmente penso che il trattino come separatore di parole garantisca la massima leggibilità e tipizzazione in generale, quindi raccomando che, ove possibile (in alcuni contesti, un trattino non può essere usato, come negli identificatori nella maggior parte delle lingue). Una cosa importante da tenere a mente è che lo schema che scegli avrà un rapporto con la dichiarazione obbligatoria che gli utenti useranno con la tua lib e che vuoi evitare di avere un nome gemma diverso dal nome della biblioteca .

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

# gem install MyCoolLib
require 'my_cool_lib'
Buono
# gem install my_cool_lib
require 'my_cool_lib'

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

Sfortunatamente, una manciata di librerie viola questa semplice regola di usabilità. Non essere una di quelle biblioteche. :)

my-proj
├── README
├── lib
│   └── some_cool_class.rb
└── test
    └── some_cool_class_test.rb
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top