読者です 読者をやめる 読者になる 読者になる

とんちむ日記

RubyとJavaScriptと猫が好きです

衝撃的な一言をベテランエンジニア()から聞いた

いえね、大した話ではないんですよ。ただただ、衝撃だったんですよ。

僕の前の席にいるベテランのフリーランスエンジニアさん(10年くらいエンジニアやってるらしい)この方は経験年数の割に全然知識がありません。

もちろん、最近の業界の動向を逐一チェックしとけなんて自分でも出来ていないことをベテランだからといって期待しているわけではありません。

ある時、ベテランさんが僕に現在実装中のプログラムについて相談してきました(なぜか僕が質問される側です)。

class << self ってどういう意味ですか?」

まぁ、これに関してはベテランさんはRubyの経験があまりないので仕方ないと思います。

僕は特異クラスだとかなんだとかを説明するとややこしいので以下の例で言うと・・

class Foo
  def method_a
  end

  class << self
    def method_b
    end
  end
end

この場合method_aインスタンスメソッドとなり、method_bはクラスメソッド(雑に言うとJavaで言うstaticメソッド)になるということを説明しました。まぁRubyやってる人には今更ですね。

その説明の後に、タイトルの衝撃的な一言をベテランさんが発します。

インスタンスメソッドと、クラスメソッドってどう使い分けるんですかね??」

(え・・マジか)と心の中で思いました。危うく声に出るところでした・・。 1年目のエンジニアがそれを言うならわかるけれど・・さすがにそれはわかってると思っていた。

10年前でもオブジェクト指向言語はあったはずだし、Javaでも同じようなものはあるし・・。そもそも仕事で使う言語を全く勉強してないんだろうかこの人は・・。

まぁ色々と思いましたが、ざっとインスタンスメソッドとクラスメソッドのそれぞれの違いを説明してあげました。その後さらに衝撃の一言。

「じゃあ、クラスメソッドをできるだけ使った方がいいんですね」

あぁ、これがstaticおじさんというやつなのだろうか・・知らんけど。まぁ僕の説明が悪かったんだきっと。

僕はこのベテランさんのおかげでフリーになってもやっていけそうだという自信だけはすごくつきました。

つーか、これでも僕より報酬いいんだろうなぁ・・。