合同会社モリカワのブログ

森川敬一。CTOとして30年やってきました。集大成としてCTOを増やすという事を目標にやってます。

保存版:人のソースコードを読める様になる3つの方法

自分のソースコードを久しぶりに見直した時、結構な確率でブルーになりますw
なんでこんな書き方をしたのだろう、あの頃の僕は、若かったなぁと反省します。
自分のソースコードも嫌ですが、人のソースコードを読むのは、難しいものです。

昔に書かれたソースを読む難しさ

僕が入社した会社は、製鉄所のシステムを作っていた会社でして、システムは1970年とかから構築されていて、超昔に書かれたソースコードが沢山残ってました。書かれた後に何年も改修を重ねられた様なシステムです。
そのシステムのソースコードを読むのは難解です。小さな罠も仕込まれています。変数が急に違う意図で使われ始めたり、沢山の人の違う意図が入り組んでます。お陰様で、ここで人のソースコードを読むのを鍛えられました。

1.実際のデータをイメージして読む

ポイントはあまり細かい部分を気にしない事です。関係ない所まで、考えていたたら時間が掛かるし混乱します。木をみずに森をみます。
そして、対象とする部分を、実際のデータを具体的にイメージしながら読むことです。そのデータが流れる部分に沿ってソースコードを読んでいくと具体的にソースコードが見える様になると思います。
この時、自分のデータの流れ以外の部分も気にはなるのですが、一旦、そこは目をつぶってブラックボックス化してソースコードを読んでいきます。これで全体をブロックで把握する事も出来ます。

2.オープンソースを読む

人のソースコードを読む中でも、読みやすいと思うのがオープンソースだと思います。
何故ならオープンソースは、
・優秀なエンジニアが書いている
・良くないコードは、修正される
・バグも改修される
・仕様が分かっている
比較的に読みやすいし、一番、読みやすいのは、仕様がはっきりしているからです。オープンソースにあるものは、仕様が大体明確で、これなんでだろうがありません。RFCに沿った作法であれば、ソースも読みやすいです。
オープンソースを読めば、レベルの高いソースコードの高い書き方も習得出来るし、そのオープンソースに関しての知識レベルも上がるし一石二鳥です。是非、怖がらずに面倒くさがらずにチャレンジしてください。

3.本を読んだり、ブログを書いたり

本って最初に目次があります。目次って素晴らしくわかりやすく本をサマリーした部分です。よく出来た本は、目次が素晴らしくポイントをついてます。目次を見るだけでも本の概要がわかります。目次から気になる部分だけ読んでいくことで時間の節約にも繋がります。
この目次ってプログラムでの関数名やモージュル名の抽象化の似てます。
そして、ブログを書くことも自分の情報を整理してアウトプットすることも重要ですが、抽象化したタイトルや段落つけ等わかりやすくまとめる勉強になります。
これを続けると、人のソースコードを見て、意図を計り知りながらポイントだけを理解するのが上手になります。

最後に

以上、人のソースコードを読める様になる3つの方法でした。
他人のソースコードには罠が沢山ありますが、勉強になる部分も沢山あります。良いソースコードは学びになりますが、悪いソースコードも悪い事例として学びになります。
沢山の人のソースコードを読んで、生産性をあげて、品質をあげながら、自身のコーディングレベルをあげていきましょう。

  •