1. Groovyãšã¯ïŒ-åºæ¬çãªç¹åŸŽãã解説
Groovyãšã¯ãJavaãã掟çããåçåä»ãã®ããã°ã©ãã³ã°èšèªã§ãç¹ã«ãã®ç¬èªã®ææ³ãšçµã¿åãããJavaãšRubyã®ç¹æ§ãè©äŸ¡ãããŠããŸããæšä»ã§ã¯ãã¡ãžã£ãŒãªããã°ã©ãã³ã°èšèªã©ã³ãã³ã°ã§ãé«ãé äœãä¿ã¡ã€ã€ããã®æ³šç®åºŠãå¢ããŠããŸãã
1.1 Groovyã®èªçç§è©±
Groovyã¯ã2003幎ã«å ¬éãããŸãããåæã¯äººæ°ã©ã³ãã³ã°ã§91äœãšããäœãäœçœ®ã«ããŸãããããããã16幎åŸã®2019幎ã«ã¯17äœãšãªã£ãŠæ³šç®ãéããååšãšãªããŸãããã©ãããçµç·¯ã§ãã©ã®ãããªç®çãé©å¿ç¯å²ãæã£ãŠçãŸããã®ã§ããããã
éçºè ãã¡ã¯ãJavaã®å å®ããšRubyã®ãã¬ãã·ããªãã£ãçµã¿åãããããšã§ããã䜿ããããããã°ã©ãã³ã°èšèªãçã¿åºãããšãè©Šã¿ãŸããããã®çµæãJavaã®ææ³ã«äŒŒãŠãããïŒRubyã®åœ±é¿ãåããGroovyãèªçããã®ã§ãã
Groovyã¯ããJavaã«ä»£ããèšèªãã§ã¯ãªãããJavaã«å¯ãæ·»ãèšèªãã§ãããšããèšèšææ³ããããŸãããã®ããã«ãJavaãšé£æºãå¯èœã§ãããªãããããŸããŸãªç©äºãããã·ã³ãã«ã«åŠçããæ¹æ³ãæäŸããŠããŸãã
1.2 Groovyã®äž»ãªç¹åŸŽãšèšèªä»æ§
Groovyã¯Javaãã掟çããèšèªã§ãããªããããã®åºæ¬çãªææ³ãšäœ¿ãæ¹ã¯Rubyã«äŒŒãŠããŸãããã®ããããã°ã©ã ãããã·ã³ãã«ã«èšè¿°ããããšãã§ããJavaã§ã¯40è¡å¿ èŠãªåŠçããGroovyã§ã¯4è¡ã§å¯èœã§ãã
ãã®äžæ¹ãGrailsãšããWebã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãæã€ãªã©ãRubyã®Railsã®ãããªç¹æ§ãå€ãæã£ãŠããŸããGrailsã¯Javaã§ã䜿çšããããšãå¯èœã§ãããJavaã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ããã®ãŸãŸå©çšå¯èœã§ããããããã«ã¹ã¿ãã¯éçºãå¯èœã§ãã
ãŸããGroovyã¯ãªããžã§ã¯ãæåãã¹ã¯ãªããèšèªã®æ©èœãæã¡ãåçåä»ããå¯èœã§ãããããéåžžã«æè»ãªããã°ã©ãã³ã°ãå¯èœã§ãããã®ãããWebã¢ããªã±ãŒã·ã§ã³ã®éçºå€§å®¹éããŒã¿ã®è§£æãªã©ãæ§ã ãªæ¥çã§äœ¿çšãããŠããŸãã
1.3 GroovyãšJavaã®é¢é£æ§
Groovyã¯Javaãã掟çãããšã¯ãã£ãŠãããJavaã«å¯ãæ·»ãèšèªãã§ãããšãããããã«ãJavaãšã®åŒ·åãªé£æºãç¹åŸŽçã§ããç§ãã¡ã¯ãããã«ããã©ããªã¡ãªãããåŸãããšãã§ããã®ã§ããããã
äžã€ã¯ãJavaã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ããã®ãŸãŸå©çšããããšãå¯èœã§ããããšã§ããJavaã§å©çšããŠããã©ã€ãã©ãªãšç°¡åã«é£æºãåããæ¢åã®Javaã³ãŒããåŒãç¶ãå©çšãã€ã€ãæ°ããªã¢ãžã¥ãŒã«ãGroovyã§å®è£ ã§ããŸãã
ãŸããJavaã®ææ³ãå ã«ããŠãããããJavaã®ç¥èãè±å¯ãªæ¹ã¯ãéåžžã«äœãåŠç¿ã³ã¹ãã§Groovyãç¿åŸããããšãå¯èœã§ããJavaã®åºç€ãç解ããŠããã°ãçæéã§ããªãé«åºŠãªGroovyã®ããã°ã©ãã³ã°ãå¯èœãšãªããŸãã
1.4 Groovyã掻çšããäžã§ç¥ã£ãŠããã¹ãããš
Groovyã掻çšããäžã§çæããã¹ãç¹ãããã€ããããŸããããããèžãŸããŠæ°ãããããžã§ã¯ãã«åãçµãã ããæ¢åã®Javaãããžã§ã¯ãã«å°å ¥ããéã®æéãšããŠåèã«ããŠãã ããã
äžã€ã¯ãåå¿è åãã®ãªãœãŒã¹ãå°ãªããšããããšã§ããäžæ¹ã§ãRubyã®ç¹åŸŽãç解ããŠããã°ããããããŒã¹ã«Groovyã身ã«ã€ããããšãã§ããŸãããŸããJavaã®åºç€ãç解ããŠããã°ãããæ·±ãç解ããããšãã§ããŸãã
ãŸããGroovyãšJavaã¯äºææ§ãé«ããšã¯ããããããããæã€ç¹æ§ãæ©èœã¯ç°ãªããããé©æé©æã§ã®äœ¿çšã倧åã§ããJavaã®èª²é¡ã解決ããã®ãGroovyã®ç®çã§ããããããã®ææ³ãç解ããäžã§ãJavaãšGroovyã䜿ãåããããšãéèŠã§ãã
2. å¯æ¥ã§Groovyãå©çšããã¡ãªãã
Groovyã¯Javaãã掟çããåçåä»ãã®ããã°ã©ãã³ã°èšèªã§ããã®æè»æ§ãšç°¡æœæ§ããããŠJavaãšã®é«ãäºææ§ã¯å¯æ¥ããããšã³ãžãã¢ã«ãšã£ãŠå€§ããªé åã§ãããã®ç« ã§ã¯ãå¯æ¥ã§Groovyãå©çšããã¡ãªããã«ã€ããŠå ·äœçã«èª¬æããŸãã
2.1 æè»ãªä»æ§ãšç°¡æœæ§
Groovyã®é åçãªç¹åŸŽã®äžã€ã«ããã®æè»ãªä»æ§ãæããããŸããJavaã«äŒŒãææ³ãæã¡ã€ã€ããRubyã®åœ±é¿ãåããåçãªç¹æ§ãæã€ããšã§ãããããå¯èªæ§ãšæè»æ§ãå®çŸããŠããŸãããã®ç¹æ§ã«ãããåãåŠçãJavaãããç°¡æœã«ãªããžã§ã¯ãæåã§æžãããšãå¯èœã«ãªããŸãã
å ·äœçã«ã¯ãJavaã§ã¯40è¡å¿ èŠãªåŠçãGroovyã§ã¯4è¡ã§å®çŸå¯èœãªäŸããããŸãããã®ãããéçºè ã®çç£æ§ãåäžãããããã«Groovyãéžæãããšã³ãžãã¢ã¯å€ãã§ãã
ãŸããGrailsãšããGroovyã«ããRailsã©ã€ã¯ãªãã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ãWebã¢ããªã±ãŒã·ã§ã³ã®éçºãããå¹ççã«è¡ãããšãã§ããŸãã
2.2 Javaãšã®é«ãäºææ§
Groovyã®åŒ·åãªç¹åŸŽã¯Javaãšã®é«ãäºææ§ã§ãããããã«ããJavaã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ããã®ãŸãŸå©çšããããšãå¯èœã§ãã
JVMäžã§åäœããJavaãšã®é£æºãå¯èœãªGroovyã¯ããJavaã«ä»£ããèšèªã§ã¯ãªããJavaã«å¯ãæ·»ãèšèªããšè¡šçŸãããŸããJavaã®åºç€ç¥èããããšã³ãžãã¢ãªããGroovyãžã®åŠç¿ã³ã¹ããå€§å¹ ã«åæžããããšãå¯èœã§ãã
ããã«ããæ¢åã®Javaç³»ã®ãããžã§ã¯ãã«Groovyãåãå ¥ããããšã容æã«ãªããæ¢åã®Javaç°å¢ã掻ããæŽæ°æ§ãä¿ã€ããšãã§ãããããæ¢ã«Javaã䜿çšããŠããäŒæ¥ã§ã®å°å ¥ãé²ãã§ããŸãã
2.3 Webã¢ããªéçºãããŒã¿è§£æã§ã®å©çšäŸ
Groovyã®çšéã¯éåžžã«åºç¯ã§ãWebã¢ããªã±ãŒã·ã§ã³ã®éçºãããŒã¿è§£æããããåŠçãªã©ãæ§ã ãªåéã§æŽ»çšãããŠããŸãã
ç¹ã«Webã¢ããªã±ãŒã·ã§ã³ã®éçºã§ã¯ãGroovyãšGrailsãçµã¿åãããããšã§ãRailsã©ã€ã¯ãªç°å¢ãæ§ç¯ããããšãã§ããéçºã®è¿ éåãçç£æ§ã®åäžãå³ãããŸãã
ãŸããããŒã¿è§£æã®åéã§ã¯ãGroovyã®åçåä»ããªã©ã®ç¹æ§ã掻ããããšã§ãããŒã¿ã®ååŠçãåæãå¯èŠåçãå¹ççã«è¡ãããšãã§ããŸãã
2.4 Groovyã®æ±äººåžå ŽãšéèŠ
Groovyã¯ãå€ãã®å€§æäŒæ¥ã§æ¡çšãããŠãããæ±äººåžå Žã§ããã®éèŠã¯é«ãŸã£ãŠããŸããç¹ã«NetflixãGoogleãSonyãOracleãWalmartãªã©ã®äŒæ¥ãç©æ¥µçã«æ¡çšããŠããŸãã
ãŸããæ¥æ¬ã®äŒæ¥ã§ãNTTãã¯ãã¯ãã¹ãªã©ãç©æ¥µçã«æ¡çšããåŠçåãã®æ±äººãµã€ããpaizaæ°åãã§ãæ§ã ãªGroovyã®æ±äººãæ²èŒãããŠããŸãã
Groovyã®é«ãçç£æ§ãšJavaãšã®é«ãäºææ§ããããŠåºç¯ãªçšéæ§ãããä»åŸããã®éèŠã¯äžå±€é«ãŸãããšãäºæž¬ãããå¯æ¥ãšããŠGroovyã®ã¹ãã«ãæã€ããšã¯å€§ããªã¢ããã³ããŒãžãšãªãã§ãããã
3. Groovyã®æ¡ä»¶ãç²åŸããããã®ã¹ãã«ã¢ããæ¹æ³
Groovyã¯æµè¡ã®èšèªã§ãJavaãšã®é£æºãå¯èœãªç¹æ§ãããå€ãã®äŒæ¥ã§äœ¿çšãããŠããŸããããããGroovyã§ã®å¯æ¥æ¡ä»¶ãç²åŸããããã«ã¯ãæè¡åãåäžãããå¿ èŠããããŸããããã§ã¯ããã®ããã®ã¹ãã«ã¢ããæ¹æ³ã4ã€ã®ã¹ãããã§è§£èª¬ããŸãã
3.1 Groovyã®åºæ¬çãªææ³ãšã©ã€ãã©ãªã®äœ¿ãæ¹
ãŸãã¯ãGroovyã®åºæ¬çãªææ³ãšã©ã€ãã©ãªã®äœ¿ãæ¹ããã¹ã¿ãŒããããšããå§ããŸããããããã¯ãGroovyå°éã®æ¡ä»¶ãç²åŸããããã®ç¬¬äžæ©ã§ãããåºæ¬çãªææ³ãšã©ã€ãã©ãªã®äœ¿ãæ¹ãããããªããã°ã©ããªã«è¯ãæ¡ä»¶ããã£ãŠã察å¿ãã§ããŸããã
Groovyã®ææ³ã¯Javaãšè¿ããRubyããã®åœ±é¿ã匷ãããããããã®èšèªã«è§Šããããšãããæ¹ã¯ç解ãããããšæããŸããã©ã€ãã©ãªã®äœ¿ãæ¹ã«ã€ããŠã¯ããªãã£ã·ã£ã«ããã¥ã¡ã³ããŒã·ã§ã³ããªã³ã©ã€ã³ã®åŠç¿ãªãœãŒã¹ã掻çšããã®ãããããã§ãã
ããã§éèŠãªã®ãããŸãã¯åºæ¬ããã£ããæŒãããããšãAdvancedãªæ©èœããã¹ã¿ãŒããåã«ãåºæ¬ãåºããããšã§åããŠã®ãããžã§ã¯ããªã©ã§ã察å¿ã§ããåãã€ããããšãã§ããŸãã
3.2 å®éã®ãããžã§ã¯ãã§ã®çµéšãç©ã
Groovyã®åºæ¬çãªææ³ãã©ã€ãã©ãªã®äœ¿ãæ¹ãåŠãã ããå®éã®ãããžã§ã¯ãã§ã®çµéšãç©ãããšãéèŠã§ããå®éã®ãããžã§ã¯ãã§æ§ã ãªç¶æ³ã«å¯Ÿå¿ããããšã§ãç¬èªã®ããŠããŠã身ã«ã€ããããšãã§ããŸãã
å®éã®ãããžã§ã¯ãçµéšãšã¯ãå ·äœçã«ã¯èªåã§ã¢ããªãäœæãããããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«ã³ã³ããªãã¥ãŒããããããããšã§ããããã«ãããå®éã®ãããžã§ã¯ãã§æ±ããããã¹ãã«ãé€ãããšãã§ããŸãã
ãŸããèªåã§åµãäžãããããžã§ã¯ããã³ã³ããªãã¥ãŒããããããžã§ã¯ãã¯ãããŒããã©ãªãªãšããŠã掻çšã§ããŸãããããããããšã§ãäŒæ¥ã®æ¡çšæ åœè ãã¯ã©ã€ã¢ã³ãããã®ä¿¡é ŒãåŸããããªããŸãã
3.3 Javaãšä»ã®èšèªãšã®é£æºãšGroovy
Groovyã®ç¹åŸŽã®äžã€ãšããŠãJavaãšã®é£æºãæããããŸãããã®ç¹æ§ãç解ããJavaãä»ã®èšèªãšã®é£æºã¹ãã«ãæã€ããšãæ±ããããŸããJavaã¯åºã䜿ãããŠããèšèªã§ãããGroovyãšäœµããŠäœ¿ãããšã§æŽãªãå¯èœæ§ãçã¿åºããŸãã
Groovyã¯Javaãšã®äºææ§ãé«ããJavaã®ã©ã€ãã©ãªã®å©çšãJavaã§æžãããæ¢åã®ã·ã¹ãã ãšã®é£æºãå¯èœã§ããããã«ãããJavaãæ¢ã«éçšããŠããäŒæ¥ã«å¯ŸããŠåŒ·åãªãœãªã¥ãŒã·ã§ã³ãæäŸããããšãã§ããŸãã
ãŸããGroovyã®ã¡ãªããã掻ããã€ã€ãä»ã®èšèªãšã®é£æºãè¡ãããšã§ãããå¹ åºãæ¡ä»¶ã«å¯Ÿå¿ã§ãããããä»äºã®å¹ ãåºãããŸãã
3.4 åŠç¿ãªãœãŒã¹ãšãªã³ã©ã€ã³ã³ãŒã¹
æåŸã«ãèªå·±åŠç¿ããµããŒãããããã®åŠç¿ãªãœãŒã¹ãšãªã³ã©ã€ã³ã³ãŒã¹ã掻çšããŸãããããããã®ææã掻çšããããšã§ãèªåã®ããŒã¹ã§ã¹ãã«ã¢ãããå³ãããšãã§ããŸãã
åŠç¿ãªãœãŒã¹ã«ã¯ãå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãæåãªæžç±ãããã°ã©ãã³ã°GROOVYãããããŸãããŸãããåå¿è ã®ããã®Groovy/Grailså ¥éããªã©ã®ãªã³ã©ã€ã³ãµã€ããåèã«ãªããŸãã
ãªã³ã©ã€ã³ã³ãŒã¹ãå€æ°ååšããŠãããå ·äœçãªãããžã§ã¯ããéããŠå®è·µçãªã¹ãã«ã身ã«ã€ããããšãå¯èœã§ããèªåã®ã¹ãã«ã¬ãã«ãç®æãããšã«åãããŠãé©åãªææãã³ãŒã¹ãéžã¶ããšãéèŠã§ãã
以äžããGroovyã§ã®å¯æ¥æ¡ä»¶ãç²åŸããããã®ã¹ãã«ã¢ããæ¹æ³ã§ããããããåèã«ããã²ç©æ¥µçã«ã¹ãã«ã¢ããã«åãçµãã§ãã ããã
4. Groovyã®å¯æ¥æ¡ä»¶ç²åŸïŒå ·äœçãªæ¢ãæ¹ãšãµãŒãã¹æ¯èŒ
å¯æ¥ãšããŠGroovyã®æ¡ä»¶ãç²åŸããããšèããŠããçããã«ãšã£ãŠãç¥ã£ãŠããã¹ãæ å ±ãã玹ä»ããŸããGroovyã®éèŠã¯Webã¢ããªã±ãŒã·ã§ã³éçºãããŒã¿è§£æããããåŠçãªã©ãå¹ åºãåéã§æ¡å€§ããŠããããã®ã¹ãã«ãæã€ãšã³ãžãã¢ã¯å¹ åºãå¯èœæ§ãç§ããŠããŸãã
4.1 ã€ã³ã¿ãŒãããäžã®æåæ±äººãµã€ã
æ¬æ Œçã«Groovyã®æ¡ä»¶ãæ¢ãéã¯ãã€ã³ã¿ãŒãããäžã®æ±äººãµã€ããå©çšããããšããå§ããŸããããå€ãã®äŒæ¥ããããžã§ã¯ãããã®ã¹ãã«ãæ±ããŠãããæ å ±éãšæŽæ°é »åºŠããèŠãŠããæ±äººãµã€ãã¯æå ãæ¹æ³ãšèšããã§ãããã
ç¹ã«ITãšã³ãžãã¢åãã«ç¹åããæ±äººãµã€ãã§ã¯ãGroovyã®çµéšãå¿ èŠãšããä»äºãå€ãæ²èŒãããŠããŸãããŸããè·åçµæŽãã¹ãã«ãèšå®ããã°ãèªåçã«é©åãªæ¡ä»¶ãææ¡ããŠãããæ©èœããããŸãã
4.2 å°éã®ãšãŒãžã§ã³ããšãã®å©çšæ¹æ³
å°éã®ãšãŒãžã§ã³ããå©çšãããšãèªèº«ã«åã£ãæ¡ä»¶ãèŠã€ãããããªããŸãããšãŒãžã§ã³ãã¯ããããã®ãšã³ãžãã¢ã®ã¹ãã«ãšæ±ããæ¡ä»¶ãèæ ®ããŠãæé©ãªæ¡ä»¶ã玹ä»ããŠãããŸãããŸããæã«ã¯æªå ¬éã®æ¡ä»¶ãç¬å æ¡ä»¶ã玹ä»ããŠãããããšãã
ãšãŒãžã§ã³ããå©çšããããšã§ãèªåã ãã§ã¯äžå¯èœã«è¿ãæ¡ä»¶ã«åºäŒããã£ã³ã¹ãçãŸããŸããã ãããããè€æ°ã®ãšãŒãžã§ã³ãã«ç»é²ããèªèº«ã®å¯èœæ§ãåºããã¹ããªã®ã§ãã
4.3 ãããã§ãã·ã§ãã«ãããã¯ãŒã¯ã®å©çš
èªèº«ã®äººèã掻çšããŠæ¡ä»¶ãèŠã€ããããšãæå¹çãªæ¹æ³ã§ãããããã§ãã·ã§ãã«ãããã¯ãŒã¯ãæ§ç¯ããããã«ã¯ãæ¥çã®ã€ãã³ããããŒãã¢ããçã«åå ããã³ãã¥ããã£ã«ç©æ¥µçã«é¢ãããŸãããã
ãŸããSNSã掻çšããããšãéèŠã§ããç¹ã«LinkedInãGitHubãªã©ã¯ãæè¡è ãšããŠã®ãããã£ãŒã«ãå ¬éããèªèº«ã®ã¹ãã«ãçµéšãã¢ããŒã«ããã®ã«æå¹ãªãã©ãããã©ãŒã ãšãªããŸãã
4.4 èªå·±PRãã¹ãã«ã掻ãããæ¢ãæ¹
å¯æ¥ã®æ¡ä»¶ãç²åŸããããã«ã¯ãèªå·±PRãã¹ãã« set ãéèŠã«ãªããŸããèªå·±PRã¯èªèº«ã®ã¹ãã«ãçµéšãéæããå®çžŸãèªåã®èšèã§èª¬æããåãé€ãããšã§ã人äºããããžã§ã¯ããããŒãžã£ã«èªåãæé©ãªäººæã§ããããšãäŒããæ段ãšãªããŸãã
ããã«ãäžã€ã®ã¹ãã«ã ãã§ã¯ãªããJavaãä»ã®æè¡ãšã®é£æºãèæ ®ããã¹ãã«ã»ãããæã€ããšãæ±ããããŸããç°ãªãèšèªãæè¡ãçµã¿åãããŠæŽ»çšã§ããããšã§ãããå€ãã®æ¡ä»¶ã«å¯Ÿå¿ã§ããåžå ŽäŸ¡å€ãé«ããããšãã§ããŸãã
5. Groovyã掻çšããå¯æ¥æåäºäŸãšãã®ãã€ã³ã
Groovyãå¯æ¥ã«åœ¹ç«ã€å®äŸã5ã€ã玹ä»ããŸããå®è·µçãªããŠããŠããæåãžã®éã®ããã¢ããã€ã¹ã亀ããªãããã話ãããŸãã
5.1 ããªãŒã©ã³ã¹ãšã³ãžãã¢ãšããŠæåããäºäŸ
Groovyãäž»äœã«æŽ»çšããããªãŒã©ã³ã¹ãšã³ãžãã¢ã®æåäºäŸããããŸããéçºåæããGroovyã䜿ãç¶ããŠãããšã³ãžãã¢ã¯ããã®ç¬ç¹ãªææ³ãæ©èœã«ç²ŸéããJavaãšã®é£æºãè¡ããããé«åºŠãªéçºæ¡ä»¶ã«åå ã§ããŸãã
ããªãŒã©ã³ã¹ãšããŠæŽ»èºããã«ã¯ãGroovyã ãã§ãªããJavaãä»ã®é¢é£æè¡ãšã®é£æºãèæ ®ãã¹ãã§ããããã®ã¹ãã«ãæ±ããããŸãã
Groovyã®ã¹ãã«ã®ç£šãæ¹ãšããŠã¯ãå®éã®ãããžã§ã¯ãã§äœ¿çšããããšãäžçªã®è¿éã§ãããã®ããã«ã¯ãåæããå°èŠæš¡ã®æ¡ä»¶ã«åå ããåŸã ã«ã¹ãã«ã磚ããŠããããšãæå¹ã§ãã
5.2 転è·ãæåãããã±ãŒã¹
次ã«ãGroovyã®ã¹ãã«ãæã€ããšã§æåãã転è·äºäŸã«ã€ããŠèª¬æããŸããGroovyã®ã¹ãã«ãæã€ããšã§ãJavaã䜿çšããŠããäŒæ¥ãžã®è»¢è·ãã¹ã ãŒãºã«è¡ããã±ãŒã¹ããããŸããããã¯ãGroovyãJavaãšã®äºææ§ãé«ããããJavaãšé£æºããéçºãè¡ãæ¡ä»¶ãå€ãããã§ãã
ãŸããGroovyã䜿çšããéçºçµéšãæã€ããšã¯ãèªèº«ã®ã¹ãã«ã»ãããè±ãã«ããããå€ãã®è·åéžæè¢ãå¯èœã«ããã¡ãªããããããŸãã
äºäŸãšããŠã¯ãJavaéçºãäž»äœãšããŠããããã©ã³ãšã³ãžãã¢ããGroovyã®ã¹ãã«ãç²åŸããããšã§ãèªèº«ã®ãã£ãªã¢ã倧ããé£èºãããããšããããŸããããã¯ãGroovyã®åŠç¿ã³ã¹ããJavaéçºè ã«ãšã£ãŠæ¯èŒçäœããããå¹ççã«æ°ããªã¹ãã«ãç¿åŸã§ããããã§ãã
5.3 æåãžã®éã®ããšæçšãªãã³ã
Groovyã䜿ã£ãå¯æ¥ã®æåã«åããŠãå¿ èŠãªã¹ãã«ãšãã®ç¿åŸæ¹æ³ããããŠæ¡ä»¶ã®æ¢ãæ¹ã«ã€ããŠèª¬æããŸããGroovyã®åºæ¬çãªææ³ãã©ã€ãã©ãªã®äœ¿ãæ¹ãåŠã¶ããšãæåã®ã¹ããããšãªããŸãã
å ·äœçãªã¹ãã«ã®ç£šãæ¹ãšããŠã¯ãæžç±ãããã°ã©ãã³ã°GROOVYããWEBãµã€ããåå¿è ã®ããã®Groovy/Grailså ¥éããªã©ã®ææãå©çšããã®ãããããã§ãã
ãããŠãã€ã³ã¿ãŒãããã®æ±äººãµã€ãããå°éã®ãšãŒãžã§ã³ãã掻çšããŠãèªåã«åã£ãæ¡ä»¶ãæ¢ãããšãéèŠã§ãããŸããèªåã®ãããã¯ãŒã¯ã掻çšããããšãæå¹ãªæ段ãšãªããŸãã
5.4 æåè ããã®ã¢ããã€ã¹
æåŸã«ãGroovyã䜿ã£ãæ¡ä»¶ç²åŸã§æåãã人ã ããã®ã¢ããã€ã¹ãã玹ä»ããŸãã
第äžã«ããGroovyã®ã¹ãã«ãæã€ããšã§ãJavaã®æ¡ä»¶ã ãã§ãªããããå€ãã®æ¡ä»¶ã«ææŠå¯èœã«ãªããåŠç¿ã³ã¹ããJavaãæ¢ã«ç解ããŠããã°ããçšé«ãã¯ãªãã®ã§ãæ¯éãã£ã¬ã³ãžããŠã¿ãŠã»ããããšã®å£°ããããŸãã
ãŸãããå®éã®ãããžã§ã¯ãã§Groovyã䜿çšããããšãäžçªã®ã¹ãã«ã¢ããã«ãªãããŸãã¯å°èŠæš¡ãªæ¡ä»¶ããåå ããŠãå°ããã€å®çžŸãç©ã¿äžããŠããããšããã¢ããã€ã¹ãã声ãå€ãã¿ãããŸãããã®ããã«ãå ·äœçãªçµéšãéããŠGroovyã®ã¹ãã«ã磚ãããšã匷調ãããŠããŸãã
6. æåŸã«ïŒGroovyã䜿ã£ãå¯æ¥ã®æªæ¥ãšå¯èœæ§
ãããŸã§ã«ãGroovyãšããããã°ã©ãã³ã°èšèªã®ç¹æ§ãçšéããããŠå¯æ¥ãšããŠã®æ¡ä»¶ç²åŸã®æ¹æ³ã«ã€ããŠèª¬æããŠããŸããããããŠæåŸã«ãæé·éäžã®èšèªã§ããGroovyãå¯æ¥ã«ã©ã®ãããªå¯èœæ§ãããããã®ãããã®æªæ¥æ§ã«ã€ããŠèå¯ããŸãã
6.1 Groovyã®é²åãšæªæ¥æ§
Groovyã¯Javaãããã®çãŸããèšèªã§ãããªãããRubyã®åœ±é¿ãåãããªã©ãä»èšèªã®åªããç¹æ§ãçµã¿èŸŒãã§é²åãç¶ããŠããŸãããã®ãããGroovyã®å¹ åºãå¿çšæ§ãšèªç±åºŠã¯ããããããå€ãã®éçºè ãæ¹ãã€ããæŽãªãé²åãéããããšã§ãããã
ç¹ã«Groovyã®ç¹æ§ã§ããJavaãšã®é«ãäºææ§ã¯ãJavaã䜿çšããŠããå€ãã®äŒæ¥ã§Groovyã®æ¡çšãé²ã倧ããªåæ©ãšãªã£ãŠããŸãããã®ååã¯ãGroovyã«ããå¯æ¥æ¡ä»¶ã®å¢å ãžãšç¹ãããŸãã
ããã«ãGroovyã®ç¹ã«æ³šç®ãã¹ãæªæ¥æ§ã¯ããã®èŠªåæ§ã®é«ãã§ãããŸããJavaãç¥ã£ãŠãããšã³ãžãã¢ãã¹ã ãŒãºã«åŠç¿ã§ããææ³ãJavaãšé£æºå¯èœãªç¹æ§ãªã©ã¯ãæ¢åã®Javaãšã³ãžãã¢ã®å¯æ¥ãã£ã³ã¹æ¡å€§ãããããã§ãããã
6.2 å¯æ¥ãšã³ãžãã¢ãšããŠã®å©ç¹ãšãã£ã³ã¹
ITæ¥çã§ã¯ãäžã€ã®èšèªã«ç¹åãããããå€æ§ãªèšèªãçµéšããããšã§ãå€è§çãªèŠç¹ãå¹ãããå¹ åºããããžã§ã¯ãã«åå å¯èœãšãªããŸããããã¯ãå¯æ¥ãšããŠæŽ»åãããšã³ãžãã¢ã«ãšã£ãŠã倧ããªå©ç¹ãšãªããŸãã
Groovyã¯Javaãšå¯æ¥ã«é¢é£ãããããJavaã®ãããžã§ã¯ãã«åå ããŠãããšã³ãžãã¢ãå¯æ¥ãšããŠGroovyã®æ¡ä»¶ãæãããããšã§ããã®çµéšã¯Javaã«ãããäž»æ¥ã®ä»äºã«ããã©ã¹ã®åœ±é¿ãäžããã§ãããã
ãŸããGroovyã®æ¡ä»¶ã¯Javaã®æ¡ä»¶ãšæ¯èŒããŠç«¶äºãå°ãªãå Žåãå€ããããå¯æ¥ãšã³ãžãã¢ã«ãšã£ãŠãã£ã³ã¹ãšããªããŸãããã®çšææ§ã¯ããã£ãªã¢ã¢ãããç®æããšã³ãžãã¢ã«ãšã£ãŠå€§ããªæ©äŒãšãªãã§ãããã
6.3 å®åã¢ãããšèªå·±æé·ã®èŠç¹
ãã¯ãããžãŒæ¥çã§ã¯åæ»ããããšãè¡°éãæå³ãããããåžžã«æ°ããæè¡ãåã蟌ãããšãæ±ããããŸããGroovyã®åŠç¿ã¯ãJavaã®ç¥èãåºã«ã¹ãã«ã»ãããåºããããšãã§ãã絶奜ã®ãã£ã³ã¹ã§ãã
Groovyã¯ã·ã³ãã«ã§ç°¡æœãªææ³ã«ãããJavaã®é²åçã®ããã«ãæããããŸãããã®ãããæ°ããèšèªãåŠç¿ããéã®æµææãæžãããã¹ã ãŒãºã«ã¹ãã«ã¢ãããå³ãããšãã§ããŸãã
ãŸããå¯æ¥ãšããŠGroovyã®æ¡ä»¶ãæãããããšã§åŸãçµéšã¯ãèªå·±æé·ã®èŠç¹ããã䟡å€ããããŸããåé¡è§£æ±ºèœåããæ°ããæè¡ã®ç¿åŸãéããèªå·±æé·ã¯ããšã³ãžãã¢ãšããŠã®ä¿¡é Œæ§ãé«ããããè¯ãæ¡ä»¶ãç²åŸããåå£ãäœãåºããŸãã
6.4 ååããªãã€ã³ããšæ¬¡ã®ã¹ããã
Groovyã«ããå¯æ¥ã¯ãããè±ããªãã£ãªã¢ãç¯ãäžã€ã®æ段ã§ããããããæãéèŠãªã®ã¯ãæ°ããªã¹ãã«ãåŠã¶ããšãžã®ååããªãã€ã³ãã§ãã
GroovyãåŠã¶ããšã§ãæ°ããèŠç¹ãåŸãŠããããŸã§ã®æ¹æ³ã«åãããªãçºæ³ã解決çã«æ°ã¥ãããšãããã§ãããããã®ç©æ¥µçãªå§¿å¢ããå¯æ¥ãšããŠã®æ¬¡ã®ã¹ããããžãšç¹ãããŸãã
æåŸã«ãæ°ããèšèªãåŠã¶ããšã¯æã«å°é£ã§ããããšããããŸãããææŠããããšã§åŸãããæé·ã䟡å€ã¯èšãç¥ããŸãããå¯æ¥ãšããŠã®Groovyã¯ããã®äžã€ãšèšããã§ãããã
åèæç®
- æåå¡Ÿ: Groovyã®åºæ¬çãªäœ¿ãæ¹ãç¹åŸŽã«ã€ããŠè©³ãã解説ããŠããŸãã
- Paiza: Groovyã«é¢é£ããæ±äººæ å ±ãæè¡æ å ±ãæäŸããŠããŸãã
- CodeZine: GroovyãšGrailsã«ã€ããŠã®è©³ãã解説ããããŸãã
- æ¡ä»¶è©å€: Groovyã䜿çšããå¯æ¥ã®æ¡ä»¶ç²åŸæ¹æ³ã«ã€ããŠã®æ å ±ãæäŸããŠããŸãã
- A-STAR: Groovyã®ç¹åŸŽãåºæ¬çãªäœ¿ãæ¹ãåŠç¿æ¹æ³ã«ã€ããŠåŸ¹åºçã«è§£èª¬ããŠããŸãã