C言語アウトプット #3 〜ソースコードを読み解くコツとは!?〜
こんにちは、クロダです。
改めてになりますが、わたしは昨年度末まで教師をしており、4月からは未経験でプログラマーとして働いています。
仕事をしていると、何千行もあるソースコードを見ることがあります。
しかし、IT業界の先輩方はマンガでも読むかのように読み解いていきます。
「これは絶対に何かコツがある!!」
と思い、先日上司に尋ねてみました。
そのときのことを今回はアウトプットし、自らのスキルアップにつなげたいと思います。
また、同じような初心者プログラマーの人の助けに少しでもなれば、幸いです。
コードを読み解くコツ
☆ 変数はとばす
何千行にも及ぶコードにもなると、大量の変数指定がありますよね。
わたしは最初、
「正確に読み解くために、この変数指定から理解していこう!」
と、変数から構造体をたどるなどしていました。
しかし、なかなかに時間がかかるのと、わからない部分も多くありました。
そもそも上司は変数から読み解いているのか。
まずはどのように見ていくのか尋ねてみました。
上司「えーっと、まずはこの辺りは全部とばすでしょ~」
わたし「!?」
思わず大きな声が出ました。
上司は変数指定を全てとばしていました。
実際に関数の中で何をしているかは変数からはわからないのと、変数はデータを格納する箱なのであって、すべて同じようなものということが理由でした。
その先をたどるなかで、徐々にわかっていくものだそうで。
なるほど。
☆ 英単語から推測する
ソースコードには、見たことがあるようなないような英単語がいっぱいありますよね。単語がくっついたものや省略されたものまで。
ある関数を見て、それがどのような動きをするのか、どんなにたどってもわからなかったことがあります。上司に助けを求めました。その瞬間、
上司「あー、これは~をしているんやね。」
わたし「!?」
関数の中身も見ていないのに、一瞬で読み解いていました。
どうやら、関数名の英単語から、どのような中身かある程度推測ができるそうで、特によく見るような関数名だと、中身を見なくてもわかるそうです。省略されていても同様に。
PCの仕組みを理解しているからなおのこと、単語の組み合わせでわかるようです。
すごい。
☆ 一つ一つを細かく見ない
変数はとばして、いざ関数を見つけたときに、
「よし、細かく見ていこう!」とすると、それすらもまずは必要ないと言われました。
関数の中身もだいたい何をしているのかは見るところが決まっているそうで、例えばif文やwhile文を探したりして
「だいたいこのあたりでこの動きをして、この値を返すんだなぁ」
ぐらいでいいそうです。
あとはデバッグで行き詰ったら細かく見たらいいとのこと。
確かに何千行もあったら、何をしているかがおおまかにでもわかれば全体が見えてくるのかと納得。
☆ 最後は経験も…
ここまでのことで、コードの読み方がかなり理解できたと感じましたが、やはり経験の面もあるとのことでした。
例えば関数名からの推測は、「以前にも似た関数を見ていたから」だとか、変数も、その名前から何のための変数なのかがわかったりだとか、プログラムの流れがわかってきたときに、「この流れならこのような関数がここにあるはずだ」とか…。
それを聞いて、やはり多くのソースコードを見ることは必要なのだと改めて感じました。
日々学習あるのみ!
今後のモチベーションの向上にもつながりました。
上司に質問することも、そのたび自分が成長していくのを感じて楽しくなってきました。
また、新たな気づきがあれば投稿していきます。
ありがとうございました。
この記事が気に入ったらサポートをしてみませんか?