プロダクション コードで Reactive UI を使用する可能性を調べてきました。一部の機能は非常に魅力的ですが、このライブラリに依存することに懸念があります。これらには以下が含まれます:
風変わりなネーミングと慣習。たとえば、小文字で始まる保護されたメンバーであり、
RaiseAndSetIfChanged
メソッドはアンダースコアで始まるプライベート メンバーに依存します。Paul Betts (ReactiveUI の作成者) が Ruby のバックグラウンドを持っていることは理解しています。ただし、(Stylecop による) 標準の命名が私のプロジェクト全体に適用されるため、これは私にとって実際の問題を引き起こします。強制されなかったとしても、これが原因でネーミングに矛盾が生じることを懸念しています。ドキュメント/サンプルの欠如。いくつかのドキュメントと孤独なサンプルがあります。ただし、ドキュメントは一連の (古い) ブログ投稿にすぎず、サンプルはライブラリの V2 に基づいています (現在は V4 にあります)。
部分的に奇妙なデザイン。たとえば、ロギングは、特定のロギング フレームワークに依存しないように抽象化されます。けっこうだ。ただし、(NLog ではなく) log4net を使用しているため、独自のアダプターが必要になります。それには を実装する必要があると思います
IRxUIFullLogger
。これには、メトリクスの大量のメソッドが含まれています (50 をはるかに超える)。非常に単純なインターフェースを定義し、ReactiveUI 内に拡張メソッドを提供して、必要なすべてのオーバーロードを容易にする方が、はるかに優れたアプローチだと思いました。さらにIWantsToRegisterStuff
、NLog アセンブリが依存する奇妙なインターフェイスがありますが、これには依存できません (内部インターフェイスであるため)。私はそれが必要ないことを願っています...とにかく、ここでの私の関心は、ライブラリの全体的な設計です。これに噛まれた人いますか?
私はすでにMVVM Lightを広範囲に使用しています。技術的には両方を使用できると Paul がブログに投稿したことは知っていますが、私の懸念は保守性に関するものです。コードベースに両方が混在していると、ひどく混乱するのではないかと思います。
本番環境でリアクティブ UI を使用した経験のある人はいますか? もしそうなら、あなたは私の上記の懸念のいずれかを緩和または対処することができますか?