PigData - ビッグデータ収集・分析・活用ソリューション

お問い合わせ
  • サービス&ソリューション
    • スクレイピング
      代行サービス
    • Webサイト更新チェックツール「TOWA」
    • データ統合&自動化システム構築サービス
    • サステナビリティ情報通知ツール「サステナモニター」
    • 最新営業リスト作成・管理
      ダッシュボード
    • Tableau構築支援サービス
    • シフト自動最適化AIソリューション
      「Optamo for Shift」
  • 導入事例
  • PigUP
  • ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
  • トップに戻る
ソースコードの読み方は?

ソースコードの読み方は?エンジニアが理解すべきコツや手順を解説

PigData > ブログ > ソースコードの読み方は?エンジニアが理解すべきコツや手順を解説
ソースコードの読み方は?
2024.05.29
  • エンジニア

エンジニアとして活躍している限りは他人の書いたソースコードを読まなければならない場面があります。例えば、既存のプロジェクトに途中から参画した際は、既存のソースコードを理解して、これからの対応などを考えていかなければなりません。ただ、他人が書いたソースコードはうまく読めなかったり、内容を掴めなかったりするケースが多くあります。今回は、新たにプロジェクトを任されたエンジニアに向けて、既存のソースコードの読み方や上手く読むためのコツや手順についても、解説していきます。

目次

  1. ソースコードがうまく読めない理由
  2. ソースコードを読むコツ
  3. ソースコードを読む手順
  4. ソースコードを読むコツだけじゃない、エンジニアが理解しておきたいこと
  5. まとめ

ソースコードがうまく読めない理由

ソースコードがうまく読めない理由は、多岐に渡りますがその中でも陥りやすいポイントを3つ解説します。

全体を理解しようとしている

ソースコードが理解できないケースとして、特に多く見られるのは、最初から全体を理解しようとしている場合です。多くの人が誤解していますが、エンジニアとしてソースコードを読む際に、最初から全てを理解する必要はありません。最初に求められることは、現時点で必要な部分を理解することであり、全体を俯瞰的に理解することではないのです。

ソースコードには多くの情報が含まれていますが、それぞれが一連の流れでつながっているわけではありません。例えば、物語では、起承転結がありそれぞれが相互に完結していますが、プログラムの大半はそのような仕組みではないのです。そのため、必要としている部分から順番に読み解き、そこで呼び出されている関数など、関連する部分に限って理解していけば差し支えありません。

目的を持っていない

ソースコードを読む目的を持っていない場合、中身が理解できないまま終わりがちです。必ず目的を持って、ソースコードの詳細に目を通すことを心がけましょう。新しくプロジェクトを任せられたならば、ソースコード全体に「とりあえず目を通しておこう」となりがちです。しかし、このように漠然とソースコードの内容を理解しようとしても、結局は理解できないまま時間が過ぎてしまいます。
上記で述べた通り、最初からソースコード全体を理解する必要はありません。そのため「今回は◯◯関数を理解しよう」「なぜ◯◯関数はこのような引数の設定になっているのか」などと目的を持って、プログラムを読み進めることが重要です。

採用されているルールを理解していない

多くの場合、ソースコードの記述にはルールが用意されています。そのルールを把握していないまま、ソースコードに目を通しても正確に理解できないことが多いでしょう。事前にルールを把握してから、ソースコードにも目を向けることが重要です。例えば、特定のフレームワークを利用している場合、それに沿ったソースコードの書き方になっているかもしれません。自分にフレームワークの知識がないと、独特の記載方法を受け入れられないことがあるでしょう。
また、プロジェクト内で、ルールが定められていて、それに沿ったソースコードになっている可能性もあります。インデントの付与方法など自分の常識とは異なったルールが採用されていると、前提条件の理解不足からうまく読めないのです。

ソースコードを読むコツ

続いては、ソースコードがうまく読めない理由を踏まえて、ソースコードを読むためのコツについて解説します。

ソースコードの分割を意識する

