Railsエンジニアが業務で使うことのある命名規則のスタイルについて。

はじめに

業務でたまに使えるかと考えても、その度になんだっけと検索したりするので整理した。

命名規則とは

命名規則(めいめいきそく)とは、変数名やメソッド名となどの文字列を決定するためのルールを定めたもの。
ソースコードの可読性や視認性の向上、プログラミング効率およびメンテナンス性の改善などを目的としている。

命名規則_(プログラミング)

https://ja.wikipedia.org/wiki/命名規則_(プログラミング)

変換方法について

stdout.blog という文字列を、命名規則通りに変換する方法としてまとめている。
記号は変換されないので、 #parameterize を使ってハイフンに変換してる。

命名規則スタイル

スネークケース
stdout_blog

Rubyの場合は、メソッド名や変数名などがこのスタイルになる。

"stdout.blog".parameterize.underscore

アッパーキャメルケース(パスカルケース)
StdoutBlog

クラス名やモジュール名がこのスタイルになる。

"stdout.blog".parameterize.underscore.camelize

ローワーキャメルケース
stdoutBlog

JSと関わるところで使うかもしれない。

"stdout.blog".parameterize.underscore.camelize(:lower)

チェインケース(ケバブケース)
stdout-blog

CSSのクラス名で使ったりはする。

"stdout.blog".parameterize
"stdout_blog".dasherize

その他

定数に変換
STDOUT_BLOG

STDOUT_BLOG = "hoge"
"stdout.blog".parameterize.underscore.upcase.constantize

クラス名に変換
StdoutBlog

#camelize より明示的に書ける。

"stdout.blog".parameterize.underscore.classify

他にも、 #pluralize #singularize #titleize #demodulize #tableize #humanize #foreign_key などがある。

ActiveSupport::Inflector

https://github.com/wycats/rails-api/blob/master/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb