ãJAVAâãã·ã¢èªã®Javaã«åºã¥ããŠããŸãã ããŒã1ïŒæžç±Â» habrahabr.ru/blogs/java/66568
ããã«ã¡ã¯ããããããã¹ïŒ
Scalaã®ãŠãŒã¶ãŒã«ããJavaã®æ¬ã®ä»¥åã®ã¬ãã¥ãŒã¯ãéå»3幎éã«åžå Žã«åå ¥ãããå®çšçãªãæ¬ã«ã€ããŠèªã£ãŠããŸãã ãããã®æ¬ãä»ã®æ¬ã«ã€ããŠãå°ãç°ãªãè§åºŠããã話ããããšæããŸããæ¬ã®æ å ±ã®äŸ¡å€ã匷調ããŠã¿ãŠãã ããã
ç§ã¯ã¢ãã¿ãŒããèªãã®ã奜ãã§ã¯ãªããçŽã®åœ¢ã§æ¬ãè³Œå ¥ããããšã奜ã¿ãŸãã ååãªæ å ±ã«åºã¥ããéžæãè¡ãã«ã¯ãæ¬ã«ããã€ãã®åºæ¬çãªç¥èãå«ãŸããŠãããããæåŸã®éšåãã®ã³ã¬ã¯ã·ã§ã³ã§ã¯ãªãããšã«æ³šæããå¿ èŠããããŸãã ãŸãããã®èšäºã§ã¯ãJavaã«çŽæ¥é¢ä¿ã®ãªãä»ã®æåãªäœåã«ã€ããŠèšåããããšæããŸãã èšèªåŠç¿ã«æé©ãªéžæè¢ã¯äœã§ããïŒ
ã ããJavaã ç§ã®æèŠã§ã¯ãçŽ æŽãããããã°ã©ãã³ã°èšèªã§ãã åªããæ©èœãšä»ã®å€ãã®äŸ¿å©ãªæ©èœãåãããåŠç¿ãããã ãããŠãæåãªæ¬ããç 究ãå§ãã䟡å€ããããŸã
C. Horstmann-Java2ïŒåºæ¬
èšèªãšãã©ãããã©ãŒã èªäœã®äž»ãªæ©èœã瀺ãéåžžã«è¯ãæ¬ã ã³ã¢APIã«ã€ããŠèª¬æããŸãã ç§ã®æèŠã§ã¯ãããã¯è³Œå ¥ã«å¿ èŠã§ãããGãã·ã«ãã®å€ªãã¬ã€ããèŠãŠã¯ãããŸããããèšèªãåŠãã ããšãããããæ£ããé©çšã§ããªããã°ãªããŸããã ããã¯ç§ãã¡ãå©ããŸã
G. Buchæ°ã®èæžããªããžã§ã¯ãæååæãšã¢ããªã±ãŒã·ã§ã³ã®äŸã«ããèšèšã
ãã®æ¬ã¯ãåå¿è ãšäžçŽããã°ã©ãã®äž¡æ¹ã«åœ¹ç«ã¡ãŸãã ãã®äž»ãªæå³ã¯ãã客芳çã«ãèããããšãæããããšã§ãã>泚ïŒãã®æ¬ã¯Javaã«çŽæ¥é¢é£ãããã®ã§ã¯ãªããããåå¥ã«åãäžããããšã¯ããŸããã
ãªããžã§ã¯ãæåã¢ãããŒãã®ç解ã¯ãèšèšãã¿ãŒã³ãç解ããããã®åªããåºç€ãšãªããŸãã ãããŠãããã¯ç§ãã¡ãå©ããŸãã
ãJavaãã¿ãŒã³ã®é©çšã-S. StelingãOãMassenã2001
ããªãããã¿ãŒã³ãªãã§å®å šã«ã³ãŒãã£ã³ã°ããã®ã§ããïŒãOOPèšèªã®ããããã§ãããã°ã©ãã³ã°ããã人ã ã®ããªãäžè¬çãªè³ªåã§ãã ãã®ç¶æ³ãå°ãæ確ã«ããããšæããŸããçŸä»£ã®ããã°ã©ãã³ã°ã¯ãã¯ãæè¡ã§ã¯ãªãããããå·¥å Žã§ãããçµæã ãã§ãªããéçºã®é床ãæ¡åŒµæ§ãªã©ãéèŠã§ãã ããã¯ãã¹ãŠãé©åãªèšèšãªãã§ã¯éæã§ããŸããã 第äºã«ããã®èšèªã®ã»ãšãã©ãã¹ãŠããã¿ãŒã³ã«åºã¥ããŠããããããã®ãããªæç®ãèªãããšã«ãããJavaèªäœã®æ§æãç解ã§ããŸãã
ããã§ãæ°ããç¥èãåŸãããã«ãæåã®ãããžã§ã¯ãããã倧ããªãããžã§ã¯ãã«åå ã§ããŸãã ãããŠãæ¬ã®ç¬¬äºå·»ã¯ç§ãã¡ãå©ããŸã
C. Horstmann-Java2ïŒããã°ã©ãã³ã°ã®åŸ®åŠã
æãããªããã»ã¹ã®æçœã§ãªããããªãã¯ãã瀺ãçŽ æŽãããæ¬ã çµéšãªã-ãžã£ã³ã°ã«ã«é£ã³èŸŒãŸãªãã§ãã ãããç§ã®ãæ°ã«å ¥ãã®æ¬ãèšåããã«ã¯ããããŸãã
ã¹ãã£ãŒãããã³ãã«-å®ç§ãªã³ãŒã
ããã°ã©ãã³ã°ã«æºãã£ãã®ã§ã 1幎ãŸãã¯2幎ããšã«æåããæåŸãŸã§èªãã§ãã ãã ããã®ãããJavaãäœã§ãããããã§ã«ç解ããŠããããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã¯ä»¥åã®ããã«ç§ãã¡ã«åºæ¿ãäžããªããªã£ãããããµãŒããŒã¢ããªã±ãŒã·ã§ã³ãäœæããããšã«ããŸããã
J2EEã«æž¡ããŸãã ããã«ãç§ã«ãšã£ãŠãJ2EEä»æ§ã¯ãµãŒãã¬ãããjspãjsfãããã³ããã€ãã®ãã¬ãŒã ã¯ãŒã¯ã ãã§ã¯ãªãããšã«æ³šæããŠãã ããã ããæ·±ãç¥èãåŸãã«ã¯ããã·ã¢èªè©±è ã«ã¯èŠãããªãã£ãå®å šã«ç°ãªãæç®ãå¿ èŠã§ãïŒãEJB 3 in ActionãããEJB Design PatternsïŒAdvanced PatternsãProcessesãand Idiomsããªã©ããªãªãžãã«ã®æ¬ãããå§ãã§ããŸããïŒã
Scalaã®habro-userã®èšäºã§ãã§ã«è¿°ã¹ãããã«ãJ2EEã«é¢ããæžç±ã¯éåžžã«å°ãªãã3ã€ããèšããŸããã
Budi Kurnyanav-ãJavaã§ã®Webã¢ããªã±ãŒã·ã§ã³ã®ããã°ã©ãã³ã°ã
åå¿è åãã®çŽ æŽãããæ¬ã ãµãŒãã¬ãããšJSPã«åºã¥ããŠj2EEã¢ããªã±ãŒã·ã§ã³ãäœæããåºæ¬ãéåžžã«ãã説æããŠããŸãã ãã¹ã¿ãŒã¯ãããã¯ãã¯ãé¢ä¿ããªããšèšããEJBã«ã€ããŠã¯äœãèšãããŠããŸããã ãã ãããã®æ¬ã¯ãJ2EEããã³ãµãŒããŒã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã®äœäžã«ç²Ÿéãå§ããã°ããã®äººã察象ãšããŠããŸãã ã€ã³ã¿ãŒãããã®åºæ¬çãªéçºã¹ãã«ãæäŸããŸãã ãããã£ãŠããã®åºçç©ã¯ãã®äœ¿åœã100ïŒ æãããŸãã ãã¬ãŒã ã¯ãŒã¯ããã®ä»ã®æè¡ã®ç 究ããŸãå¥ã®è©±ã§ãã ãããšã¯å¥ã«ãå°å·æ©ã®äžå¿«ãªå質ã«èšåãã䟡å€ããããŸããå³é¢ã¯èªããŸããã
C. Horstmann-ãJavaServerãçŽé¢ããŠããã
must_haveã®ã«ããŽãªããã®JSFãã¬ãŒã ã¯ãŒã¯ã«é¢ããçŽ æŽãããæ¬ã JSFã§ã®éçºã®ãã¹ãŠã®å©ç¹ããéçºã®å©äŸ¿æ§ãšé床ããBeansãäžã§ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããåçãããã³ãã®æè¡ã®ãã®ä»ã®å€ãã®å©ç¹ã®èŠ³ç¹ãã瀺ããŸãã
ãJ2EEã®ãµã³ãã«ã æé«ã®ãœãªã¥ãŒã·ã§ã³ãšèšèšæŠç¥â
Deepak AlurãJohn Krupiãããã³Dan Mulksã¯ãJ2EEã®ãã¿ãŒã³ã«é¢ããåªããæ¬ãæžããŠããŸãã J2EEã«åºã¥ããWebããã°ã©ãã³ã°ã«çå£ã«èå³ããã人ã«ã¯å¿ èªã§ãã
ãã¬ã·ãããã¯ããèŠå€±ã£ãã®ã¯ãªãã§ããïŒ ã¯ããããã¯äŸ¿å©ã§ãããããã¯ããŒãã³ããŒã§è³Œå ¥ãã¹ãæ¬ã§ã¯ãããŸããã
J2me
ç©äºã¯ããã§éåžžã«æªãã§ãã ç§ãèªãã ãã®ã¯ãã¹ãŠããèªã¿ãªããã²ãŒã ãæžãããšããåçŽãªãã¥ãŒããªã¢ã«ã«ãŸãšããããŸããã éåžžã«æããªæåŠã
çµè«ïŒ
誰ããæè¡ã®é ç¹ã«ãããããšæã£ãŠããŸãã æ®å¿µãªããããããã®æè¡ã¯è¥¿åŽã§çãŸãããã®ã§ãã èè ã¯æ¬ãæžãã翻蚳ããŸã...貎éãªæéãç¡é§ã«ãªããæ¬ããªãªãŒã¹ãããé ã«ã¯ããããã®ããªãã®ååã¯ãã¯ãé¢é£æ§ããªããªã£ãŠããŸãã ããããããã§ããæè¡æç®ïŒãªãªãžãã«ãå«ãïŒãèªãããšã¯ãé ã®äžã§åºç€ãäœããšããç¹ã§éåžžã«æçšã§ãã çµå±ã®ãšãããããã°ã©ãã®ä»äºã¯ã³ãŒããå ¥åããã ãã§ã¯ãªããåµé çãªã¢ãããŒããå¿ èŠãšãã倧å€ãªä»äºã§ãã
ä»ã«äœãè¿œå ã§ããŸããïŒ å¹æãé«ããããã«ããªãªãžãã«ãããã¥ã¡ã³ãããã©ãŒã©ã ãèªã¿ãŸãã åå¿è åã-ãŸã第äžã«-æ¬ã
PS
ãSpringãHibernateãEclipseã䜿çšããæè»ãªJavaã¢ããªã±ãŒã·ã§ã³éçºããªã©ã®æšè«ã«é¢ããæ¬ããããŸãã å®éãæ¥ãå¬ç ããããŸããã ããã°ã©ã ããæ¹æ³ã«ã€ããŠã®è°è«ã ãã ãã®ãããªåºçç©ã«ã€ããŠã¯èª¬æããŸããããå°±å¯åã«èªãã§ãããã®ã誰ããèªåã§éžæã§ããããã«ããŸãã
UPDïŒ sseã« ããM. Fowlerã«ããæžç±ãEnterprise Application Architectureãã®èª¬æ
æ¬ã«é¢ããç§ã®æèŠã
æ¬ãåºå¥ããæåã®ããšã¯ãèè ã®ãã¬ãŒã³ããŒã·ã§ã³ã®ã¹ã¿ã€ã«ã§ãã ãã¹ãŠãéåžžã«æ確ã§ã楜ããçåŸãäœæããããããã«äŒŒãŠããŸã-èŠç¹ãèšé²ãããç¬éã匷調衚瀺ãããå¿ èŠãªã€ã©ã¹ãããããŸãã ãã®æ¬ã¯ãã¢ããªã±ãŒã·ã§ã³ãã¬ã€ã€ãŒã«åå²ãããããžãã¹ããžãã¯ãæŽçãããããŒã¿ããŒã¹ãæäœããããã®èããããã·ããªãªãWebã¢ããªã±ãŒã·ã§ã³ã§UIãæŽçãããªã©ãããŸããŸãªåé¡ãç¶²çŸ ããŠããŸãïŒãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®UIã¯æ±ã£ãŠããŸããããèè ã¯ãã®åŸããã®æ å ±ãèªåã®Webãµã€ãã«è¿œå ããŸããïŒã éèŠãªã®ã¯ãJavaã«ã¯çŸä»£ã®éçºè åãã®å ±éèªããããšããäŸããããŸãã
ããããããã®ããŒãã«ãã¯ã©ã¹ã§ã©ãããããããç¶æ¿ããŸã-ãªããŠãã£ããç§ã¯æ°ããæ¹æ³ãæãã€ããŸããããšããèãã奜転ãå§ãããšãã¯ãã€ã§ãããã¡ãŠã©ãŒã®æ¬ãèªãã§èªã䟡å€ããããŸã-ããã¯ããããææžåãããè¿°ã¹ãããæ¹åãããæ¹æ³ãèšè¿°ããã説æãããŠããŸãèœãšãç©Žãšããããåé¿ããæ¹æ³ãäžããããŸãã
æ¬ã¯2ã€ã®éšåã«åãããŠãããããã¯GoFã®æ¬ãDesign Patternsãã®æ§é ã«éåžžã«äŒŒãŠããŸãã æåã®éšåã«ã¯ãã·ã¹ãã ã®æ§ç¯ã«é¢ããäžè¬çãªèŠå®ãšãæ¬æžã®ç¥èãå®éã®çšéã«å¿çšããäŸãå«ãŸããŠããŸãã 2çªç®ã®éšåã¯ãã¢ããªã±ãŒã·ã§ã³å±€ããšã«ã°ã«ãŒãåããããã¿ãŒã³ã®ãã£ã¬ã¯ããªã§ãåå±€ã«å¯Ÿå¿ããã®ãäžè¬çã§ãã
çµè«ãšããŠãå€ãã®åºæ¬ãã¿ãŒã³ã¯ãããŒã¿åŠçããã³ã¹ãã¬ãŒãžã®åéããæãäžè¬çã§æ®éçãªãã®ãšããŠæ瀺ãããããžãã¹ãªããžã§ã¯ããæ§ç¯ããã€ã³ã¿ãŒãã§ãŒã¹éšåã®ãã³ããæäŸããŸãã
ãã®æ¬ã¯å®ãã¯ãããŸããããããã«å«ãŸããæ å ±ã¯ããèªäœã«å ±ããŸãã Fowler martinfowler.com Webãµã€ãã®é»åçã§å ¥æã§ããŸãããéžæãããŠãå¿ èŠãã©ããã確èªã§ããŸãã ç§ã¯ããã«å¿ èŠãªãã®ã«æ°ã¥ããŸãã:)
UPD2ïŒè±èªã®ãŠãŒã¶ãŒã«ã«ããŒããšãã£ã·ã§ã³ã®èª¬æ
ç§ã®æèŠã§ã¯ããããŸã§ã«Javaã«ã€ããŠæžãããæé«ã®æ¬ã®ãªã¹ãã§ãã æžç±ã¯éèŠåºŠé ã«äžŠã¹ãããŠããŸãïŒæãåºæ¬çãªãã®ãæåã«ãªã¹ããããŠããŸãïŒã
0. James Goslingãã«ãã J ava Language Specification第3çã¯ãæãéèŠãªæ¬ã§ããããã®ãªã¹ãã®æ¬çªå·0ãJLSãšãåŒã°ããŸãã 第3çã§ã¯ãèšèªã®5çªç®ã®ããŒãžã§ã³ã«ã€ããŠèª¬æããŸãã ãã¹ãŠã®Javaããã°ã©ããŒãJLSãå°ãªããšã1åã¯èªãã¹ãã ãšæããŸãã èªåã§äœ¿çšããããä»ã®äººãæžããã³ãŒããç解ãããããã«ã¯ãèšèªãæäŸãããã¹ãŠã®å¯èœæ§ãç¥ãå¿ èŠããããŸãã JLSã¯ã䜿çšããã©ã€ãã©ãªã®JavaDocãŸãã¯ãã®ä»ã®ããã¥ã¡ã³ãã®é¡äŒŒç©ã§ãã ãã ããéåžžããã°ã©ãã³ã°ç°å¢ããããã¥ã¡ã³ããå©çšã§ããã©ã€ãã©ãªã¯ã©ã¹ãšã¯ç°ãªãããã®èšèªã¯ããã°ã©ãã³ã°ç°å¢ã§ã³ã³ããã¹ãããã¥ã¡ã³ããæäŸããŸããããããã£ãŠãJLSã¯å°ãªããšãç®æ¬¡ãšåé ç®ã®äžè¬çãªã³ã³ãã³ãã§å®è³ªçã«ãæåããæåŸãŸã§ãèªãå¿ èŠããããŸãã JLSã¯ãSun Certified Java ProgrammerïŒSCJPïŒè©Šéšã®æºåã«å¿ èŠãªè³æã§ãã
1. Joshua Blochã«ããEffective Java 2nd Editionã¯ãJavaèšèªã䜿çšããŠãä»ã®äººã«ãšã£ãŠããããããç解ããããããã°ã©ã ãäœæããæ¹æ³ã説æããŠããŸãã ããã¯ããã¹ãŠã®Javaããã°ã©ããŒã®ã¬ããŒããªãŒå ã«ããã¹ãå®çšçãªãã³ããšãã¿ãŒã³ã®ã³ã¬ã¯ã·ã§ã³ã§ãã 圌ã®ãã¹ãã»ã©ãŒæ¬ã®ç¬¬2çã§ã¯ãBlochãJavaã®ç¬¬5ããŒãžã§ã³ã®ãã¹ãŠã®æ©èœã®å¹æçãªäœ¿çšã«ã€ããŠèªã£ãŠããŸãã é·å¹Žã®çµéšãæã€ããã°ã©ããŒã§ãããæ°ããäœããçºèŠããJavaããã°ã©ãã³ã°ã«é¢ãããã¹ãŠã®åºæ¬çãªç¥èã®äœç³»åã確å®ã«æ¥œããã§ãããã
2.ãã«ãã¹ã¬ããJavaã¢ããªã±ãŒã·ã§ã³ãäœæãããã¹ãŠã®äººã«ã¯ãBrian Goetzãã«ããå®è·µçãªJavaåæå®è¡æ§ ïŒé©åãªãã«ãã¹ã¬ããã³ãŒããèšè¿°ãããå Žåã«èªãå¿ èŠããããŸãïŒãå¿ èŠã§ãã åçŽãªã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåã¯èªãå¿ èŠã¯ãããŸããããããžãã¹ããžãã¯ã«ã¯ãããã°ã©ãããã«ãã¹ã¬ããããåé¢ããJ2EEãŸãã¯ãã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãã ããã ãã ããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãŸãã¯åå¿é床ãæé©åããå¿ èŠããããšããã«ãçŸä»£ã®äžçã§ã¯ãã«ãã¹ã¬ããããéããããšã¯ã§ããŸããã ãã®å ŽåãGoetzã®æ¬ãæé«ã®ã¢ã·ã¹ã¿ã³ãã«ãªããŸãã
3. Java PuzzlersïŒãã©ãããèœãšãç©Žãã³ãŒããŒã±ãŒã¹Joshua Blochã«ããNeal Gafterã¯ãJavaèšèªå°çšã®ç¥çããºã«ã§æ§æãããèå³æ·±ãæ¬ã§ãã Javaèšèªã®ãã¹ãŠã®å¢çã±ãŒã¹ãæããã«ããã³ãŒããç解ã§ããããã«ããã°ã©ãã³ã°ããªãæ¹æ³ãæããŸãã ãã®æ¬ã¯èªãå¿ èŠã¯ãããŸããããSCJPã®æºåãšããªãèªèº«ã®åã³ã®ããã«åŒ·ããå§ãããŸãã