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