プログラミング

【本質】ソースコードを読むコツはソースコードを読まないこと

更新日:

プログラミング初心者
「開発現場で既にあるコードに対して修正を行うことになったのだけど、コード量が多すぎてどこから読んだら良いか分からない。
他人が書いたコードの読み方もよく分からず、何をやっているか全然理解できなくてかなり困っている、、、」

 

今回はそういった悩みを解決します。

 

本記事の内容

  • 【本質】ソースコードを読むコツはソースコードを読まないこと
  • 【現役エンジニア直伝】ソースコードの『読みほぐし方』
  • 他人のコードを読んだ経験を生かそう

 

記事の信頼性

この記事を書いている私はエンジニア歴8年で、今も開発現場でプログラミングをしています。

そういった経験から、プログラミングを勉強している方に向けてアドバイスをお伝えすることができます。

 

今回は「ソースコードの読み方」というテーマについて解説します。

開発現場では他の人が書いたコードを読む機会がたくさんあるので、読み方のコツを知っていると役立ちます。

ですので本記事では、開発現場で使えるソースコードの読み方のコツを現役エンジニアの私が紹介します。

この記事を読むことで、他人の書いたコードをスラスラと読めるようになりますよ。

 

 【本質】ソースコードを読むコツはソースコードを読まないこと

 【本質】ソースコードを読むコツはソースコードを読まないこと

「いきなり何を言っているんだ・・・?」

と感じるかもしれませんが、結構本質的なことで重要です。あまり理解できていない人はちょっと怪しいコードの読み方をしているかもしれません。

どういうことか、具体的に解説します。

いきなりコードを読み始めると撃沈します

まず、いきなりソースコードを読み始めると撃沈するのでやめましょう。

なぜなら、長年動いているシステム系は一千万行とかの単位でソースコードがあるので、1日千行読んだとしても千日かかります

単純計算で全部読むのに3年かかる計算ですね。

この数値から分かるように、無策にコードを読み始めると途方も無い時間がかかるので無理ゲーです。

プログラミング初心者あるあるで、気持ちはよく分かりまが、いきなりコードを読み始めると撃沈するのでやめましょう。

コードを読み始める前に8割程は勝負が決まる

ソースコードを読んで理解するには、コードを読み始める前に8割程は勝負が決まると言っても過言ではないかと。

というのも、コードの読み方を知っているかいないかで、作業効率は大きく変わります。

僕も入社した当時はサッパリ読み方を知らなかったので、時間通りに仕事が終わらず、残業だらけの日々でした、、

本記事では巨大なシステム開発を行う現役エンジニアが、ソースコードの読み方のコツを伝授します。

【現役エンジニア直伝】ソースコードの読みほぐし方

【現役エンジニア直伝】ソースコードの読みほぐし方

私が普段ソースコードを読む時に意識していることは次の6つです。

  1. コードを読む目的を明確にする
  2. 読まなくても良い部分は読まない
  3. 推測しながら読む
  4. 無駄なコードは消して読む
  5. メモを取る
  6. 動的デバッグする

1つずつ説明していきます。

コードを読む目的を明確にする

まずはコードを読む目的を明確にして、常に意識しながら読むことです。

なぜなら、目的によってコードの読み方は大きく変わるからです

例えば次のようなイメージです。

  • 構造を理解する:各処理の詳細は追わずに、全体の流れや役割を把握するようにザッと読んでいく。
  • 不具合解析をする:原因箇所を特定したら徹底的に読む。メソッドの名前とかコメントとか何も信じない。書いてある通りに動く。

上記のように、目的が変わればコードの読み方も変えることがコツです。

ですので、コードを読む前に目的を明確にしましょう。

読まなくても良い部分は読まない

次は、読まなくても良い部分は読まない工夫をしましょう。

なぜなら、目的を果たすために不要な情報を読んでも前に進めないからです。

特に大規模なシステムだと、どこから読めば良いか分からず、いたずらに読み始めると何日あっても時間が足りません。

なので、設計書があれば事前に構造を把握して、読むべきところを絞り、知りたいところだけを読むべきです。

コードを読む時は、読まなくても良い部分は読まない工夫をしましょう。

推測しながら読む

コードを読む時は全体像や処理をある程度推測しながら読むと、内容が理解しやすくなります

メソッドの中身をいちいち事細かに読んでいては時間が足りませんし、効率が悪いです。

なので、クラスやメソッド名から何をしている処理なのかある程度推測しましょう。

例えば次のようなコードがあったとしましょう。

File.Open(configFilePath);
~中略~
File.Write(newConfigFilePath);

Fileクラスのopenメソッドやwriteメソッドにファイルパスを渡していたなら、何かの文章を開いたり、ファイルに出力していることが推測できますよね。

この時、中身の実装がどうなっていようと全体把握の段階では気にする必要はありません。

コードの概要を推測することで、全体把握に役立ちます。

無駄なコードは消して読む

無駄なコードは消して読みましょう。

なぜなら、知りたいこと以外の情報が入ってくるとノイズでしかないからです

例えば次のようなものは消してから読むと理解しやすくなりますよ。

  • 戻り値チェックやエラーハンドリング処理
  • 以前のコードをコメントアウトした履歴
  • 役にたたなさそうなコメント

上記のようなノイズを真面目に読むと実現したい機能がなんだったのかボケてきてしまいます。

コードを読む際は、いらないコードを消してしまい、必要な部分だけ残して読むと効率的に読めます。

メモを取る

コードを読むときは、クラスの関係ややメソッドの繋がりをメモしながら読むことをオススメします。

というのも、一度読んだだけだと案外忘れるもので、気づいたら何回も同じコードを読んだりしてしまうんですよね。

そこで、読んで分かった内容や構造をメモしておくと二度手間を避けつつ、頭の整理にも繋がります。

動的デバッグする

実際に動かしながらコードを追う動的デバッグも非常に有効です。

百聞は一見にしかずで、実際の動きを見ながらコードを追うことができれば膨大なソースコードのどこを通っているかが確実に理解できます

また、一時変数の中身などスナップショットの状態もわかるので、解析などで非常に役立ちます。

統合開発環境を使っている方は動的デバックを積極的に使っていきましょう。

なお、プログラミングにオススメの統合開発環境やエディタについては以下の記事で詳しく解説しています。

>>参考:【完全偏見】プログラミングにオススメのテキストエディタ

他人のコードを読む経験を生かそう

他人のコードを読む経験を生かそう

ということで、今回はソースコードの読み方について解説しました。

他人の書いたコードを読むことは最初は難しく感じますが、慣れてくればどうってことはないですね。

逆に自分がコードを書く時はどうすれば良いかを考えながら読むとスキルアップに繋がります。

他人が書いたコードを読むと、恥ずかしくないコードを書きたいなぁと思うんじゃないでしょうか(笑)

そんな時にオススメの本がこちら。

エンジニア界では名著の1冊です。

リーダブルコードを読むことで、コードを書く時に気をつけるべきことや読みやすいコードとは何かを理解することができます。

エンジニアを目指すのであれば、プログラミングの勉強と合わせてぜひ読んでおきたい一冊です。

ブログランキング参加中!クリックで応援お願いします!

-プログラミング

Copyright© ドナちきブログ , 2020 All Rights Reserved Powered by AFFINGER5.