統合開発環境(IDE)とは

コンピューター・ラボで、スクリーンやノートPCに囲まれて一緒に働いている男女の画像

執筆者

Josh Schneider

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

統合開発環境(IDE)とは何か

統合開発環境(IDE)は、DevOpsプログラマーが使用するソフトウェアです。ソースコード・エディター、ビルド自動化ツール、デバッガーなどのさまざまな便利な開発ツールを、1つのグラフィカル・ユーザー・インターフェース(GUI)アプリケーションに統合したものです。

コードはテキスト・エディターで記述し、コマンドラインから実行することも可能なため、厳密にはソフトウェア開発に必須ではありませんが、IDEは開発者の生産性とコードの品質を向上させる機能を兼ね備えています。大抵の場合、最新のIDEには、コーディング言語に応じた必要なコンパイラー、インタープリター、またはその両方が含まれています。

その他の一般的なIDEの機能には、次のようなものがあります。

  • バージョン管理システム: バージョン管理は現代のソフトウェア工学に不可欠で、コードの異なる版を制御、整理、追跡するために使用されます。バージョン管理システムは、コード変更や更新を監視しながら、その履歴を記録します。Gitのようなスタンドアロンの選択肢が広く使われていますが、多くのIDEにも連携可能な組み込み機能が用意されています。
  • クラス・ブラウザー: クラス・ブラウザーは、プログラマーがオブジェクト指向プログラミングのコード構造を参照、探索、可視化できるようにします。
  • オブジェクト・ブラウザー:オブジェクト・ブラウザーを使用することで、プログラマーはソフトウェア・パッケージをコンポーネントごとに調べられます。コンポーネント階層、プロパティ、および個々のオブジェクトに関連付けられたイベントを表示できます。
  • クラス階層図:オブジェクト指向プログラミングによるソフトウェア・エンジニアリングに不可欠なIDEではクラス階層図を使用できます。これらの静的ダイアグラムでは、オブジェクト・クラスごとに、その属性、オペレーション、そして他のオブジェクト間の関係などの包括的なシステム構造を表現します。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

統合開発環境(IDE)の一般的な機能

一部の基本機能はIDE間で標準と見なされますが、あるソフトウェアがIDEと見なされるための基準となる機能が厳密に定義されているわけではありません。とはいえ、多くのIDEには、一般的に次のようなツールや機能が(多くの場合すべて)何らかの形で含まれています:

  • コード編集の自動化: IDEは、さまざまな種類のプログラミング・コードの編集や修正を支援する自動化機能を提供します。言語ごとに規則が異なるため、開発者が構文エラーを起こしたり正しい言語構造から逸脱したりした場合に、検出して修正を支援できます。
  • スマートなコード自動補完: 多くのIDEは(検索候補やオートコンプリートに似た)自動ツールを備え、認識した関数や意図に基づいて一般的な語句や用語を提案し、コード記述を支援します。
  • 構文ハイライト: IDEは、記述したコードを自動で整形し、フォント色の変更や特定の語句の太字・斜体化などを行います。構文ハイライトは潜在的な構文エラーへの即時のフィードバックを提供し、ソースコードの可読性を高めてレビューしやすくします。
  • リファクタリングのサポート:コード・リファクタリングとは、意図した機能を提供するだけでなく、確立されている簡潔さの原則を遵守するために、効果的なソースコードを改良、再構築、書き換えるプロセスです。適切にリファクタリングされたコードは、より効率的で読みやすく、本当に必要なスクリプトだけで意図した機能を維持することができます。リファクタリングは手間のかかるプロセスではありますが、高水準ソフトウェア設計において不可欠な作業と考えられています。決まったシナリオでは、ソースコードを自動で、より迅速にリファクタリングすることで、IDEは開発者のコード改善を支援します。
  • ローカル・ビルドの自動化: IDEは、コード編集に伴う反復的な開発作業(新しい変更に合わせた既存行の更新など)を自動化できます。
  • コンパイラーとインタープリター:より人にとって読みやすく、作業しやすいため、ほとんどのプログラマーは高水準プログラミング言語でコードを記述しています。ですがソフトウェアを実行する前に、LinuxやWindowsなどのオペレーティング・システムが理解できる、低水準のマシン言語に変換する必要があります。コンパイラーとインタープリターは、特定の言語の元のソースコードに応じて変換プロセスを自動化する、ソフトウェアの一種です。コンパイラーとインタープリターはどちらも単体のソフトウェアであることが多いですが、最新のIDEの多くは、コンパイラーとインタープリターの機能が組み込まれています。
  • テスト:新しいソースコードを既存のコードと統合する前にローカルで単体テストを自動化する開発者ツールを、IDEは備えています。この最初のプロセスは、より複雑な運用環境でコードをテストする前に、品質管理の第一段階となります。
  • デバッグ:バグという用語は、修正されていないコードで見つかる可能性がある、さまざまなエラーの総称です。単純な入力ミスや構文エラーとして現れるバグもありますが、ソフトウェア機能が想定どおりに動作することを妨げるコードはすべてバグと見なすことができます。デバッグプロセスでは、コードがあらゆる状況で想定どおりに機能することを検証するために、さまざまな角度からコードのレビューとテストを行います。IDEは多くの場合、完全に統合されたコードデバッグ機能は備えていませんが、さまざまなデバッグツールを提供しています。これらのツールは可能な限り多くのバグを排除するのに役立ち、大抵はコードの作成中にリアルタイムで排除できます。IDEがデバッグプロセスをサポートする1つの方法として、開発者がコードを検査してその動作を検証できるよう、実行中のコードを1行ずつ強調表示するやり方があります。
  • コード・リンティングと解析: リアルタイムのコード解析は、一般的な文書エディターの綴り・文法チェッカーのように即時のフィードバックを提供します。単純な誤字検出を超えて、可読性や保守性を阻害するスタイル違反、潜在的なバグ、非効率な言語パターン、重大なセキュリティー脆弱性など、幅広い問題の特定に役立ちます。
