Webの開発現場では以下のうちどのスタイルが
一般的でしょうか?
①本番やテスト時と同等の環境(OSやミドルウェア等)を
ローカルマシンとして用意し、そこで開発を行う。
②本番やテスト時と同等の仮想環境を
Vagrant, docker, VM等を使用して作り、
ローカルで編集したソースを仮想環境に送り
動作確認をする。
③開発用のサーバーが別途用意されており、
編集したソースを逐一そこにアップして
動作確認をする。
現場レベルでの意見を教えていただきたいです。
①だとこういうデメリットがある、とか
②だとこういうメリットがある~等。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/22 05:45
回答1件
0
ベストアンサー
一般的なのは(2)です。
- (1): ありよりの無し、支給パソコンが低スペックなら致し方なし
- (2): 仮想マシンはパフォーマンスをエディタやブラウザと食い合いになる
- (3): ありえない、Aさんが破壊的変更加えたら、Bさんが涙目で自分の修正箇所を見直したり犯人探しになる
(1)は依存ライブラリや言語のバージョンをまたぐ場合地獄になります。
例えば、前のプロジェクトはPHP5.6で作ってたけど、
新しいプロジェクトはなんか全てのコードが2倍速で動くPHP7にしましょう、サーバのコストも安く済みますよ!
みたいな感じで導入したとしましょう。
新しいプロジェクトの開発の為に、PHP5.6をアンインストールしてPHP7をインストールしました。
1ヶ月後、そこそこ新しいプロジェクトが起動に乗りいい感じです。
上司「takitsuboくん、PHP5.6の前プロジェクトで不具合が出たらしいからちょっと見てくれんかね?」
どうするんですか?
実際、支給マシン1個でもphpenv等を入れて頑張る事は可能です。
しかし、複数プロジェクトを面倒見るようになれば破綻します。
Aプロジェクトの依存モジュールを動かす為にインストールしておいたものが、
Bプロジェクトでも同じ依存モジュールが必要で、手順書に盛り込み忘れたにも関わらず、エラーが出ずにBプロジェクトが動作するケースが発生するからです。
そうなれば本番環境の検証中に初めてエラーが発生して右往左往することになります。
俗に言う「ぼくの環境では再現しませんでした」に繋がるわけです。
従って、本番環境と開発環境は常に必要最小限な依存モジュールのみが導入されたパソコンで有ることが望ましいのです。
それが出来るのは(2)が最善であり、(1)を利用する場合はプロジェクト数*メンバー人数分のマシンの準備が必要となります。
投稿2018/03/22 06:05
総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/22 06:44
2018/03/22 06:54 編集
退会済みユーザー
2018/03/22 07:07
2018/03/22 07:23
2018/03/22 07:27
退会済みユーザー
2018/03/22 07:37
退会済みユーザー
2018/03/22 07:41
2018/03/22 07:51
退会済みユーザー
2018/03/22 08:01
2018/03/22 08:04
退会済みユーザー
2018/03/22 09:18
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。