他人が書いたコードを解析する5つのステップ

2014年12月17日に投稿 → に更新 技術

自分が一からコードを書くのと、他人が書いたコードを修正するのとでは、必要なスキルが異なります。

自分で一から書くならば、プログラミング言語の知識があればできますが、他人が書いたコードを修正するには、他人が書いたコードを理解しなければなりません。

プログラミング言語の知識があっても、それがどういう設計思想で作られているかが分からないと、どこで何をやっているプログラムなのかが分かりません。

そこで、他人が書いたコードを解析する5つのステップを紹介します。

1. 全体の構造を把握する

まずは大きな単位、構造を把握します。

ディレクトリ構成を見て、大きな単位でソースコードがどのようにグループ分けされているかを見ます。

次にソースコードのファイル名を見て、どのような機能を持っているかを大雑把に把握します。

これで大まかなプログラム構成が把握できます。

2. 静的解析ツールを使う

続いてプログラム間の関連を調べます。

静的解析ツールというソースコードを解析してクラス図などの静的構造を表す図を出力してくれるソフトウェアがあります。

オブジェクト指向言語であれば、クラス図を見れば、クラス間の関連が分かり、どういう設計思想でプログラムが作られているかが分かります。

Javaだと

  • AmaterasUML
  • The ObjectAid UML Explorer for Eclipse
  • Class Visualizer

などの静的解析ツールがあります。このような静的解析ツールがない言語もあるので、その場合はこのステップをスキップして次に進みます。

3. ソースコードを読む

クラス図でクラスの関連を把握したら、修正したい内容に関連するコードを読んでいきます。

ソースコードを読むだけで、修正方法が分かったら、解析を終了してソースコードの修正に入ります。

4. デバッガでブレークポイント設定してステップ実行する

ソースコードを読んでもよくわからない場合は、ブレークポイントを設定してデバッガでステップ実行してみます。

ステップ実行すると、

  • どういう流れでプログラムが動いているのか
  • 実行途中で変数の値を確認

することができます。これにより、ソースコードを読んだだけでは分からなかったことが分かる場合があります。

5. プログラムを書いた本人に質問する

ステップ実行しても、よくわからない場合は、プログラムを書いた本人に質問します。プログラムを書いた本人なら、そのプログラムを十分に理解しているはずなので、分からなかったことが解決できるはずです。

ただ、この方法はいつでも使えるわけではありません。プロジェクトの要員が入れ替わっていて、そのプログラムを書いた人がいない場合もあります。

また、質問をするのは、答える人の時間を使わせることになるので、できれば自分で解決したいところです。ですから、これは最終手段でありできれば使いたくない手でもあります。

ただ、「一人で長時間取り組んでもわからなかったことが、聞いたら一瞬で分かった」ということもよくあるので、相手の時間を取らせず早めに軽く聞いてみるのも良い手です。

他人のソースコードを読むことで学べることは多い

作業としては自分で一からプログラムを組んでいく方が楽しいですが、それだけだと、自分の域を出られません。

他人のソースコードを読むと自分とは違う設計思想で作られていたり、知らないAPIが使わていて、分かりにくかったりもしますが、自分の発想の外側にある知識を学ぶことができます。

その際に、ここで紹介した解析方法をぜひ使ってみてください!

プログラミング初心者におすすめのサービス
1. 教室で学びたい派なら

プログラマカレッジは20代限定で、無料で受講できて、修了後、就職支援もしてくれるプログラミングスクールです。最高過ぎですよ、これ!!企業からの協賛金によって運営されいているため無料で受講できるんだそうです。すばらしいシステムだと思います!

30代の方には

プログラマカレッジは20代限定なので30代の方にはゼロスクがおすすめです。35歳以下なら無料で受講できます。教室も札幌、仙台、東京、大阪、神戸、福岡と全国展開しているので地方の方でも利用できます。

2. 自宅で学びたい派なら

Udemyという動画講座がおすすめです。時々特別セールがあって驚くほどの低価格で受講できるので、是非チェックしてみてください。

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

4. エンジニア未経験の人でも利用できる転職エージェント

ワークポートは未経験の人の転職活動も支援してくれますし、全国の求人を扱っているので地方在住の方にもご利用いただけます。お給料をもらいながら社内研修でプログラミングを学べる会社が狙い目です。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!