ローカル開発環境の必要性について
初心者がまずつまずいてしまう、開発環境作りについてお話します。
初心者のうちは、WindowsやMacのPCに直にプログラミング言語(PHP、Python、Ruby)などを入れ、 勉強や開発を行う事が多いかなと思います。
ですが、ネットのサイトを参考にしていると、開発環境やローカル開発環境といったワードが出てきて、
「なんだそれ!」
ってなってしまいます。(僕もそうでした...)
「なんか難しいことをしてるけど、普通に自分のPCにそのまま、プログラミング言語インストールするだけじゃダメなの?」 と思われる方が多いかなと思います。
そこで、なぜローカル開発環境というものをわざわざ用意し、プログラミングしているのかを噛み砕いて説明します。
目次
- 「ごちゃごちゃ」にならないために
- チームで開発するために
- 開発環境と本番環境という考え
- ざっくりまとめ
「ごちゃごちゃ」にならないために
例えば、あなたがPHPでプログラム書くぞっとなった場合まず初めにすることと言えば、
PHPをインストールする。そしてガリガリコードを書きますよね。
このくらいですよね。 ではこの後、あなたは何かを解析したくなって、Pythonも入れたくなりました。
するとあなたのPCにはPHPもPythonも入っています。こんな調子で、Rubyを入れたり、WebサーバのApacheを入れたり、データベースのMySQLを入れたりしはじめます。
月日が立つに連れて、あなたのPCはいろいろな言語やミドルウェア(Apache、MySQL等)がどんどん増えていきます。
一見すると、なんでも揃っていて、非常に便利なPCです。
ですが、なんでも出来る環境が「良い環境」と言えるでしょうか?
部屋に例えて言うと、布団とベッドがあったり座椅子やソファーがあったり、和風のもの洋風のもの部屋の中はごちゃごちゃになっています。 気分によって自分の好きなように出来るのは良いことですが、ごちゃごちゃな部屋で生活はあまりしたくありませんよね。
開発環境も同じで、PHPで開発している時は、PythonやRubyは必要ありません。必要でないものは極力排除していくというのが、良い考えだと思います。 「必要な時に必要な環境」で開発するというのが良い開発スタイルです。
部屋の例をとると、洋風の家具があれば、それらは一つの部屋に集約します。 なので、「なんか今日は洋風な気分だ(どんな気分かは置いといて...)」となれば、洋風の部屋に行けばよいのです。
このように部屋をある一定のまとまりで、ポコポコと作ってい行くことによって、整理整頓されていきます。
開発環境も用途(開発するサービス)によって作成し、必要な言語やミドルウェアをインストールするのがセオリーです。セロリではありません。
プログラミングをしていく上で、何事も「ごちゃごちゃ」にさせないと言うのは非常に重要な考え方です。
チームで開発するために
この記事を読んでいる人は、一人で開発をしているでしょうか? 複数人でチームを組んで、開発することはありませんか?今はなくともプログラマーであればチームでの開発はいずれ訪れます。
チームで何かを開発するのは、とても楽しいことです。
しかし、開発環境がチーム内でバラバラだと、「辛い思い」をします。 僕も辛い過去が....。
何が辛いかというと、
- 一人はWindows
- 一人はMac
- 一人はLinux
のようにまずOSが違ってくると、インストールするべきものが変わってきます。WindowsでインストールするものがMacではいらなかったり、その逆もしかりです。何がどのバージョンで必要なのか洗い出さないといけません。 こんなめんどくさい事できません!!というか誰もしたくありません。
また、OSのバージョンによっても左右されたり、ミドルウェアのバージョンによっても、不具合がおきたりします。
同じように構築したけど、Macで動いて、Windowsでは動かない!なんてことが往々にして起きます。
やはりこんな時、全てのOSで動くローカル開発環境を作っておけば、ローカル開発環境にインストールしていくものは、全て同じでよいです。 誰か一人が構築(インストールや設定)した手順を、何も考えず実行すれば良いだけです(本当は考えてほしいところですが)。
開発中に新しく、インストールするものが増えた!となった場合には、誰か一人がお試しでインストールして、うまく動いたら、同じことをみんなでしていけば良いだけです。
非常に楽で、確実だと思いますよね!これだけで気分が晴れます。
開発環境と本番環境という考え
最後に2つの環境について説明します。
何かサービスを作っていく上では、まず開発を初めに行います。 この時は、自分のPCのローカル開発環境内でしかサービスです。
これを全世界の人に使ってもらうためには、「公開」というステップを踏む必要があります。 サーバを借りて、作ったコードをコピーして、公開する。
この時、公開用のサーバを、本番環境やプロダクト環境と呼んだりします。 この本番環境は、開発環境と全く同じように構築しないといけません。
本番環境だけ、「言語の最新バージョンが出てたから、最新使おう!」なんてことをすると、公開した時に、本当にサービスが動くかどうかなんて分かりません。自分の意図しないところで、必要な機能が消えてたりします。
開発環境と本番環境の設定が違うがために、「動かなくなる」なんて事は絶対にあってはいけません。 なので、必ず開発環境と「同じOS」、「同じミドルウェア」、「同じミドルウェア」で本番環境は構築しなければなりません。
そうすれば開発環境で動くものは「動く」、動かないものは「動かない」ということが分かります。
ここが最上級に重要な考え方です。
ざっくりまとめ
- いっぱい部屋を作って、部屋ごとにまとまりを作ってごちゃごちゃを解消する。
- チーム開発のときは、個々が思い思いの環境を作ると、チームが崩壊していく。
- 開発環境と本番環境の設定を揃えないと、公開した時に事故る。
ざっくりまとめてみましたが、今回の内容はとても、とても重要なことなので、 環境には気をつけ、楽で楽しい、プログラミングライフを送って行きましょう!