【2026年】フリーランスエージェントおすすめ9選

他人の書いたソースコードを効率よく読む方法【7つのコツと注意点】

当ページのリンクには広告が含まれています。
他人の書いたソースコードを効率よく読む方法【7つのコツと注意点】
  • 実務で機能改修を担当することになりましたが、コードの量が多くて読み方がわかりません
  • 納期に間に合うか不安です
  • 他人の書いたソースコードを効率よく読む方法を知りたいです

こんなお悩みにお答えします。

コードは全部読む必要はなく、読む範囲を絞るのがコツです。

記事を書いている僕は、現役エンジニアです。エンジニア歴は6年目で、Java・TypeScript(Vue.js)の現場を渡り歩いてきました。案件が変わるたびに他人のコードを読み込んでいます。

この記事を読めば、コードを読む力が向上して、すぐに実務で活用できます。

コードを読むスピードを上げたい方は、ぜひ最後まで読んでみてください。

なお本記事では、プログラミング言語Javaのコードを用いて紹介します。

目次

他人の書いたソースコードを読む必要性

他人の書いたソースコードを読む必要性

前提として、他人の書いたソースコードを読む必要性を解説します。

  • どういった時に他人が書いたソースコードを読むのか

エンジニアなら、自社開発でも受託開発でも頻繁に読む機会があります。

どういった時に他人が書いたソースコードを読むのか

実際に他人のコードを読む場面は、主に以下の3つですね。

  • 機能追加をする際の影響範囲を調べるとき
  • 新規開発時に他の機能を参考にしながら実装するとき
  • 人の書いたソースコードをレビューするとき

効率よく開発して納期に間に合わせるには、ソースコードをいかに早く正確に読み切れるかが重要です。

他人の書いたソースコードを読むコツ7選

他人の書いたソースコードを読むコツ7選

他人の書いたソースコードを読むコツを7つ紹介します。

  • コードを読む目的を明確にする
  • システムの構成を理解する
  • 読むべき箇所を特定する
  • 必要な箇所を一行ずつデバッグする
  • コメントやメソッド名から読み解く
  • AIに聞く(AI使用可の場合)
  • 論理的に考えながらコードを読む

順番に見ていきましょう。

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

ソースコードを読む前に、コードを読む理由を明確にすることが重要です。

目的が曖昧だと、何のためにそのコードを読むのかがわからず、モチベーションが上がらないんですよね。

モチベが上がらないと、よくわからないコードが出てきた時にすぐ諦めてしまいがちです。

コードを読む目的として多いもの

  • 機能追加時の影響範囲を調べたい
  • 他の機能を参考にして効率よく開発したい
  • コードレビューやセルフレビューをしたい
  • バグの調査のため
  • 新人教育のため

まずは自分が「コードを読む目的」を明確にしてから読み始めていきましょう。

システムの構成を理解する

次のコツは、まず「システムの構成を理解すること」です。

システムの構成とは、どんなフォルダ構成で、どんなファイルやクラスがあるのかという部分ですね。

各フォルダやファイル、クラスにはそれぞれ役割があるはずです。

なぜ構成を先に理解するのか

理由は「木を見て森を見ず」の状態をなくすためです。

全体を把握してから徐々に細かい部分に絞ると、どんな流れで動いているのかイメージしやすくなります。

MVCという構成の例

たとえばJavaやRubyなどのオブジェクト指向言語を扱う開発をするとします。

これらの言語では「MVC」と呼ばれる構成が用いられることが多いです。

  • Model(モデル):アプリのデータ係。データの保存や変更、計算などをする場所
  • View(ビュー):アプリの見た目係。画面に何をどう表示するかを担当する
  • Controller(コントローラー):アプリの調整係。ユーザーの操作を受け取り、モデルへ指示を出す

構成から役割を読み取る

たとえば〇〇Model.javaというクラスがあるとします。

このクラスはModelなので、データベースから取得した値を格納する役割なんですよね。

Viewはフロントエンドに関するファイルで、htmlやjspなどが該当します。

多くのシステムは意味を持った構成になっているので、読むべき箇所を特定しやすくなります。

読むべき箇所を特定する

ソースコードは先に読む箇所を特定しましょう。

全ファイルや全クラスのコードを上から下まで読むのは非効率だからです。

規模の大きいシステムほど膨大な時間がかかります。

ログイン機能の例

読むべき箇所を特定するには、システムの動作とコードを照らし合わせると良いです。

たとえばログイン機能の動きは「ログインボタンを押す→ログインクラスが動く」と予想できますよね。

なのでこの場合は、ログイン機能を実装しているクラスを探して、その中のコードを見ればOKです。

以下はJavaで書いたログイン機能のソースコードです。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

// ログインクラス
public class Login {
    private static Map<String, String> users = new HashMap<>();

