マルチリージョンソフトウェア開発について | オリジナル、AI翻訳

Home 2025.07.13

国際企業では、シンガポール、香港、イギリス、アメリカ、中国など、複数の地域の人々を対象としたプロジェクトがよくあります。

私は、複数の地域のユーザーを対象としたプロジェクトで働いたことがあります。バックエンドプロジェクトでそれを正しく行うのは簡単ではありません。

スタンダードチャータード銀行には、SCモバイルインドやSCモバイル香港のようなアプリがあります。マクドナルドには、マクドナルド中国やマクドナルドUSAのようなバージョンがあります。スターバックスには、スターバックスUSAやスターバックス中国があります。基本的に、彼らは各国に独自のアプリを提供しています。中国のユーザーと国際ユーザーのログイン方法はしばしば異なります。携帯電話を使う以外に、中国のユーザーはWeChatでログインできることが多い一方、国際ユーザーはFacebook、Google、またはAppleでログインできます。

これらのアプリは、おそらく異なるバックエンドサーバーを使用しており、一部の機能が異なりますが、同じデザイン言語を維持しています。おそらく、最初の数年間は簡単に見えたり、実行可能に見えます。しかし、10年後には非常に苦痛であることを知るでしょう。メンテナンスコストや同期コスト、テストコストなど、重複した努力が山積みです。

しかし、Facebook、Google、Apple Payのような場合は比較的簡単です。誰かが「彼らは金融アプリではない」と言うかもしれませんが、彼らは遵守すべき規制があります。それは事実ではありません。規制はしばしばデータベースサーバー、データベース、または政府機関がチェックしたり監査会社が監査を行うデータを指します。しかし、その他の努力は同じです。ソフトウェアは非常に柔軟です。コードを同じリポジトリに置き、データソース構成を使用して異なる地域のデータをホストし、できるだけ同じコード、同じデザイン、同じワークフロー、同じテストを共有すべきです。

Apple Payはその良い例です。App Storeもその良い例です。彼らはすべての国にサービスを提供しています。

大手テック企業には、アジアや太平洋地域、北アメリカなどの大陸を分けるプロジェクトがあるかもしれません。これらについても同様です。

複数地域開発を始める際の最初のステップは、何が異なるのか、遵守すべき規制は何か、そして重複した努力をできるだけ減らす方法を知ることです。

テキスト読み上げの場合、Google Cloudは異なる言語をトレーニングする必要があります。彼らはそれに対して異なるモデルと異なる言語を提供しています。言語の違いは、音と文字の外観です。前者は、Google Cloudを使用してテキスト読み上げを行う場合、異なるモデルを使用する必要があることを意味します。文字の外観は、PDF生成を行う際にフォントの選択に注意する必要があることを意味します。

複数地域プロジェクトでは、Spring Bootプロジェクトでは、エイリアスと異なるオブジェクト初期化を使用して行うことができます。プロパティやYAML構成を賢く使用できます。すべての地域に基づく異なるロジックを特定のモジュールやクラスに入れることができます。

コードホスティングでは、異なる国ごとに異なるブランチを使用することは最初は簡単に見えますが、数年後にはどれほど苦痛かがわかります。他の地域のためにgit cherry-pickを行う必要があります。また、別のブランチで再テストする必要があります。小さな変更を行うたびに、ブランチに同期させる必要があります。時間が経つにつれて、コードやロジックの違いを最小限に抑えようとしない場合、複数の地域や国間のコードの違いは大きくなり、修正不可能になることがあります。

良い知らせは、AIがコードのリファクタリングやより良いコードの作成、またはマルチリージョンコード設計の問題の修正を支援できることです。どれほど大きな間違いでも、それを修正する時には小さな間違いです。

コーディング、デプロイメント、リリースメンテナンスだけでなく、拡張性についても考慮する必要があります。新しい国や地域を追加するにはどれだけの努力が必要ですか?それが最小限で、設定のみで済む場合、デザインは素晴らしいです。数ヶ月かかっても許容範囲です。数年かかる場合、それでも進めますか?

Yin Wangのエッセイ「On Linux,Windows 和 Mac」では、AdobeのデザイナーがPhotoshopをWindowsからmacOSに移行するのに2年かかったと話していると記載されています。

新しい地域をサポートするには2年の適応が必要ですか?一部のプロジェクトでは、その可能性があります。これは重要な設計上の考慮事項です。

世界はますますつながっています。最初にターゲットとする国や地域に関係なく、他の地域も考慮する必要があります。最初から正しく行うことが望ましいです。確立された国際企業では、少なくとも2つの国や地域のソフトウェア製品を開発することをお勧めします。最初から複数地域のマインドセットを維持することが重要です。より多くのエンジニアリングリソースを持っている場合、より多くの国や地域をサポートできます。


Back Donate