できるだけソースコードを分割して読むことを意識しましょう。全体を読み進めると失敗する原因となりかねないため、自分なりに分割してみることが重要です。例えば、関数ごとにソースコードを分割することで、少しずつ読み進めることが可能となります。
また、複数の機能が実装されているならば、機能ごとにソースコードを読み進めても良いでしょう。全体ではなく、ソースコードを分割することによって、自分がどこまで理解できているかを定量的に把握しやすくもなります。なお、内容を詳細に理解する前に、「いくつの関数が存在するか」などを定量的な値をカウントしておけば「1日1関数を理解して20日かかる作業である」などスケジュールを立てたり進捗を把握したりしやすくなります。

何を理解したいか決めておく

ソースコードを読み込んで何を理解しておきたいか決めておくことが重要です。例えば、変換するそれぞれの詳細を知りたいのか、関数のインプットとアウトプットを知りたいのか、などが考えられます。どのような目的を持っているかによって、ソースコードをどのレベルまで読み込む必要があるのかが決定すると考えましょう。
もし、関数の具体的な処理について理解したい場合は、それぞれの関数を最初から最後まで丁寧に読み解き、アルゴリズムも正確に把握する必要があります。それに対して、関数のインプットに対して、アウトプットが知りたいだけであれば、処理の概要や使い方を理解するだけで十分です。

論理的にソースコードを理解する

プログラムの流れやアルゴリズムを把握して、論理的にソースコードを理解するように心がけます。例えば、関数やクラスの役割を確認し、それらがどのように連携して動作するかを考えておくなどです。変数やデータ構造の使い方にも注意し、コード全体の意図を把握するよう努めると良いでしょう。
他にも、データの流れや変数の変化に注目し、どのような動作が実現されているかを確認してみることも必要です。実装されているアルゴリズムやロジックの妥当性を自分なりに理解したり評価したりすることもおすすめします。

システムの構成も踏まえる

システム全体の構成を理解することで、コードの役割や位置付けを明確にできます。例えば、アーキテクチャ図やシステム図を参照し、各モジュールやコンポーネントの関係性を把握するなどです。全体を理解してから詳細を把握する作業も求められます。
また、システムの構成を踏まえた依存関係やデータフローの理解も重要なポイントです。システム全体の構成を踏まえてコードを読むことで、理解したい部分のソースコードが、システム全体にどのように影響するかを推測できます。

コメントやメソッド名にも目を通す

コメントやメソッド名はコードの意図や役割の理解をサポートしてくれる可能性があります。特に、質の高いコメントや適切なメソッド名は、ソースコードの動作や設計思想を的確に伝えてくれるのです。例えば、関数名の前に「インプットやアウトプットの内容や型」といったコメントが記載されていると、何を目的とした関数であるか想像しやすくなります。また、メソッド名もひと目で処理内容が分かるものであれば質の高いものといえるでしょう。
多くの場合、コメントは複雑な部分や重要な処理の説明が書かれている傾向があります。また、メソッド名や変数名も意味が分かるように付けられていることが大半です。どちらも目を通しておくことで、理解の手助けとなるでしょう。

必要に応じてデバッグ実行する

ソースコードを理解する際には、必要に応じてデバッグ実行してみましょう。特に、ブレークポイントを設定、ステップ実行しながら実行順序や変数の変化を詳細に評価する作業をおすすめします。これにより、ソースコードの動作を実際に確認しながら理解を深めることが可能です。時には、デバッグツールを活用して、不明点を特定しソースコードの意図を汲み取るようにしなければなりません。

無駄なコードは無視する

ソースコードを読む際には、無駄なコードや不要なコメントは無視するようにしましょう。特に大規模なプロジェクトでは、すべてのコードを詳細に理解する必要はありません。主要なロジックや重要な部分に集中し、不要なコードやリファクタリングが必要な部分は後回しにします。無駄な部分を省くことで、効率的に重要な部分に注力できるのです。

ソースコードを読む手順

続いては、具体的に、ソースコードを読む際の手順について解説していきます。

ディレクトリとファイル構造を確認

