今日もヤバさをI/O中。

(物理的)大型エンジニアのブログです。基本的に何かが足りません。

ソースコードリーディングはいいぞ

この記事は Willgate Advent Calendar 2018 - Qiita 2 日目の記事です。

皆さんソースコードリーディングしていますか?お恥ずかしながら、僕は最近読むようになりました!

実際やってみると、ソースコードリーディングによって得るものが多いことを知り、今では読書感覚でフレームワークやライブラリのソースコードを読むことも…

今回は、ソースコードリーディングによって何が得られるのかについて書きたいと思います!

結論:ソースコードリーディングはアウトプットするチャンスの塊

何故ソースコードリーディングが良いのか。それは、ソースコードリーディングがアウトプットに繋がりやすいからだと僕は思います。

僕自身、アウトプットのきっかけとなっているのがソースコードリーディングによるものが一番多いです。

チャンスその1:業務で活かせる

ライブラリやフレームワークなどのソースコードを読んでいくと、細かい挙動まで処理を把握することができます。

すると、「思わぬ挙動によってバグが発生してしまった!」なんていうことを防ぐことができます。どんどん読み進んでいけば、「あのライブラリ・フレームワークについてならこの人に聞くと良いよ」という評価を得ることもできるかも…!

特にフレームワークソースコードを読むと、徐々に「良い設計とはなんなのか?」ということも学べるので、設計の勉強にもなります。

チャンスその2:ブログ記事のネタになる

ソースコードを読んだ結果わかったことをブログに書くだけで、立派なアウトプットの 1 つとなります。

僕も Laravel の Collection メソッドについて記事を書いていますが、1 メソッドだけでもなかなかの分量になります。

参考; cocoeyes02.hatenadiary.jp

チャンスその3:OSS に参加できる

ソースコードを読み進めていくと、「あれ? 何故ここでは、こんな処理が無いのだろう?」「あれ、ここにエラーハンドリングが無いのは何故だろう?」など疑問点が出てくることがあります。それは、思想によるものだったり、単なる考慮漏れだったり…様々な理由があります。

そんな時、もちろん身近で詳しい人に聞くのもありですが、issue や pull request を立てるというのも手です!

僕自身もソースコードを読んでいて、疑問に思ったことや思ったことを何回か issue に立てています。

github.com

github.com

issue や pull request を立てると GitHub では 1 contributionとして扱われるので、commit 以外でもcontributionの草を生やしていくことができます。

最後に

今回あげたアウトプットチャンスは、あくまで一例です。他にも LT 会やセッションの登壇ネタになったり、読み進めていけば執筆のチャンス…なんていうこともあるかもしれません。

「最近アウトプットしていないなあ…」と悩んでいる人は、ぜひソースコードリーディングをお勧めします!