Chúng tôi đã sử dụng aspectJ trong một trong những dự án lớn của tôi trong một thời gian dài. Dự án được tạo thành từ một số dịch vụ web, mỗi dịch vụ có một số chức năng, đó là giao diện người dùng cho một hệ thống xử lý/truy vấn tài liệu phức tạp. Một nơi nào đó xung quanh 75k dòng mã. Chúng tôi đã sử dụng các khía cạnh cho hai phần chức năng tương đối nhỏ.
Đầu tiên là truy tìm luồng ứng dụng. Chúng tôi đã tạo ra một khía cạnh chạy trước và sau mỗi cuộc gọi hàm để in ra chức năng "đã nhập" và "đã thoát" chức năng "". Tôi có thể sử dụng nó như một công cụ gỡ lỗi, chỉ chọn các hàm mà chúng tôi muốn theo dõi tại một thời điểm nhất định. Đây là một cách sử dụng thực sự tốt đẹp cho các khía cạnh trong dự án của chúng tôi.
Điều thứ hai chúng tôi đã làm là số liệu cụ thể của ứng dụng. Chúng tôi đặt các khía cạnh xung quanh các phương pháp dịch vụ web của chúng tôi để nắm bắt thời gian, thông tin đối tượng, v.v. và kết xuất các kết quả trong cơ sở dữ liệu. Điều này là tốt đẹp bởi vì chúng tôi có thể nắm bắt thông tin này, nhưng vẫn giữ tất cả các mã chụp tách biệt với mã "thực" đã làm công việc.
Tôi đã đọc về một số giải pháp tốt đẹp mà các khía cạnh có thể mang lại cho bảng, nhưng tôi vẫn không tin rằng họ thực sự có thể làm bất cứ điều gì bạn không thể làm (có thể tốt hơn) với công nghệ "bình thường". Ví dụ, tôi không thể nghĩ ra bất kỳ tính năng hoặc chức năng chính nào mà bất kỳ dự án nào của chúng tôi cần không thể thực hiện dễ dàng mà không có khía cạnh - nơi tôi thấy các khía cạnh hữu ích là những thứ nhỏ nhặt mà tôi đã đề cập .
Nguồn
2008-08-21 18:09:52
Hãy cẩn thận khi xác nhận điều gì đó là tốt nhất. Nhiều chuyên gia tin rằng mô hình năng lực là cách tốt nhất để làm an ninh, và rằng AOP là một điều khủng khiếp. –
@Brad, Bạn nói một số điều được thực hiện tốt nhất với AOP. Bạn có thể giải thích những gì * chính xác * là lợi thế bằng cách làm nó theo cách AOP so với cách * truyền thống *? – Pacerier