最初は見落とされがちですが、ディレクトリとファイル構造を確認することから始めましょう。多くのソースコードでは、機能や目的に応じて、ディレクトリやファイル名が設定されています。最初に、これらを確認しておくことによって、実際にソースコードを読まなくとも、どのようなことを実装したいのかある程度の把握が可能です。
また、プログラムにはいくつもの設計思想が存在し、ディレクトリ構成やファイルなどを確認することによって予想できます。例えば、「model」「view」「controller」と3つのディレクトリがあれば、MVCモデルで設計されていると予想できるのです。また、全体の設計実装が把握できると「どこにどのソースコードが格納されているか」を予想しやすくなり、必要な情報を得られやすくなるというメリットがあります。

処理の起点となる部分を探す

多くの場合、ソースコードは処理の流れに沿って理解するはずです。そのため、処理の起点となる部分を最初に探しておきましょう。例えば、ユーザーがボタンを押すことで処理がスタートするならば、画面上のボタンを押下するコードを最初に見つけ出します。そして、ボタンを押下することで実行されるソースコードを起点として深く読み進めていくのです。
起点となる部分を見つけておかなければ、漠然とソースコードを読むことになりかねません。また、本来の目的とは違った方向に進んでいってしまう可能性があります。

処理を予想しておく

どのような処理が書かれているか、事前に予想しておくことを意識しましょう。仮説を立てておくことによって、ソースコードを読み込んだ際に、ギャップに気づいたり疑問を持つことができます。
例えば、ユーザーフォームの情報をサーバーに送信する処理であれば「ユーザーが画面に入力した内容をチェックして問題なければ、確認画面を表示、その後に確定ボタンを押すことでサーバーへと送信」などが予想されます。もし、フォームに関するソースコードを読むならば、頭にこのような流れを思い浮かべておくのです。そして王道の流れで作られているのか、それとは異なった流れで作られているのかを比較しながら読み進めます。もし、自分の思い描いていたことと違う部分があるならば、疑問を持って解決するようにしなければなりません。

実際にソースコードを読み進める

どのようなソースコードが書かれているかの予想までできたならば、実際にソースコードを読み進めましょう。処理の起点から順番にソースコードを読み進めて差し支えありません。もし、関連する関数が多いならば、事前にそれらに関するソースコードも準備しておくことをおすすめします。
ソースコードを読み進める際には、常に疑問を持つようにして、何かしらの疑問があった際は後で解決できるようにすべきです。例えば、プログラムの文法やフレームワークの記載ルール、プロジェクト特有の制約などがあるでしょう。

不明点を解決する

ソースコードの中に不明点が存在したらば、それらを最終的に解決しておきます。書き方やフレームワークの使い方など、一般的な事項であれば、Googleなどの検索エンジンで自己解決しましょう。逆にプロジェクト固有のルールなどは、他の担当者やソースコード作成者に確認する必要があります。解決方法は多岐にわたりますが、どの方法でも疑問は解決に努めることが大切です。ソースコードを読めば必ず理解できるとは限らないため、不明点は深く追わず、後から解決しておきましょう。
なお、読み進める際は後から見返せるようにメモを取ることを心がけましょう。その都度調べる方法は効率的とはいえないため、メモが溜まってから一気に解決する方法がおすすめです。

ソースコードを読むコツだけじゃない、エンジニアが理解しておきたいこと

ソースコードを読むコツ以外にも、エンジニアが理解しておきたいことが3つあります。

顧客の要望を把握する

ソースコードを読む際に限らず、エンジニアが顧客の要望を正確に把握することは極めて重要です。具体的には、要件定義フェーズでの詳細なヒアリングや、各種ドキュメントに目を通す作業が必要と考えられます。特に後からアサインされたプロジェクトであれば、ドキュメントでの理解が中心となるでしょう。
顧客が求める機能やパフォーマンスの基準を理解できていなければ、システムを開発したり構築したりする過程で顧客と認識齟齬が起きる可能性があります。また、プログラム改修が必要な際に、顧客のビジネスニーズを反映できないということになりかねません。

業界の特性を理解する