    public static void main(String[] args) {
        // ユーザーを追加
        users.put("user1", "password1");
        users.put("user2", "password2");

        Scanner scanner = new Scanner(System.in);

        System.out.print("ユーザー名を入力してください: ");
        String username = scanner.nextLine();

        System.out.print("パスワードを入力してください: ");
        String password = scanner.nextLine();

        // ユーザー名とパスワードの存在確認メソッドを呼び出す
        if (login(username, password)) {
            System.out.println("ログインに成功しました。");
        } else {
            System.out.println("ログインに失敗しました。");
        }
    }

    // ユーザー名とパスワードの存在確認
    private static boolean login(String username, String password) {
        if (users.containsKey(username) && users.get(username).equals(password)) {
            return true;
        }
        return false;
    }
}

ログイン機能なので、Loginクラスをチェックします。

クラスを特定するには、URLやクラス名を参考にすればわかりやすいかと。

ログイン機能なら「ログイン用のURL」だったり「Login.java」という名前になっているケースが多いですね。

関連性のないクラスは、基本見なくて良いです。

読まなくて良い箇所も特定しよう

先ほどのLoginクラスのコードを例にします。

条件分岐で呼び出しているloginメソッドの中身は、読まなくてOKです。

// ユーザー名とパスワードの存在確認メソッドを呼び出す
if (login(username, password)) {  // loginメソッドは読まなくて良い
    System.out.println("ログインに成功しました。");
} else {
    System.out.println("ログインに失敗しました。");
}

このメソッドはユーザー名とパスワードの存在確認をしていると、コメントやメソッド名から読み取れますよね。

なのでここは別に読まなくて良いです。

もちろん勉強のために読みたい、レビューで質問された時に答えたいという考えがあるなら読んでもOKです。

Zetto

完璧に理解しようとして納期に遅れるのは避けたいので、その辺りは臨機応変にいきましょう。

必要な箇所を一行ずつデバッグする

読みたい箇所にブレークポイントをおいて、一行ずつデバッグすると効率よく読み進められます。

デバッグすれば変数にどんな値が入っているのかがわかりますし、処理の流れも把握できます。

デバッグは、ソースコードを読む際には必須の作業と言っても過言ではないです。

迷ったらすぐブレークポイントをおいて、デバッグするくらいでもいいですね。

コメントやメソッド名から読み解く

ソースコードを読む際は、コメントやメソッド名をよくチェックしてみてください。

コメントは処理の目的が書かれていることが多いので、理解の速度が向上します。

中にはわかりにくいコメントがあったり、そもそもコメントがなかったりするんですけど……。

名前から役割を予想する

メソッド名や変数名、クラス名がどんな名前なのかも確認すると良いです。

多くの現場では、メソッド名1つにしても意味のある名前でつけられていることが多いです。

// SNSアプリクラス
class SNSApp {
    private List<User> users;
    public SNSApp() {
        this.users = new ArrayList<>();
    }
    // 新しいユーザーを登録
    public void registerUser(String username) {
        // ...
    }
    // 指定されたユーザーに投稿を作成
    public void postToUser(String username, String content) {
        // ...
    }
    // ユーザー名でユーザーを検索
    private User findUserByUsername(String username) {
        // ...
    }
}

クラス名が「SNSApp」となっていることから、SNSアプリに関するクラスだとわかりますよね。

registerUserメソッドを見ると、新規ユーザーを登録するんだなと予想できます。

同様にfindUserByUsernameメソッドなら、ユーザーを検索するんだと予想できます。

予想は最後に確信へ変える

もちろん予想だけで決めつけるのはNGです。

最終的にはデバッグをしながら、予想を確信に変える必要があります。

AIに聞く(AI使用可の場合)

できれば自力でコードを読める力を身につけた方が、エンジニアとして成長しやすいです。

ただ時には業務スピードを優先したい時もあるかなと。

そのような場合は、現場でAI使用可能ならAIにコードの処理の目的を聞くのもありですね。

聞き方はシンプルでいい

ChatGPTやGeminiに一部コードを貼り付けて「このコードは何をしていますか」と質問すればOKです。

AIならわりと精度の高い答えをくれます。

AI使用に関する注意点

  • 機密情報を送信しないこと
  • 特有のクラス名や変数名がついている場合は別名に置き換える
  • クラス全体のコードを丸ごと貼り付けるなどはしないこと
  • 自己責任で使用すること

現場のルールを先に確認する

会社や現場によっては、AIの使用を推奨しているところもあれば禁止のところもあります。

  • 現場でAIを使用してもいいか
  • AIの使用ルールはあるか
  • 使っても良いAIツールは何か

この3点は現場責任者に確認しておきましょう。

論理的に考えながらコードを読む

ソースコードを読む最大のコツは、論理的に考えながらコードを読むことです。

論理的に考えると処理の理解度が高まり、影響範囲の把握や事前のバグ防止ができるようになるからです。

「何でこのコードはこう書かれているのか」「何でこのシステムはこう動くのか」と読み進めていくと良いですね。

