0

AOP (アスペクト指向プログラミング) について話すときは、それを適用できる分野横断的な問題について考える必要があります。

私が考える分野横断的な関心事の 1 つは、国際化です。

国際化などの問題を解決するために、AOP フレームワークを使用できますか? 誰かがそれを使用した経験がありますか?

4

1 に答える 1

3

すべてが I18n にある程度使用できます。ただし、車輪を再発明するか、物事を完全に台無しにする可能性が高くなります。

では、ちょっと考えてみましょう。分野横断的な関心事の典型的な例であり、典型的なユースケースはロギングです。しかしもちろん、それ以外の用途にも使用できます。唯一の前提条件は、繰り返し行うことを多かれ少なかれ同じ方法で行う必要があるということです。

この方法でI18nできますか?もちろん、次の目的で使用できます。

  • フォーマット番号
  • 日付と時刻のフォーマット

ただし、文字列の翻訳(可能ですが...待ってください)やメッセージ(vel文字列)のフォーマットなど、他のI18nの問題についてはよくわかりません。実際、すべてのプレースホルダー、有効な複数形などを含むメッセージのフォーマットを想像するのは難しいです。可能かもしれませんが、現時点では見えません。

最後だが大事なことは。I18n に AOP を使用できるからといって、そうすべきというわけではありません。AOP に対する一般的な批判は、コードを理解するのが難しくなる (または不可能になることさえある) というものです。ほとんどの人が本当に理解していない概念ではなく、プレーンで古い (時は飛ぶ、ご存知のように) Inversion of Controlを使用する方が良い場合があります。

また、I18n はいつでも追加できる機能ではなく、最初から最後までアプリケーションの不可欠な部分である必要があることにも注意してください。さらに悪いことに、それはコードだけでなく、ユーザー インターフェイスや国際的なユーザー エクスペリエンス全体にも関係しています。
AOP やその他のプログラミング概念を使用するだけで、あなた (または完全に正直な人) が I18n プログラミングの聖杯を見つけることはほとんどありません。そんな簡単な方法で解決するには難しすぎる問題です...

于 2013-02-04T19:08:28.727 に答える