GAEの開発環境という言葉がまぎらわしい
デプロイしたからといってそこが本番環境とは限らないのだよね。GAE上に開発用アプリケーションをつくることはよくあるわけで。
特にホスト名の管理が必要なアプリの場合。たとえば、あるURLを特定のホスト名でしか見れなくする、あるいはリダイレクトする、あるいはcanonical urlを設定したいときも。個人的にはよくある。
そんなときに、ローカルの開発環境ではこのホスト名、開発用アプリケーションにデプロイしたときはこのホスト名、本番環境ではこのホスト名、というのをヘタにコードにすると、
if (AppEngineUtil.isProduction() && env.isDevelopment()) { // ... }
みたいな、どっちなんだよ!状態になったりして。
最近は↓のようなユーティリティをつくるようになりました。
public class HogeUtil { public static boolean isRunningOnServer() { return SystemProperty.environment.value() == SystemProperty.Environment.Value.Production; } public static boolean isRunningOnLocalhost() { return SystemProperty.environment.value() == SystemProperty.Environment.Value.Development; } }