AOP を生産的なソフトウェア開発に導入するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2155936

  •  23-09-2019
  •  | 
  •  

質問

この質問は以前にも行われたことは知っていますが、再質問する時期が来たのではないかと思いましたが、これは 1 年半前のことでした。また、それが主観的であると見なされる可能性があることも認識していましたが、AOP に賛成/反対する客観的な理由があるのではないかと思います。

興味があります AOP を使用しているのは誰ですか ソフトウェア開発でも、 なぜ または なぜだめですか それを使って。

私は AOP を、多くの開発タスクを容易にする非常に強力なパラダイムだと考えています。しかし、現実世界のプロジェクトで AOP を使用することになると、私は多くの経験を積んできました。 決定を下す人 それに対してかろうじてオープンです。 どのようにして AOP をプロジェクトに導入できましたか?

2008 年 8 月に以前に寄せられた質問: 実稼働ソフトウェアで AOP (アスペクト指向プログラミング) を使用していますか?

役に立ちましたか?

解決

私たちのマネージャーは、建築チームの意見に耳を傾けます。

私たちは、AOP が相互懸念機能を実装する唯一のソリューションであることを彼らに伝えます。

  • そもそもリーズナブルなコストで
  • 開発チームが書いた機能コードをいじることなく
  • (何千ものメソッドに手動で try-catch を追加する場合と比較して) 現在も将来も忘れることなく
  • 開発者が何をしているかをトレーニングしたり制御したりする必要はありません (素晴らしいものもあれば、本当にひどいものもあります)
  • メンテナンス性が良い

確かに、私たちのプロジェクトは 20 人の開発者で構成され、数年間続いたので、膨大な量のコードがあります。それが唯一の解決策です。

重要なのは、横断的な関心事に対してのみ使用することだと思います。通常のコードを使用してコーディングできる場合は、そうしてください。しかし、それが大きすぎる場合は、AOP が魅力的であり、正当化されます。AOP を制限しないと、数百もの小さな AOP コードが作成され、理解するのが非常に難しくなります。

はい、私たちのソフトウェアは製品版ソフトウェアです。何百ものクリニックがこの製品に依存しています。

他のヒント

私たちは、それ自体がAOPを100%使用していないが、はい、我々は適切に感じるたびに使用しています(主に春AOP;そううまくSpringフレームワークと統合されている)。

  

どのようにあなたのプロジェクトにAOPを導入するために管理するのですか?

さて、横断的関心事を分離など。メソッド呼び出しをトレースします。春AOPでは、あなたは、コードのの「フック」のセクションに適用されます側面(実行時の動作)を定義することができます。私が意味する「フック」を使用すると、あなたは一つの共通の傘の下でこの動作を必要とするすべてのメソッドのグループにできるはずです。あなたの側面で定義された実行時には、このumbrella'edコードは、新しい行動を取得します。

Peakitとして春AOPは、すでにプロジェクトでSpringフレームワークを使用している場合、ご紹介するのは簡単であると述べました。

私が最初に内部でのみ使用され、顧客にリリースされることはありません、私たちのツールのプロジェクトのためにAspectJを追加しました。これは、ツールの信頼を獲得し、それが彼らのために何ができるかについての明確なアイデアを持っている開発チームと管理の両方を助けました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top