2012-02-07 17 views

Trả lời

33

Các công cụ tương tự như cách chúng là cả hai công cụ dòng lệnh giúp thiết lập và định cấu hình dự án, và cả hai đều có khả năng tạo mã. Có một số khác biệt lớn về thiết kế tuy nhiên:

1) Forge được thiết kế để sử dụng trên bất kỳ loại dự án Maven nào. Roo khá gắn bó với Spring. Vì Forge là tổng quát hơn, bạn có thể tìm hoặc viết các plugin cho bất kỳ loại công nghệ nào mà bạn sử dụng trong các dự án. Điều này cũng đúng với Roo, nhưng chỉ công nghệ trên đỉnh của Spring. Bạn có thể nói Forge là một khung công tác chung (nhiều hơn) để xây dựng các plugin làm việc trên các dự án Maven, trong khi Roo là (chỉ) một công cụ Spring.

2) Roo cũng là một khuôn khổ lập trình, không chỉ là một công cụ. Việc tạo mã sử dụng rất nhiều AspectJ để làm cho việc tạo mã hầu như vô hình đối với người lập trình và cung cấp các tính năng mà chỉ được tìm thấy trong các khung dựa trên ngôn ngữ động (ví dụ: các phương thức tìm kiếm động trên thực thể). Điều này có thể là cả một điều tốt và xấu. Nó tốt vì nó mạnh mẽ và thanh lịch hơn bởi vì bạn không "nhìn thấy" mã được tạo ra. Điểm mấu chốt là nó cung cấp một khóa lớn trên Roo. Về mặt kỹ thuật, điều này là không đúng, bởi vì nó chỉ là "đồng bằng" AspectJ, nhưng nó không xa mã Java/Spring bình thường. AspectJ cũng không hoạt động tốt trong tất cả các IDE (Eclipse và IntelliJ là tốt). Vì mô hình lập trình này, tôi sẽ không bao giờ sử dụng Roo. Nếu tôi muốn một khuôn khổ với các tính năng ngôn ngữ năng động, tôi sử dụng Grails, không phải là một cái gì đó nửa chừng ở đó. Tất nhiên đây chỉ là ý kiến ​​cá nhân của tôi.

Tạo mã trong Forge là loại truyền thống hơn, với tất cả các lỗi, nhưng bạn sẽ không bao giờ khóa bất kỳ thứ gì không chuẩn. Việc tạo mã được xây dựng trong dựa trên đồng bằng Java EE 6.

  • Tuyên bố từ chối trách nhiệm. Tôi là người đóng góp Forge và có thể bị thiên vị ;-)