54306


Webアプリケーションの開発方法について教えていただきたいです。

数人でリモートなどで開発を行なっている時に、  
どのようにして開発をするのでしょうか？  
例えば、本番用のサーバーがあったとして、  
Git？などを使って開発する場合、  
ローカルに本番環境と同じ環境を作って、そこで動かして問題なければ本番用サーバーと同期をとるという形でしょうか？  
それとも、ファイルなどを編集したら一度本番環境に持っていって動作確認をするのでしょうか？

まだ、私は現場で働いた経験がないので、的外れなことを言っているかもしれません。  
ご理解のほどよろしくお願いいたします。

現場や作るものによっても方法なども変わってくると思うので、  
経験がある方にどのような流れで開発を行なったのか具体的に教えていただきたいです。  
よろしくお願いいたします。


CC BY-SA 4.0
2019-04-18T12:23:15.900
54293
2020-02-22T05:22:27.893
2020-02-22T05:22:27.893
3060
29047
question
ruby-on-rails laravel
Webアプリケーションの開発方法について


>
> ローカルに本番環境と同じ環境を作って、そこで動かして問題なければ本番用サーバーと同期をとるという形でしょうか？それとも、ファイルなどを編集したら一度本番環境に持っていって動作確認をするのでしょうか？

どちらかというと、前者です。本番環境（エンドユーザーが利用する環境）で動作確認することは基本的に無いと思います。ローカル環境は本番環境と完全に同じ構成ではないことが多いので、最終的な動作確認をするとすれば本番環境同等のテスト環境（開発者共用の環境）になると思います。

「数人でリモートなどでWebアプリケーションの開発」ということであれば、一般的に以下を使うことが多いと思います（※ソフトウェアがJavaの開発に関するものになっています。Rubyは詳しくないです。すいません）。

  * IDE（IntelliJ、Eclipseなど）
  * バージョン管理サーバー（GitHub、Bitbucketなど）
  * バージョン管理クライアント（gitコマンド、SourceTreeなど）
  * ビルドツール（Maven、Gradleなど）
  * CIツール（Travis CI、Jenkinsなど）
  * 静的解析ツール（SonarQube、 FindBugsなど）
  * テストツール（JUnit、Seleniumなど）
  * 課題管理システム（JIRA、Redmineなど）

これらを使った開発のおおまかな流れは以下のようになります。

Webアプリケーションのソースコードはバージョン管理サーバーで管理し、開発者はバージョン管理クライアントツールでローカルにそのソースコードをダウンロードして、ビルドツールでビルドします。

ビルドが完了したら、IDEでそのソースコードのあるディレクトリをオープンし、開発を行います。ソースコードを修正したら、IDEのデバッグ機能などを使って、意図した動作をしているか確認します。問題がなければ、ローカル環境で再度ビルドします。ビルドをすると、同時に静的解析ツールとテストツールが実行されて、エラーが無ければ最終的な成果物ができあがります。

そして、バージョン管理サーバーにソースコードをプッシュします。プッシュすると、バージョン管理サーバーと連携したCIがサーバー上で、再度ソースコードの静的解析、テスト、ビルドを実施します。これで問題が無ければ、プルリクエストを依頼して、レビュアーに修正内容を確認してもらいます。レビューはブラウザーを使って、バージョン管理サーバーが提供する画面上で行います。

レビュアーから指摘があれば、指摘を反映させ、再度同様の手順でプルリクエストします。レビュアーがOKを出せば、プルリクエストがマージされます。

Webアプリケーションの課題（バグやエンハンス要望）は課題管理システムで管理します。

Javaですが、[この記事](https://syobochim.hatenablog.com/entry/2015/09/03/214050)は1つの事例として参考になると思います。


CC BY-SA 4.0
2019-04-19T01:08:53.013
54306
2019-04-19T01:14:08.183
2019-04-19T01:14:08.183
21092
21092
54293
answer


一般的な rails では:

  1. ローカルで問題なく動く
  2. テストを通す
  3. staging 環境(production として動作させるが、実際の production ではない環境) にデプロイして様子みる
  4. production 環境にデプロイする。

なんじゃないかな、と思っています。


CC BY-SA 4.0
2019-04-19T01:22:46.063
54308
2019-04-19T01:22:46.063
754
54293
answer