2008-10-21 9 views
42

Für eine Datei mit der angegebenen Klasse, SomeCoolClass, was wäre der richtige oder Standard-Dateiname?Standard-Namenskonventionen für Dateien in Ruby

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

oder eine andere Variante?

Ich bemerkte in der Ruby Stdlib, Versionen 1, 2 und 3 verwendet werden.

Antwort

37

Mit nur Ruby (d. H. Nicht Rails), ist die Benennung nur eine Konvention. In Rails ist die convention Verwendung von Unterstrichen notwendig (fast).

Ich denke Convention # 2 lowercase_and_underscore.rb ist häufiger und sieht ziemlich gut aus, obwohl ein Artikel Here sagt lowercasenounderscore.rb ist die Ruby-Konvention.

Wählen Sie entweder welche Konvention ist häufiger oder welche immer Sie mehr mögen. Das Wichtigste ist, in einem Projekt konsistent zu sein.

+6

Das Wort von Ruby Gems ist Unterstrichen zu verwenden (auch bekannt als schachtel Schneide- oder Schlangen) für Dateinamen und Gem Namen: [Konsistente Naming] (http://guides.rubygems.org/patterns/ # konsistente Benennung). – stevenharman

+9

Dieser Artikel, den du für 'lowcasennoundercorer.rb' zitierst, ist alt und ich habe niemanden gesehen, der das als Konvention behauptet. Underscores ist fast überall der Standard. – SFEley

7

Ich würde Kleinbuchstaben mit Unterstrichen (Nummer 2 in Ihrer Frage) empfehlen. Es stimmt, dass dieses Benennungsschema die Konvention in Rails ist und in Nicht-Rails-Projekten nicht erforderlich ist. Trotzdem würde ich mich weiterhin an die Rails-Konvention halten, da die meisten Ruby-Programmierer Ruby ohnehin ausschließlich für Rails verwenden.

+0

Nicht nur das, sondern Unterstriche sind auch die Konvention für die meisten Test-Tools, Plugin-Schnittstellen usw.. (Wenn Sie zum Beispiel eine Datei 'foo.rb' und eine Spezifikationsdatei unter' spec/foo_spec.rb' haben, wird Autotest letztere ausführen, wenn sich die erste ändert, und viele Texteditoren haben Verknüpfungen, um zwischen den beiden zu springen.) – SFEley

4

Ich persönlich denke, der Bindestrich als Worttrenner sorgt für maximale Lesbarkeit und Tippbarkeit im Allgemeinen, also empfehle ich, wo möglich (in einigen Kontexten kann ein Bindestrich nicht verwendet werden, wie in Kennungen in den meisten Sprachen). Eine wichtige Sache zu beachten ist, dass das Schema, das Sie auswählen, eine Auswirkung auf die require-Anweisung haben wird, die Benutzer mit Ihrer lib verwenden, und Sie möchten vermeiden, einen anderen Gem-Namen als Bibliotheksname zu haben.

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

# gem install MyCoolLib 
require 'my_cool_lib' 
Gut
# gem install my_cool_lib 
require 'my_cool_lib' 

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

Leider eine kleine Handvoll von Bibliotheken verletzen diese einfache Bedienbarkeit Regel. Sei nicht eine dieser Bibliotheken. :)

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

Gemfile geht auch auf die oberste Ebene, wenn Bundler oder Rails verwendet werden –