2010-05-23 16 views
7

Üzerinde çalıştığım bir Grails uygulaması oldukça büyük oluyor ve her zaman çeşitli modüllere içine yeniden sığdırmak iyi olurdu, böylece her seferinde her şeyi yeniden konuşlandırmamıza gerek kalmaz.Büyük Grails uygulamasını modüle etmek için en iyi yöntem nedir?

Grails uygulamasını birkaç modülde bölmek için en iyi uygulama hangisidir? Özellikle, bir alan sınıfları + ilgili hizmetler paketi oluşturmak ve bunu uygulamada bir modül olarak kullanmak istiyorum. Mümkün mü? eklentileri ile yapmak mümkün mü?

cevap

8

Bu eklentiler hangileri içindir. Büyük bir uygulamayı birkaç modüle ayırma durumunda, "inline plugin" özelliğini kullanmak son derece yararlıdır. Sadece uygulama en grails-app/conf/BuildConfig.groovy için

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

ekleyin. Bunu yaparak, bir eklenti içindeki her değişiklikten sonra package-plugin ve install-plugin'u çalıştırmanız gerekmez.

Eklentileri kullanma hakkında daha fazla bilgi için bkz. Referans dokümanlar veya mevcut kitaplardan biri: Grails'e Kesin Kılavuz Kılavuzu veya "Grails in Action". Her ikisi de maliyetlerine kesinlikle değer.

+0

Burt Beckwith tarafından "Programlama Grails" tavsiye ederim. Yukarıda belirtilen başlıklardan daha gelişmiş ve güncel. –

3

Grails 'eklentileri, uygulamalar arasında kod/tasarım/şema yeniden kullanılabilirliği için iyi bir paketleme mekanizmasıdır veya birden fazla yazar için kod sahipliğini açıklığa kavuşturur (büyük bir uygulama için muhtemeldir), ancak tasarruf edeceğini sanmıyorum dağıtım acısı açısından size çok şey var - her şeyden önce, kod uygulamada hala var ve uygulama hala eklentileri, vb. yapılandırmak zorunda.

Evet, önbellekleme nedeniyle biraz zaman kazanacaksınız. dağıtım hedefine eklenti, ancak kodda, testte ve eklentilerin sürümlerini kendi başlarına yönetirken ekstra komplikasyonlarla ödersiniz. Ben etki alanı + hizmetleri eklenti koyarak sizce söyledi

yeniden kullanım için iyi bir modüldür - biz sadece yaptık - ama daha dağıtım sorunlar ile yardımcı daha zarar.

IMO, büyük Grails uygulaması için bir 'en iyi uygulama', veritabanı veya bir memcache yoluyla veya bir çeşit mesajlaşma yoluyla iletişim ile daha küçük uygulamalara bölme yapmayı düşünmek olacaktır. Her şeyi yeniden konuşlandırmalı ve daha iyi ölçeklenebilirliğe yönelmelidir. Her uygulamada kod/tasarım yeniden kullanım veya şema yalıtımı istediğiniz eklentileri kullanın ve çeşitli ek yükleri haklı çıkarmak için yeterli sayıda yeniden kullanacaksınız.

0

Bunun için kabul edilen eklentiler, kabul edilen eklentilerdir. Bu, kod bağımlılık grafiğinizi yönetmenize ve uygulamanızı bağımsız olarak test etmesi ve anlaması kolay bölümlere ayırmanıza yardımcı olur. Ancak eklentiler, dağıtıldığında tek bir uygulama olarak bir araya getirilmeye devam etmektedir. Dağıtım için hangi modeli aradığınızdan emin değilim.