1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railチュートリアルの感想(9.1.1 記憶トークンと暗号化まで)

Posted at

Ruby on Railsチュートリアルを9章の途中まで進めています。
ここまでで特に疑問になった点を記事にしました。

いろいろな記述方法を紹介している

「9.1.1 記憶トークンと暗号化」ではクラスメソッドの書き方が紹介されます。

class Hoge
  def Hoge.fuga
    # なにかする
  end
end

演習問題では更に2つの記述方法が紹介されます。

class Hoge
  def self.fuga
    # なにかする
  end
end
class Hoge
  class << self
    def fuga
      # なにかする
    end
  end
end

これらはどれも同じ動作をする記述として紹介されていますが、
「どの記述が正解なのか」はチュートリアルの中では明言されていません。

Rubyのコーディング規約

では、Rubyの開発現場ではどうやってコードを書いているのか。
例えば、コーディング規約はあるのか。
ぐぐってみると、公式としてのコーディング規約は存在しないようです。

また、この記事で述べられてますが、まつもとゆきひろ氏はコーディング規約には否定的なようです。
https://blog-ja.sideci.com/entry/2018/03/02/120636

まつもと : コーディング規約を決めてくれないと仕事できないよ!っていうような人もいて、「君、本当に仕事してる?(笑)それは自分で考えようよ」と思っちゃう。ただ、インデントの幅とかスペースかタブかみたいな話は、修正するとdiffが大量に出てくるのでそれは事前に考えておいたほうがいいと思いますね。

氏のブログの古い記事にはコーディングスタイルに触れたものがありました。
これが受け継がれて各開発現場のコーディング規約の基になっているのではと思います。
https://matz.rubyist.net/20041006.html
また、この記事には当時の勤務先だった会社のコーディング規約へのリンクがあり、
その規約ではクラスメソッドには self. を用いるルールになっていました。
一例として参考にできそうです。
https://shugo.net/ruby-codeconv/codeconv.html

まとめ

チュートリアルではWebサイトを作成しながら、Rubyの記法を少しづつ紹介しています。
それらは開発現場によっては禁じられていたり、人によって書き方が違っているかも知れません。
柔軟に対応できるように、チュートリアルを進めながらRubyの言語仕様を細かく把握しておく必要があると思いました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?