「コードを読む」ということと「人のコードをコピーする」ということ

モジュールやフレームワークを利用するときなどに、「コードを読む」っていうことをしますよね。私はコードを読んでも理解の度合いが先輩とかなり差があると感じ、この理由を突き止めるべく、先輩に読み方を聞いてみました。「コードを読む」ということに2つのパターンがあって、慣れないうちは意識して使い分けないといけないそうです。

■コードを読むということ
(1)モジュールやフレームワークが一体何をしているコードなのか読むときの読む
目的:「何をしているところか」という処理内容を理解すること
読み方例),
・セッションファイルに値を入れて更新している
・tokenを時間とIDを基に発行している

(2)モジュールやフレームワークを使ってコードを書く時の読む
目的:「渡さなければならない引数はなにか、戻ってくるものはなにか(値やコンテキストなど)」を知ること
読み方例),
・セッションIDとタイムスタンプを渡すと、is_success=1が返ってくる
・タイムスタンプとログインIDを渡すと、tokenが{token=>'xxxxxxxxxxxx'}(ハッシュのリファレンス)で返ってくる

勉強のためにモジュールのコードなどを読む時も、(1)の読み方だそうです。(1)と(2)の違いは、(1)で概要を把握し(2)で厳密に理解するということだそうです。もう少し具体的に言うと、(1)でどのメソッドや関数で何ができるかを把握して、(2)で実際の使い方を知る、ということだそう。


この読み分けは、初めてのモジュールやフレームワークを使うときにも意識してやると効果的とのこと。
初めてのフレームワークやモジュールを使ってコードを書くときのポイント - WEB開発初心者の成長記録


私は、読むという行為が常に(2)になっていました。そりゃ、理解度も低ければ理解するのも遅いわね、と納得した次第であります。
そして、

■人のコードをコピーしてきて使うということ
=そのコードを書いた人の考え方をコピーしてくる、ということ

だそう。
先輩って、知識の宝庫ですね。聞きすぎるといけないし、聞かなすぎるとこれまたいけないし、この加減が難しいです。