業界の特性を理解することで、その業界特有の課題やニーズの理解が促進されるかもしれません。特に一般的な考えとは大きく異なった実装や要件の裏側には、業界独自の特性が隠れていることがあるのです。
例えば、医療業界ではデータのセキュリティやプライバシーが重要視されます。対して、エンターテインメント業界ではユーザーエクスペリエンスやパフォーマンスが重視されるのです。業界のトレンドや規制など理解し、それを性能やユーザーインターフェース、仕様など幅広い部分に反映させられるようにしなければなりません。
また、業界で利用される技術動向や競合他社の動きを観察することも大切です。特に日本では、大手企業が採用する技術を他社でも利用する傾向があります。「デファクトスタンダード」を理解しておくことが求められるのです。

開発当時の技術背景を考慮する

顧客が保有する既存のシステム全体や関連する資料などを理解する際には、開発当時の技術背景を考慮することが重要です。技術は常に進化しているため、過去に採用された技術や設計方針が現在は最適ではないことが考えられます。ただ、開発当時の技術トレンド、使用されていたツールやライブラリを踏まえると、最適ということも多々あるのです。他にも、予算面で新しい技術を採用していないこともあるため、そのような観点からも技術背景を考慮できると良いでしょう。

まとめ

エンジニアは、新しいプロジェクトへ参画するなどのタイミングで他人の書いたソースコードを読む可能性があります。ただ、そのようなソースコードを理解するためにはコツが必要です。とはいえ、解説したようなコツと手順を理解していれば、ソースコードの理解は難しくありません。初心者でも十分にソースコードの内容を理解できるでしょう。また、エンジニアはソースコードを読むコツ以外にも知っておくべきことがあります。特に、顧客の要望を理解することは必須の事項であると考えるべきです。
PigDataはエンジニア初心者として入社してひとつのプロジェクトを任せられるほどに成長できているエンジニアが多くいます。ソースコードの理解に長けた活躍するエンジニアのインタビューをぜひお読みください。

目標は1つに定めない常に新しい挑戦を

記事を検索する

  • 全て
  • 業務効率化
  • データ活用
  • ビッグデータ
  • 営業
  • マーケティング
  • スクレイピング
  • 基礎知識
  • DX
  • データ分析
  • スクレイピング法律
  • セドリ
  • 飲食店
  • 不動産
  • 観光
  • SNS
  • IT用語
  • データ収集
  • 補助金
  • 社員渾身ブログ
  • 監視
  • AI
  • 市場調査
  • エンジニア
  • サステナビリティ
  • データ分析基盤
  • ニュース

ピックアップ記事

  • Webスクレイピング大全!これさえ読めばすべてがわかる
  • Webスクレイピングサービス企業5選!
    面倒なデータ収集を自動化
  • マル秘!Webサイト更新チェックツール活用術!
  • ESG担当者必見!関わる基礎知識を一挙公開
  • 【IT弁護士監修】スクレイピングは違法?法律に基づいて徹底解説
  • Webサイトの更新を自動でチェックする方法は?通知機能も活用!
  • 【まとめページ】社員が本気でふざけるデータ活用ブログ

よく読まれている記事

  • 画像一括ダウンロードが簡単にできる方法!画像収集の悩みを解決
  • Webサイトの更新を自動でチェックする方法は?通知機能も活用!
  • 【2025年最新】今更聞けないIT用語67選
  • スクレイピングは違法?禁止サイト6選とその見極め方
  • chrome拡張機能「Web Scraper」でのスクレイピング方法をご紹介

関連する記事

  • データサイエンティストとは?仕事内容や必要となるスキルを解説
  • データエンジニアリングとは?必要性や必要なスキルと実践方法を解説
  • 未経験からでもエンジニアになれる!スキルや求められることを解説

前の記事

DX投資促進税制とは?認定要件や申請方法と注意点を解説

ブログ一覧へ

次の記事

社内DXとは?成功に向けたステップや役立つシステムと秘訣を解説

お問い合わせ・資料ダウンロード

サービス&ソリューション
  • スクレイピング
    代行サービス
  • Webサイト更新チェックツール「TOWA」
  • データ統合&自動化システム構築サービス
  • サステナビリティ情報通知ツール「サステナモニター」
  • 最新営業リスト作成・管理
    ダッシュボード
  • Tableau構築支援サービス
  • シフト自動最適化AIソリューション
    「Optamo for Shift」
  • 導入事例
  • ニュース&ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
keyboard_arrow_up

Copyright © SMS DataTech All Right Reserved