アプリケーション開発

さあ、クラウドでエンタープライズ・アプリケーション開発を始めましょう

この動画では、Peter Haumer博士が、IBM Z Open Editor、IBM Wazi、Zoweなどのさまざまなコンポーネントとプラクティスを実演しながら、ハイブリッドクラウドでの最新エンタープライズ・アプリケーション開発について説明します。

統合開発環境の利点

一般的なテキスト・エディターと比べ、アプリケーション開発を統合開発環境(IDE)内で行うことには、多くの利便性とメリットがあります。IDEは開発プロセス全体を効率化し、コードの作成やデバッグ、プロジェクト・マネージャーや拡張チームとの連携を容易にします。

IDEの機能に関連する利点には、次のようなものがあります。

プロダクティビティーを高める

IDEは開発者の生産性を高める多くの効率化を提供します。複数ツールを1つのアプリケーションに統合することでアプリ間のコンテキスト切り替えが減り、全体のワークフローが改善されます。反復作業はIDEの自動化に任せることで時間を節約でき、コード・ジェネレーターはよくあるスクリプト・パターンのショートカット作成を支援します。内蔵のドキュメント機能はバージョン管理の記録作業も助け、台帳化ではなくコード作成に専念しやすくなります。

コード品質の改善

IDEは多様なツールを通じてコード全体の品質向上に寄与します。リアルタイムのエラー検知はヒューマンエラーを減らし、コード解析やリファクタリング・ツールは自動かつ知的な最適化を提供します。構文ハイライトなどの視覚的な指標は、秩序立った構造の作成と、レビュー時の可読性向上に役立ちます。

迅速なオンボーディング

IDEは、新しいプロジェクトやプログラミング言語への習熟を支援する優れたツールでもあります。あらかじめ用意されたテンプレート、ガイド付きワークフロー、統合サポート文書によって、学習曲線を緩やかにします。

共同作業の容易化

IDEは、レガシー・コードに取り組む開発者同士のコラボレーションを促進します。また、必ずしも技術に詳しくないプロジェクト・マネージャーやお客様側利害関係者を含む幅広いチームとのコミュニケーションも改善します。さらに、バージョン管理システムとの連携により一貫したドキュメント化を支援し、コード・レビュー・ツールを取り込んでプロジェクト全体の共同分析と確認を容易にします。

統合開発環境の種類

開発者のニーズに応えるため、統合開発環境(IDE)には、オープンソースからプロプライエタリー(商用)まで、初心者向けのものから高度なものまで幅広い種類があります。多くのIDEはクロスプラットフォームに対応しますが、言語依存のものもあります。代表的なIDEの種類をいくつか挙げます。

ローカルIDE

ローカルIDEは、開発者の個人用または業務用ハードウェアにインストールし、ローカルで実行します。これらのIDEは追加のリソース・ライブラリーを必要とし、開発者はプロジェクトの要件や個人の好みに応じてローカルにダウンロードしてインストールする必要があります。

ローカルIDEはカスタマイズ性が高く、レイテンシーの問題がほとんどなく、セットアップ完了後はインターネット接続が有効でなくてもフルに動作します。ただし、ローカルIDEのセットアップや構成は手間がかかる場合があり、ローカル・マシンと本番環境の差異によって、想定外のソフトウェアのバグや障害が発生することがあります。

