2012-02-07 14 views

Odpowiedz

33

Narzędzia są podobne, ponieważ są zarówno narzędziami wiersza polecenia, które pomagają w konfiguracji i konfiguracji projektu, a oba mają możliwość generowania kodu. Istnieją jednak pewne poważne różnice projektowe:

1) Forge jest przeznaczony do stosowania w każdym projekcie Maven. Roo jest prawie związane z wiosną. Ponieważ Forge jest bardziej ogólny, możesz znaleźć lub napisać wtyczki dla każdego rodzaju technologii używanej w projektach. Dotyczy to również Roo, ale tylko technologia na szczycie wiosny. Można powiedzieć, że Forge jest (bardziej) ogólną strukturą do budowania wtyczek, które działają w projektach Mavena, podczas gdy Roo jest (tylko) narzędziem Spring.

2) Roo jest także ramą programistyczną, a nie tylko narzędziem. Generowanie kodu w dużym stopniu wykorzystuje AspectJ, aby uczynić generowanie kodu prawie niewidocznym dla programisty i daje funkcje, które można znaleźć tylko w frameworkach opartych na językach dynamicznych (np. Dynamiczne metody wyszukiwania w jednostkach). To może być zarówno dobra, jak i zła rzecz. Jest to dobre, ponieważ jest potężne i bardziej eleganckie, ponieważ nie "widzisz" wygenerowanego kodu. Złe jest to, że daje masową blokadę na Roo. Jest to technicznie nieprawdziwe, ponieważ jest to po prostu "zwykły" AspectJ, ale daleko mu do normalnego kodu Java/Spring. AspectJ również nie działa dobrze we wszystkich IDE (Eclipse i IntelliJ są w porządku). Z powodu tego modelu programowania nigdy nie używałbym Roo. Jeśli chcę stworzyć framework z dynamicznymi funkcjami językowymi, używam Grails, a nie czegoś w połowie. Oczywiście to tylko moja osobista opinia.

Generowanie kodu w Forge jest bardziej tradycyjne, ze wszystkimi jego wadami, ale nigdy nie zablokuje niczego niestandardowego. Wbudowana generacja kodu opiera się na zwykłym Java EE 6.

  • Zastrzeżenie. Jestem kontrybutorem Forge i może być stronniczy ;-)
Powiązane problemy