2010-05-23 4 views
7

Một ứng dụng Grails tôi đang làm việc đang trở nên khá lớn, và sẽ tốt hơn nếu cấu trúc lại thành một số mô-đun, để chúng tôi không phải triển khai lại toàn bộ mọi thứ.Thực hành tốt nhất để mô-đun hóa một ứng dụng Grails lớn?

Cách tốt nhất để chia ứng dụng Grails trong một số mô-đun là gì? Đặc biệt tôi muốn tạo một gói các lớp miền + các dịch vụ liên quan và sử dụng nó trong ứng dụng dưới dạng một mô-đun. Điều này có thể không? Có thể làm điều đó với plugins?

Trả lời

8

đó là những plugin bổ sung. Trong trường hợp chia nhỏ một ứng dụng lớn thành nhiều mô-đun, sử dụng tính năng "inline plugin" cực kỳ hữu ích. Chỉ cần thêm

grails.plugin.location."<plugin-name>" = "<path to plugin dir>" 

vào ứng dụng của bạn grails-app/conf/BuildConfig.groovy. Bằng cách đó, bạn không còn phải chạy package-plugininstall-plugin sau mỗi lần sửa đổi bên trong một plugin.

Để biết chi tiết về cách sử dụng plugin, xem tài liệu tham khảo Grails hoặc một trong các sách có sẵn: "Hướng dẫn dứt khoát về Grails" hoặc "Grails in Action". Cả hai đều hoàn toàn xứng đáng với chi phí của họ.

+0

Tôi rất khuyên bạn nên "Lập trình Grails" bởi Burt Beckwith. Nó nâng cao hơn và gần đây hơn so với một trong hai tiêu đề được đề cập ở trên. –

3

Plugin của Grails là cơ chế đóng gói tốt cho việc thiết kế mã/thiết kế/lược đồ trên các ứng dụng hoặc để làm rõ quyền sở hữu mã trên nhiều tác giả (có vẻ như ứng dụng lớn), nhưng tôi không nghĩ rằng bạn nhiều về mặt triển khai đau - sau khi tất cả, mã vẫn còn đó trong ứng dụng và ứng dụng vẫn phải định cấu hình các plugin, v.v.

Có, bạn sẽ tiết kiệm được một chút thời gian do bộ nhớ đệm của plugin trên mục tiêu triển khai, nhưng bạn sẽ trả lại tiền đó với các biến chứng thêm trong mã, kiểm tra và trong việc quản lý việc tự phiên bản các plugin.

Điều đó nói rằng, tôi làm nghĩ đặt một plugin miền + dịch vụ là một mô-đun tốt để tái sử dụng - chúng tôi chỉ làm điều đó - nhưng nó nhiều tổn thương hơn giúp với triển khai vấn đề.

IMO, một 'thực hành tốt nhất' cho ứng dụng Grails lớn sẽ là suy nghĩ về việc chia ứng dụng thành các ứng dụng nhỏ hơn với giao tiếp thông qua cơ sở dữ liệu hoặc memcache hoặc thông qua một số hình thức nhắn tin. phải triển khai lại toàn bộ nội dung "và có xu hướng hướng tới khả năng mở rộng tốt hơn. Sử dụng các plugin trong mỗi ứng dụng mà bạn muốn sử dụng lại mã/thiết kế hoặc cách ly lược đồ và sẽ có đủ tái sử dụng để biện minh cho các chi phí khác nhau.

0

Đồng ý, plugin là cách được chấp nhận để thực hiện việc này. Điều này sẽ giúp quản lý biểu đồ phụ thuộc mã của bạn và chia ứng dụng của bạn thành các phần dễ kiểm tra và hiểu độc lập hơn. Tuy nhiên các plugin vẫn có nghĩa là đan kết với nhau như một ứng dụng khi được triển khai. Tôi không chắc bạn đang tìm kiếm mẫu nào để triển khai.