質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

3752閲覧

ローカル開発環境とリモート開発環境の差異について

teramasa

総合スコア76

Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

2クリップ

投稿2016/01/04 06:28

みなさんはローカル開発環境とリモート開発環境の差異をどのように埋めて対処されていますか?

たとえばローカルの環境で Ajax の投げ先を localhostにしているが、サーバー本番環境ではドメイン名に変えなくてはいけないなど。

ローカルからGitのリモートリポジトリにプッシュする前に、いちいち本番用の設定やファイルに書き換えてからコミット&プッシュしていると大変ですよね。

URIだけでなくアプリケーションサーバーの設定だとか何かとローカルとリモートの環境差異に苦しめられています。

こういった差異をどう埋めれば工数を少なく出来るか、どういった解決策があるかみなさんのお知恵を拝借したくぜひともお願いいたします。

言語やフレームワークに絞った話ではありませんが、参考までに Java, SpringBoot, Apache, Tomcat(非組込)がリモートの本番環境です。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

環境ごとに値が変わる設定項目は、環境変数やプロパティーで切り替えられるようにしておきます。

...

一例として、以下の方法があります。

設定項目を、環境ごとのプロパティーグループにしておきます。
例えば、プロパティーグループ名を、

  • ローカル開発環境: development
  • リモート開発環境: integration
  • 準本番環境: staging
  • 本番環境: production

のようにします。
環境の呼び方は様々ありますので、実際にプロジェクトに存在する呼び方に合わせてください。

そして、設定ファイルからホスト名を取得するのに、ローカル開発環境ではdevelopment.hostnameを参照し、リモート開発環境はintegration.hostnameを参照します。
ファイルごと切り替える方法もあります。例えば、設定ファイルをapp-development.properties,app-production.propertiesのように分けます。

サービスを起動する際に、例えばローカル開発環境で実行する場合は、環境変数またはシステムプロパティーにenv=developmentをつけるとdevelopmentグループの設定を使って動作するようにします。
単体テスト用のtestingを設ける場合もあります。

フレームワークでこのような切り替えを支援している機能を持つものもあります。

参考リンク:

FuelPHPの複数環境切り替えとはまった所 - Qiita
http://qiita.com/cs_sonar/items/966203da32c933d65e39

Spring Boot - 設定を環境で切替える - JavaとWeb開発
http://web-develop.hatenablog.jp/entry/2015/06/22/185451

ソフトウェア開発の4つの層 - Miuran Business Systems
http://www.m-bsys.com/devtest/4tiers

投稿2016/01/04 07:28

編集2016/01/04 13:00
argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teramasa

2016/01/04 12:47

argiusさま 詳しい回答をいただきありがとうございます! 開発ステージごとに設定を準備しておいて、それを切り替えて実行するという方法なのですね。勉強になりました。 また、ちょうどSpringBootのapplication.propertiesで設定をしていましたので、特に二つにご紹介いただいた記事の内容は有難いものでした。 環境ごとの切り替えという点をもっと勉強して今後に活かしていきたいと思います。 ありがとうございました。
argius

2016/01/04 13:05

たまたま選んだSpring Bootの記事が参考になったみたいで良かったです。 JavaなのでSpringの可能性はあるとは思いましたが... 他の言語のフレームワークでも、例えばRailsなども同様の考えだったと思います。 覚えておくと便利だと思いますのでがんばってください。
guest

0

設定ファイルを環境毎に

  • config.devel.php
  • config.stage.php
  • config.prod.php

のように分けて .htaccess で切り替えるように制御しています。
.htaccess では

SetEnv ENVIRONMENT devel

のように定義しておき、PHP側では

PHP

1$env = getenv('ENVIRONMENT'); 2$file = 'config.' . ($env == null ? 'devel' : $env) . '.php'; 3$file を読み込む処理

みたいな感じで読み込む設定ファイルを切り分けています。

全環境で共通の設定については config.common.php みたいなものを作っておき、その設定ファイルを読み込んだ後で環境毎の設定ファイルを読み込み array_merge しています。

投稿2016/01/04 12:55

hyper-drums-ko

総合スコア736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teramasa

2016/01/04 13:20

hyper-drums-koさま 回答いただきありがとうございます!なるほど、設定コードを各ステージで分けて.htaccessで切り替えるという方法なんですね。今後の参考にさせていただきます。 時間差でベストアンサーをお付けできないことをお詫びいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問