ソースコードが読めない主要因
「あーーーー!!!、読んでもソースコードわからないよ!頭に入ってこない!この部分はどのように動いているんだ!??」みたいな状態になったときは、まず、なぜソースコードがわからないのかを把握しましょう。
コードリーディングにつまずく段階があります。多分。。。
・文法
・概念・フレームワーク
・暗黙の作法(ルール)
・業務知識・担当機能への理解
・理解はできるけど記憶できない(読んでるうちに内容を忘れる)
上の図だと、自分はどのあたりでつまずいているのかを把握して、それを補うように対策をやってみればよいのではないでしょうか?
読みにくいソースコードの状況・条件とは
ソースコードが読めない主要因について、もう少し掘り下げてみます。(読む必要は無いです)
この記事を読んている人は、今までにソースコードを読めなくて困った経験がある人だと思いますが、読みにくいソースコードの条件、あるいはソースコードが読めなくて困る状況とは、どんなときか具体例を一つあげておきたいと思います。
例えば、読みにくいソースコードの例・状況としては、「決済の結果を、ユーザーが求める形に整えて、明細書に出力する」ソースコードを読むことを想像してみます。
このときの状況は下記です。
・自分の知らない文法が使用されている
・自分は上記の業務で実現したいことの知識がまるでない状態
・変数が処理の先頭で20個も定義されている。しかも、1000行に渡って散らばっていて、変数の値が色んな場所で書き換わっている。業務知識がないから、変数が表すデータが現実でなんなのかわからない
・if文で1000行近くが大きく囲まれている
for文が5つ出てくる。しかも、それぞれのfor文の階層も5階層もある
(ここまでひどいソースコードに出会ったことがないですが、)上記の状況を想像すれば、「読みにくい」と感じるはずです。
「読みにくい」と感じる理由は、プログラムを読むときに、下記の条件があるということでしょう。
・知識が足らず処理をあいまいに想像するしかない箇所が出てくる(=文法知識不)
・記憶しておくべき実行状態が多い事(=if、forなどの処理構造、変数のデータ)
・結局のところ、現実世界でやりたいこととソースコードの処理の結びつきが想像できない(=現実世界の事象と、処理構造、変数が結びつかない)
「読みにくさ」は、読むときにわからないこと(知識不足)、覚えておくべきこと(脳内メモリーによる一時的記憶)が多ければ多いほど、二次関数的に増していきます。
そして、限界を超えると、「読めない」になります。
やる気を失います。
コードリーディングをするには、わらかないこと、覚えておくべきことを減らすようにして、自分の制御範囲内に留めるのが大切だと思います。