この記事の目次
開発環境の基礎
エンジニアがプログラムを作るために使う「開発環境」の基本的な構成要素と概念を理解しましょう。
開発環境とは
開発環境とは、プログラムを作成・実行・テストするために必要なソフトウェアや設定の集合です。
開発環境の主要な構成要素
1. IDE(統合開発環境)
プログラムを書くための専用ソフトウェアです。
| IDE | 主な用途 |
|---|---|
| Visual Studio | C#、.NET開発 |
| Visual Studio Code | 多言語対応の軽量エディタ |
| IntelliJ IDEA | Java開発 |
| Eclipse | Java開発 |
| Xcode | iOS/macOS開発 |
| Android Studio | Android開発 |
IDEの主な機能
- コード補完:入力候補を表示してくれる
- シンタックスハイライト:コードを色分けして見やすくする
- デバッグ機能:プログラムを1行ずつ実行して問題を見つける
- バージョン管理連携:Gitなどと連携して変更履歴を管理
2. バージョン管理システム
コードの変更履歴を管理するシステムです。
詳細は Gitの基礎 を参照してください。
3. ビルドツール
ソースコードを実行可能な形式に変換するツールです。
ビルドには複数の工程があります。
| 工程 | 何をするか |
|---|---|
| コンパイル | ソースコードを機械語(または中間コード)に変換 |
| リンク | 複数のファイルやライブラリを結合 |
| パッケージング | 実行に必要なファイルをまとめる |
詳細は ビルドの基礎 を参照してください。
4. ライブラリとフレームワーク
他の人が作った再利用可能なプログラムです。
| 種類 | 説明 | 例 |
|---|---|---|
| ライブラリ | 特定の機能を提供する部品 | 日付処理、暗号化、画像処理 |
| フレームワーク | アプリの骨組みを提供 | Spring、React、Rails |
これらを使うことで、すべてを自分で作る必要がなくなります。
5. パッケージ管理ツール
ライブラリを簡単にインストール・管理するツールです。
| 言語 | パッケージ管理ツール |
|---|---|
| JavaScript/Node.js | npm、yarn |
| Python | pip |
| Java | Maven、Gradle |
| C# | NuGet |
| Ruby | gem、Bundler |
詳細は パッケージ管理と依存関係 を参照してください。
知っておくべき基本概念
ソースコードと実行ファイル
| 種類 | 説明 |
|---|---|
| ソースコード | 人間が書いたプログラム(テキストファイル) |
| 実行ファイル | コンピュータが直接実行できる形式(.exe、.dllなど) |
ソースコードは人間が読めますが、コンピュータは直接実行できません。ビルドという工程で実行可能な形式に変換します。
デバッグビルドとリリースビルド
ビルドには2つのモードがあります。
| モード | 目的 | 特徴 |
|---|---|---|
| デバッグビルド | 開発・テスト用 | デバッグ情報あり、最適化なし、動作は遅い |
| リリースビルド | 本番用 | デバッグ情報なし、最適化あり、動作は速い |
開発中はデバッグビルドを使い、本番環境にはリリースビルドを配布します。
詳細は ビルドの基礎 を参照してください。
依存関係(ディペンデンシー)
あるプログラムが動くために必要な他のプログラムのことです。
あなたのプログラム
├── ライブラリA
│ └── ライブラリC
└── ライブラリB
└── ライブラリC
ライブラリAを使うには、ライブラリCも必要...というように、依存関係が連鎖します。
詳細は パッケージ管理と依存関係 を参照してください。
lib/dll/soファイル
プログラムで使われるライブラリファイルにはいくつかの形式があります。
| 形式 | OS | 説明 |
|---|---|---|
| .lib | Windows | 静的ライブラリ(ビルド時に組み込む) |
| .dll | Windows | 動的ライブラリ(実行時に読み込む) |
| .so | Linux | 共有ライブラリ(.dllに相当) |
| .a | Linux/macOS | 静的ライブラリ(.libに相当) |
| .dylib | macOS | 動的ライブラリ(.dllに相当) |
詳細は ビルドの基礎 を参照してください。
環境の種類
開発では、複数の環境を使い分けます。
| 環境 | 目的 | 誰が使うか |
|---|---|---|
| ローカル環境 | 自分のPCで開発・テスト | 開発者本人 |
| 開発環境(Dev) | チームで共有する開発用 | 開発チーム |
| ステージング環境 | 本番に近い確認用 | 開発チーム、テスター |
| 本番環境(Production) | 実際にユーザーが使う | エンドユーザー |
なぜ環境を分けるのか
- ローカル環境で自由に開発・テスト
- 開発環境でチームの変更を統合してテスト
- ステージング環境で本番と同じ条件で最終確認
- 本番環境で実際のユーザーに提供
環境を分けることで、開発中の問題が本番に影響しないようにします。
環境構築でよくあるトラブル
「動かない」とき
- エラーメッセージを確認する
- 必要なソフトウェアがインストールされているか確認
- バージョンが合っているか確認
- 設定ファイルが正しいか確認
環境構築で困ったら
- プロジェクトのREADMEを読む
- 環境構築手順書を確認する
- 先輩に聞く
環境構築は「一度うまくいけばOK」なので、最初は先輩に助けてもらいながら進めましょう。
まとめ
| 要素 | 役割 |
|---|---|
| IDE | コードを書くためのツール |
| バージョン管理 | コードの変更履歴を管理 |
| ビルドツール | ソースコードを実行可能な形式に変換 |
| ライブラリ | 再利用可能な部品 |
| パッケージ管理 | ライブラリのインストール・管理 |
これらの概念を理解していれば、どの現場に行っても「何をしているのか」が分かるようになります。
詳細は以下を参照してください:
- ビルドの基礎 - コンパイル、リンク、デバッグ/リリースビルドなど
- パッケージ管理と依存関係 - パッケージ管理ツール、依存関係の仕組み