2009-10-15 32 views
6

這些我在編程世界中遇到很多「橫切需求/關注點」。Crosscutting需求/關注在編程中意味着什麼?

雖然我覺得我有一個想法它的意思是我還沒有一個清晰的想法。我通常在Web服務和SOA中聽到很多。

這可以用來解釋嗎?你好,世界的例子?

回答

8

它往往意味着「你想在很多地方做的東西,這與那段代碼的真正內容沒有太大關係」。

常見的例子有:

  • 事務處理
  • 安全
  • 記錄
  • 錯誤處理

我覺得它通常就提到Aspect-Oriented Programming(AOP)通常嘗試以聲明的方式處理這樣的事情,例如與屬性/註釋。作爲一種簡化,它是自動應用樣板代碼(例如,在當前上下文中驗證用戶的身份/權限,或者記錄方法的入口/出口)的一種情況,而不會使代碼本身變得雜亂。

2

我建議你看看Postsharp這樣的框架,並從postsharp站點嘗試this示例。如果你知道java進入AspectJ是很值得一看的。但首先,您可能想要閱讀由Jon Skeet發佈的鏈接:)

3

橫切的標準「hello world」示例記錄:您的生產系統中存在錯誤,您不知道發生了什麼。爲了解決這個問題,你真的需要看看代碼中的哪些函數被調用,他們得到了什麼參數以及返回的內容。

這是一個可以完全自動化的簡單任務:找到所有功能(或使用某種過濾器的子集),並向它們添加打印名稱和參數的日誌記錄調用。由於代碼包含完成此任務所需的所有信息,因此您真正需要的是一種可爲您完成的工具,它可以在單個位置執行此操作(而無需編輯數千個在任何地方添加日誌語句的源文件)。