2009-10-15 1 views
6

私は、この言葉をプログラミングの世界では多くの「クロスカッティングの要件/懸念」に遭遇しています。プログラミングでクロスカットの要件/懸案事項は何を意味していますか?

私はそれがまだ何を意味するのか考えていると思いますが、私は明確な考えを持っていません。私はそれがWebサービスとSOA一般によく聞こえます。

これは、hello worldの例を使用して説明できますか?

答えて

8

「コードの実際の肉とはあまり関係がない、たくさんの場所でやりたいこと」を意味する傾向があります。

一般的な例としては、以下のとおりです。

  • セキュリティを扱うトランザクション
  • ログ
  • エラー、私はそれが普通Aspect-Oriented Programming(AOP)に関してで述べています見つける

を扱うこれは通常の試み宣言的にこのようなことを処理する、例えば属性/注釈付き。大幅な単純化として、コード自体を乱雑にすることなく、自動的にボイラー・プレート・コードを適用する(例えば、現行コンテキストでのユーザーの識別/権限を検証するため、またはメソッドのログ/出口を自動的に検証する)ケースです。

2

Postsharpのようなフレームワークを見て、ポストシャープサイトからthisの例を試してみることをお勧めします。あなたがJavaを知っているなら、AspectJにlokを見てみる価値があります。しかし、まずJon Skeetが投稿したリンクを読むことができます:)

3

クロスカットの標準的な "hello world"の例は、ロギングです。実動システムにエラーがあり、何が起こっているのかわかりません。これを解決するには、実際にコード内のどの関数が呼び出され、どのパラメータが取得され、返されるのかを確認する必要があります。

これは完全に自動化できる簡単な作業です。すべての関数(または何らかのフィルタを使用してサブセット)を見つけ、名前とパラメータを出力するロギング呼び出しを追加します。コードにはこのタスクを完了するために必要なすべての情報が含まれているので、本当に必要なのは、何千ものソースファイルを編集して各所にログステートメントを追加するのではなく、単一の場所で実行するツールです。

関連する問題