私がこれまでに取り組んだ2つのプロジェクトでは、チームは開発サーバーよりもローカル開発環境を好みます。
あるプロジェクトリーダーは、インターネット接続を必要としないため、ローカルの方が優れていると述べました。しかし、これは開発時に想定されているようです。
通常どちらが良いですか?
私がこれまでに取り組んだ2つのプロジェクトでは、チームは開発サーバーよりもローカル開発環境を好みます。
あるプロジェクトリーダーは、インターネット接続を必要としないため、ローカルの方が優れていると述べました。しかし、これは開発時に想定されているようです。
通常どちらが良いですか?
回答:
実際には3つのオプションがあります。
機能の自己完結型の部分を完了し、コードが完全に破損していないことを確認したら、ローカル開発オプションのいずれかを使用し、共有開発サーバーにプッシュします。
実際の開発環境は、IT部門/会社がどのように組織され、運営されているかに大きく依存します。一般に、閉じた開発環境は運用環境の環境と一致しています。
たとえば、インターネットアクセスを必要としないスタンドアロンのデスクトップアプリケーションを開発している場合は、もちろんローカルの開発環境でも問題ありません。
一方、リモートサーバー/データベースなどとの通信を必要とするデスクトップアプリケーションを開発していて、これをシミュレーションするためのネットワーク接続がない場合は、ネットワークの遅延、セキュリティの問題が原因で、本番環境に追加のバグが見つかる場合があります。
インターネット/クラウドアプリケーションを開発している場合は、アプリケーションを開発するためにインターネットが必要になる可能性がありますが、テストと検証にはアクセスが必要です。
ところで、開発サーバーをローカルネットワークに接続するのにインターネット接続は必要ありません。
両方して
作業が終了し、すべてテストされるまで、ローカル開発。
1日の終わりに共有サーバーにプッシュし、統合テストを実行して、何も壊していないことを確認します。
どうして?
ローカルでコーディングする方が高速です。テスト間のステップが減り、統合の心配が減ります。
共有サーバーにプッシュした後でのみ障害が発生すると、障害の分離がより簡単になります。ローカルで正常に動作することを知っているので、共有サーバーとの統合方法と関係があるはずです。共有サーバーで直接作業した場合、バグを絞り込むのは特に困難です。
私はそれを次のようにします:
1人の担当者が1日の終わりに変更をプッシュすると、すべての統合テストが実行され、失敗した場合は、誰がコードを破ってプロジェクトに失敗したかが正確にわかります。変更をロールバックし、ローカルで問題を修正してから、もう一度プッシュして、すべてのテストがパスするまで繰り返し、次に次の担当者に伝えます。