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