プログラミング言語は言語なので、日本語と同じように文を意識して読むのがコツです。

仕様そのものが理解できないときの対策は、以下の記事でまとめています。

他人の書いたソースコードを読む際の注意点

他人の書いたソースコードを読む際の注意点

他人の書いたソースコードを読む際の注意点も紹介します。

  • 扱う言語の基礎学習はしておく
  • 不明点はその都度ググる
  • 設計書がない場合は仕様をメモする
  • 繰り返しソースコードを読む
  • 読んでも不明な箇所は飛ばす

これを知っているだけでコードを読むモチベーションがかなり変わります。

扱う言語の基礎学習はしておく

ソースコードを読む前に、扱う言語の基礎学習はしておきましょう。

これをしていないと開発時に一から調べながら作業する必要があり、納期に影響が出てきます。

事前に学習しておきたい範囲

  • 基礎文法やよく使うメソッド
  • 条件分岐や繰り返し処理の書き方

新人でもベテランでも同じで、現場が変わって新しい言語を扱う場合は事前に押さえておきたい部分です。

僕がTypeScriptで実感したこと

事前学習の効果は、自分がスキルチェンジしたときに実感しました。

僕はJavaをメインに使ってきたのですが、3年目のタイミングでTypeScriptを使う案件にシフトしました。事前にTypeScriptの動画教材を購入して基礎を学習しました。

そのおかげで実務に入った時に、迷いが少なくコードを読めたんですよね。

不明点はその都度ググる

ソースコードを読んでいると、不明点がでてきます。

もし理解しないと前に進めないのであれば、スルーせずにその都度ググりましょう。

  • 標準クラスやメソッドの役割
  • 基礎文法の意味

基本的なことも含めて、自分が理解できていないのであれば都度調べる必要があります。

設計書がない場合は仕様をメモする

設計書がない場合は仕様をメモすると良いですね。

現場によっては設計書がなかったり、情報が古くて使い物にならないケースがあります。

僕のメモの取り方

僕がやっているのは、処理の流れを自分の言葉で書き残す方法です。

僕はエクセルやMacのメモ帳に「Aクラスは〇〇をするクラス、Aクラスのaメソッドは〇〇をしている、aメソッドからbメソッドが呼び出される」というように処理の流れをメモしています。

メモする範囲を絞る

メモする対象は、全てのコードではなく次の2つに絞っています。

  • 自分が修正するところ
  • 処理が複雑な箇所

システムの規模が大きいほどコードの量も増えるので、記憶だけに頼るのは非効率です。

メモしておくと後でいつでも見返せるので、効率よく開発を進められます。

繰り返しソースコードを読む

ITエンジニアは繰り返しソースコードを読んで理解していきます。

一度読んだだけで仕様や処理の流れを理解するのは、よほどの天才でない限り難しいです。

案件が変わるたびに読み込む

僕の場合、読み込む回数はかなり多くなります。

僕はフリーランスエンジニアとして働いており、半年から1年ごとに案件を変えるケースが多いです。1つのシステムに長く携わることは少ないので、その都度繰り返しコードを読んで理解度を高めています。

理解度の上がり方の目安

  • 1周目はなんとなくの理解
  • 2周目は理解度6割程度
  • 3周目で9割程度

ソースコードは繰り返し読んで、1つずつ理解していければOKです。

読んでも不明な箇所は飛ばす

コードを読んでも、全くわからない箇所がでてくることがあります。

基本はまず調べることが大事なのですが、それでもすぐに理解できないこともあるかなと。

深追いするか迷ったときの判断

深追いしてわかればいいのですが、それでわからなかったら時間がもったいないです。

なので読んでも不明な箇所は、時には一旦読み飛ばすことが大事です。

他のコードを読んでいくことで関連性がわかり、理解できるケースもあります。

Zetto

どうしても今すぐ理解しないといけないなら、実装者やリーダーに質問するのもありですね。

スキルそのものを底から上げたい方は、以下の記事を参考にしてみてください。

コードを読むなら最初はざっくり理解がポイント

まとめ:コードを読むなら最初はざっくり理解がポイント

他人の書いたソースコードを効率よく読む方法を解説してきました。

重要なポイントをまとめます。

  • コードを読む目的を先に決めてから読み始める
  • システムの構成を把握して、読むべき箇所と読まなくて良い箇所を分ける
  • デバッグとコメント・メソッド名の読み解きを組み合わせる
  • AIを使うなら、機密情報と現場のルールを先に確認する
  • 設計書がないならメモを残し、繰り返し読んで理解度を上げる

最初から完璧にコードを読んだり仕様を理解するのは難しいものです。

まずはどのクラスがどんな役割をしているのか、全体をざっくり理解することがポイントです。

Zetto

その上で細かいところまでフォーカスして、読むべき箇所を特定してみてください。

コードの品質そのものを上げたい方は、以下の記事も参考になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次