こんにちは。ショッピングユニットのエンジニア面屋です。
エンジニアとして開発を行なっている中で、気になった開発環境の構築について話をしてみたいと思います。
開発を始める際にまず行うのが環境構築です。
環境構築は会社によって決まっていたり、開発するサービスによって分けたりと、様々かと思います。
私が今まで関わったプロジェクトも開発環境は様々で、サービスによって変わったり、新しい構築方法が出てきたら試行錯誤を行うなど、開発を開始できる状態にすることのハードルが高かったイメージがあります。
今まで経験した開発環境の構築方法
1. マシン(Windows or Mac PC)に直接構築する
直接マシン構築するため、マシンの状態によって構築がスムーズにいかないことがありました。
マシンによって構築手順に少しばらつきが発生するなど、共有が難しかったです。
2. Vagrantの仮想環境に構築する
Vagrantとは、仮想開発環境を構築・共有するためのソフトウェアです。
これを使用することにより、構築時にマシンによる影響を考慮する必要がなくなりました。
3. dockerを利用して構築する
dockerとはコンテナ型仮想化ソフトウェアと呼ばれ、マシンのOSの一部を共有して、アプリケーションを実行します。これを使用することにより、環境の構築手順がさらに容易になり、利用開始までの時間が短くなりました。
個人的に1,2に関してはすんなり構築できたことがなく、手間取ってしまうことが多かった記憶があります。
理由は、
- インストールするソフトウェアのバージョンによって構築が上手くできなかったことがある
- インストールするソフトウェアやツールが多く、後で追加で必要なツールが見つかる
- 利用するPCに搭載されているソフトウェアの影響で手順通りに構築がでいない
などです。
構築手順も複雑なので、当時の先輩につきっきりで確認してもらいながら構築しました。
ただ、ここ数年でWeb登録するだけでオンライン上で開発ができる環境(Cloud9のような)が出てきており、専門的な知識がなくても環境構築ができるようになってきています。
構築が容易になっていることで開発着手までの時間が短縮されるのは良いことですが、
- なぜこのような環境を構築するか?
- 仕組みがどうなっているか?
というもっと根本的な部分を理解することが大事だと個人的に感じております。
私自身、エンジニアとしての経験はまだまだですが、環境構築は開発をする上での土台となる重要な部分ですので、しっかりと把握してこれから色々なサービスを楽しく開発していきたいと思います。
以上、環境構築について私が経験した内容と思っていることについて書かせて頂きました。