また、ローカルIDEはローカル・ハードウェアに依存します。マシンのローカル・メモリー・リソースに依存するため、特に複雑で大規模なコードを扱う場合には、ローカル・ハードウェアのみではIDEの実行が重くなることがあります。

ローカルIDEの例としては、以下のようなものがあります。

  • Microsoft Visual Studio
  • Eclipse
  • JetBrainsのIDE(IntelliJ IDEAやPyCharmなど)

クラウドIDE

ローカルIDEと異なり、クラウドIDEはブラウザー・ベースで、開発者がローカル・ハードウェアに特定のソフトウェアやライブラリーをダウンロードする必要はありません。その代わり、クラウドに効果的にアクセスするには、安定した高速インターネット接続の維持が前提となります。

ローカルIDEと比較して、クラウドベースのIDEにはいくつかの長所があります。クラウドベースのIDEを使用しているチームは、標準化された開発環境を構築できるため、ローカルのハードウェア構成の違いから生じる可能性のあるエラーを回避できます。

クラウドIDEは、クラウドベースのリソースを使用しているため、ローカルIDEよりも優れたパフォーマンスを発揮することもできます。特定の複雑なIDE機能では、しばしば大量の計算リソースが必要となります。ローカルIDEの速度低下を防ぐために、開発者はそれらのタスクを、堅牢なクラウドベースのデータセンターに移管できます。

クラウドIDEの例としては、以下のようなものがあります。

  • AWS Cloud9
  • Replit
  • CodeSandbox

モバイル・アプリケーション開発向けIDE

このタイプのIDEは、モバイル・アプリケーション開発に特化して設計されています。モバイル・アプリケーション開発向けIDEには、モバイル・テクノロジー向けの専用ライブラリーや、エミュレーター対応といった専用機能が備わっているのが一般的です。

モバイル・アプリケーション開発向けIDEの例:

  • VS CodeやIntelliJなどで利用できるFlutterのIDEプラグイン
  • Android開発向けのAndroid Studio

データベース特化型IDE

データベース向けのプログラミングには、それ特有の考慮事項があります。この種のIDEはデータベース開発を念頭に置いて設計されており、内蔵のクエリー・ビルダーやデータベース解析ツールといった機能を備えています。

データベース特化型IDEの例:

  • MySQLワークベンチ
  • Oracle SQL Developer
  • pgAdmin

プログラミング言語別/プロジェクト別のIDE

多くのIDEは多言語対応ですが、特定のプログラミング言語の特性に合わせて設計されたものもあります。また、プロジェクトの目的に応じて特化しているIDEもあります。言語別・プロジェクト別のIDEの例を以下に示します:

Java™

  • IntelliJ IDEA: Javaをサポートする堅牢なIDEで、高度なリファクタリング、コード解析、ビルド自動化を備えています。
  • Eclipse: GitHubのような公開リポジトリーで提供される豊富なプラグイン・エコシステムを活用できる、多用途なオープンソースIDEです。
  • NetBeans:無料で利用できる人気のオープンソースIDE。

Python

  • PyCharm: 科学計算をサポートし、Pythonでのコーディングに役立つ多数の機能を提供します。
  • IDLE: 比較的シンプルで、Python言語の学習を始める初心者に適しています。

ウェブ開発

  • Visual Studio Code:軽量かつ直感的なこのIDEは、Web開発に携わるプログラマーにとって信頼できる環境です。
  • WebStorm: JavaScript、TypeScriptなどのテクノロジーを扱うプログラマー向けに設計された専用IDEです。
関連ソリューション
IBMのエンタープライズ向けJavaアプリケーション・サービス

Javaアプリケーションを開発および配信するためのフルマネージドのシングルテナント・サービス。

Javaアプリの詳細はこちら
DevOpsソリューション

DevOpsソフトウェアとツールを使用して、複数のデバイスや環境でクラウドネイティブ・アプリケーションを構築、デプロイ、管理します。

DevOpsソリューションの詳細はこちら
エンタープライズ・アプリケーション開発サービス

クラウド・アプリケーション開発は、一度構築すれば、迅速に反復し、どこにでもデプロイできます。

アプリケーション開発サービス
次のステップ

IBM Cloudアプリケーション開発コンサルティング・サービスは、クラウド戦略を合理化するための専門家のガイダンスと革新的なソリューションを提供します。IBMのクラウドおよび開発のエキスパートと提携して、アプリケーションをモダナイズ、拡張、高速化し、ビジネスに変革をもたらします。

アプリケーション開発サービスの詳細はこちら IBM Cloudを無料で構築開始