2009-10-15 33 views
6

Tôi thấy thuật ngữ này rất nhiều "yêu cầu/mối quan tâm xuyên suốt" trong thế giới lập trình.Yêu cầu Crosscutting/Mối quan tâm có nghĩa là gì trong Lập trình?

Mặc dù tôi nghĩ rằng tôi có ý tưởng về điều đó có nghĩa là tôi vẫn chưa có ý tưởng rõ ràng. Tôi nghe rất nhiều về dịch vụ web và SOA nói chung.

Điều này có thể được giải thích bằng cách sử dụng ví dụ hello world không?

Trả lời

8

Nó có xu hướng có nghĩa là "những thứ bạn muốn làm ở nhiều nơi, không có nhiều thứ để làm với thịt thực sự của đoạn mã đó".

ví dụ thường gặp là:

  • xử lý
  • an ninh giao dịch
  • Logging
  • xử lý

tôi thấy nó thường được đề cập trong đối với Aspect-Oriented Programming (AOP) Lỗi thường nỗ lực để xử lý những thứ như thế này, ví dụ: với các thuộc tính/chú thích. Như đơn giản hóa tổng thể, đó là trường hợp áp dụng mã bảng nồi hơi (ví dụ: để xác minh danh tính/thẩm quyền của người dùng trong ngữ cảnh hiện tại hoặc tự động đăng nhập/thoát khỏi phương thức) mà không làm cho mã tự lộn xộn.

2

Tôi khuyên bạn nên xem một khuôn khổ như Postsharp và thử ví dụ this từ trang web postsharp. Nếu bạn biết java một lok vào AspectJ là đáng xem. Nhưng trước tiên bạn có thể muốn đọc liên kết được đăng bởi Jon Skeet :)

3

Ví dụ "hello world" chuẩn để cắt chéo là ghi nhật ký: Bạn có lỗi trong hệ thống sản xuất của mình và bạn không biết điều gì đang xảy ra. Để giải quyết nó, bạn thực sự cần phải xem những hàm nào trong mã của bạn được gọi và tham số nào mà chúng nhận được và những gì chúng trả về.

Đây là một nhiệm vụ đơn giản có thể được hoàn toàn tự động: Xác định vị trí tất cả các chức năng (hoặc một tập con bằng bộ lọc) và thêm cuộc gọi ghi nhật ký vào tên và tham số. Vì mã chứa tất cả thông tin bạn cần để hoàn thành nhiệm vụ này, những gì bạn thực sự muốn là một công cụ thực hiện nó cho bạn và nó thực hiện ở một nơi duy nhất (thay vì phải chỉnh sửa hàng nghìn tệp nguồn thêm các câu lệnh đăng nhập ở mọi nơi).

Các vấn đề liên quan