この記事で話すこと
- 開発環境は一大事
- 基本とトレンドをざっくり把握する
そもそも「開発環境」って?
アプリを動かしたり開発するためには 部品 が必要。
開発に必要な部品がパソコンにインストールされている状態を開発環境という。
OS
パソコンの基本機能を実現するためのもの。
フロントエンドからOSの基本機能を直接呼びだすことは、ほぼない。
ライブラリ(1/2)
プログラマがよく使う部品は、ライブラリとして提供される。
プログラマは、ライブラリのおかけでとっても楽できる![]()
ライブラリ(2/2)
「プログラマの仕事って大体は、ライブラリを接着剤で組み合わせてつくることじゃね?」みたいな風潮もある。
しかし、うまく接着するには、それなりの練習は必要。センスも問われる。
パッケージ
部品は、パソコンで管理しやすいように パッケージ という単位で管理される。
パッケージは、パッケージマネージャで管理する。
【
ポイント】どんなパッケージを使うかは自由だけど、カジュアルなパッケージを使うと地獄。
パッケージマネージャ
- インストール(グローバル/ローカル)
- アップデート
AppStoreのような便利なツール。
多種多様なパッケージマネージャがある。
// 余談、OSをパッケージとして扱うこともある。
// パッケージのアンイストールは要注意。
パッケージマネージャの地図
Windows界隈は、特にカオスなので要注意
npm(Node Package Manager)
フロントエンド界隈の王者。ゴミノイジーなパッケージが多くて批判も多い。

How do you deal with node_modules?より引用。
「環境差異」の問題
パッケージは、バージョンが少し違うだけでも動かなくなったりする。
コンピュータ全体ではなく特定のディレクトリにだけパッケージをローカルインストールする手法も流行ったけど、
近年では、環境を丸ごと簡単に構築できるコンテナ技術(Docker)が広く普及している。
デプロイ(1/2)
アプリを他のユーザーにアクセスしてもらうには、デプロイという行為が必要。
デプロイ(2/2)
リポジトリ(例えばGitHub)を中心に定期的(だいたいpushのタイミング)に、デプロイするという手法が一般的。
【
ポイント】プログラムは、環境差異によってすぐ壊れる。小まめなデプロイが大事。
おまけ(類似用語)
混同しやすい用語の比較表
| 用語 | 文脈 | 再利用性 | 目的 |
|---|---|---|---|
| モジュール | プログラムの分割方法 | × | プログラムを部品として分割して変更に強くする。 |
| コンポーネント | 設計のパラダイム | ○ | プログラムを部品の組み合わせとして考える。 |
| パッケージ | 部品の配布 | ○ | 部品を配布しやすいものにする。 |
おまけ2(ほかの環境)
| 環境名 | 説明 |
|---|---|
| 実行環境 | プログラムを実行できる環境。ウェブサービスであれば、モダンブラウザさえあればだいたい良い。 |
| プロダクション環境 | ユーザーが利用するサーバーの環境。 |
| ステージング環境 | プロダクション環境に移行する前に、テストするための環境。可能な限りプロダクション環境と一致してなければいけない。 |


