2012-07-24 33 views
5

Tôi đang bắt đầu một dự án sẽ phải ứng dụng các ứng dụng java cho mục đích bảo hiểm (định nghĩa sử dụng các biến, v.v.). Nó phải thêm các câu lệnh theo dõi và một số logic vào ứng dụng và có thể loại bỏ các câu lệnh.Các giải pháp thay thế cho công cụ bytecode Java

Tôi đã tìm kiếm các cách mã Java cụ và những gì tôi luôn tìm thấy là về công cụ bytecode.

Câu hỏi của tôi là: Đó là cách duy nhất để ứng dụng các ứng dụng Java? Có cách nào khác để làm điều đó không? Những ưu điểm của thiết bị bytecode trên các thiết bị khác là gì?

Tôi có thể sử dụng giải pháp bytecode, nhưng tôi muốn biết các vấn đề với các cách tiếp cận khác (nếu có) là gì để quyết định chính xác.

Cảm ơn!

Trả lời

2

Phương pháp khác gần với việc thay đổi bytecode đang sử dụng AOP (Lập trình hướng Aspect). Thư viện chính là AspectJ cũng chủ yếu xác định khu vực.

Tùy chọn thứ ba có thể thú vị (vì bạn mới bắt đầu với chương trình) đang sử dụng Spring. Nó có nghĩa là bạn sẽ phải học một chút về IOC (đảo ngược kiểm soát) nhưng về cơ bản có nghĩa là thay vì tự tạo đối tượng, bạn hãy để mùa xuân làm điều đó cho bạn, và nó có lợi thế bởi vì khi mùa xuân to lớn có thể thêm tất cả các loại sự vật trong quá trình tạo mà không cần phải thực sự khai báo tất cả trong chính mình.

Xét về độ phức tạp tôi có lẽ sẽ đánh giá nó:

  • mùa xuân (dễ nhất)
  • AspectJ
  • bytecode thiết bị đo đạc (khó nhất)

nhưng nó chính xác là cách khác xung quanh khi nói về khả năng (sức mạnh). ví dụ như làm điều gì đó giống như mã số trừ chỉ có thể sử dụng mã cuối cùng (tôi nghĩ)

+0

Cảm ơn! Tôi nghĩ tôi sẽ thử AspectJ. –

2

Bạn chắc chắn nên kiểm tra AspectJ

Từ những gì bạn mô tả, bạn sẽ có thể làm những gì bạn muốn với nó.

Tự mình thực hiện công cụ bytecode là hoàn toàn có thể nhưng nó phức tạp hơn nhiều.

Tôi nghĩ bạn nên kiểm tra AsepctJ trước và trở lại làm công cụ bytecode như là phương sách cuối cùng.

+0

Cảm ơn! Tôi sẽ thử aspectJ. –

0

Xem số paper on building coverage tools using program transformation engines. Cách tiếp cận này có lợi thế là nó có thể được sử dụng trên các ngôn ngữ lập trình tùy ý. Ngoài ra, nó thấy mã nguồn theo cách mà lập trình viên nhìn thấy, không phải là mã byte được biên dịch (như generics phức tạp hơn và lấy mã thành các mã byte mịn hơn, khó hiểu mã nguồn hơn bằng cách kiểm tra mã byte).

Có lẽ đáng chú ý là việc chuyển đổi chương trình tổng quát hóa lập trình hướng-khía cạnh.

+0

Giấy và dụng cụ đẹp mắt.Dự án là một công cụ học tập dựa trên một mô hình thử nghiệm mới. Trong bối cảnh của chúng ta, tốt hơn là phát triển một cái mới. Nhưng cảm ơn! –

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