Javaãã©ãããã©ã¼ã ã«ãããã³ã¼ãèªåçæã®èãæ¹ã®å¤é·
æ®æ®µã¯ä¸ä½ã®ãã¬ã¼ã ã¯ã¼ã¯ã製åã®ä¸ã«é è½ããã¦ãããããä¸è¬ã®æ¥åã¢ããªã±ã¼ã·ã§ã³ã®ããã°ã©ãã¼ã«ã¯æ°ã¥ãã«ãããã¨ã§ãããåãJavaè¨èªã®ç°å¢ã¨ãã£ã¦ããæ代ã«ãã£ã¦ã³ã¼ãèªåçæã«å¯¾ããèãæ¹ã¯å¤ãã£ã¦ãã¦ãã¾ãã建æãæ¨ãç³ãéçã³ã³ã¯ãªã¼ãã¨å¤åããã°å½ç¶å»ºç©ã®å·¥æ³ãè¨è¨ãç°ãªãããã«ããã¬ã¼ã ã¯ã¼ã¯ãã½ããã¦ã§ã¢ã®ã¢ã¼ããã¯ãã£ã¼ãéçºææ³ã¯æè¡ã®é²æ©ã«åããã¦æã¾ããå½¢ã«é²åããã¦ãããªãã¦ã¯ãªãã¾ããã
ããã§ãJavaãã©ãããã©ã¼ã ã®èªåçæã«é¢ããæè¡ååã«ã¤ãã¦ç°¡åã«ã¾ã¨ãã¦ã¿ããã¨æãã¾ãã
æã¯éçãªã½ã¼ã¹ã³ã¼ãçæãä¸å¿
æã¨ãã£ã¦ãã»ãã®10å¹´ãããåã®ãã¨ã§ãããJDK1.2ãJava IDLï¼CORBAï¼ãRMIãEJB1.xãªã©ã使ããã¦ããæ代ã®ãã¨ã§ããä¸é¨ã®å é²çãªç 究ãé¤ãã¨ããã®æ代ã«Javaã§èªåçæã¨ããã¨ä¸è¬çã«ã½ã¼ã¹ã³ã¼ããèªåçæãããã¼ã«ãæå³ãã¾ããããã ããèªåçæã¨ãã£ã¦ããå®éãã¾ãã¾ãªã¬ãã«ã®ãã®ãããã¾ãã
- ifãããã¯ãªã©ã³ã¼ããã³ãã¬ã¼ããèªåçæãã
- getterã¡ã½ãããsetterã¡ã½ãããèªåçæãã
- ã¢ããªã±ã¼ã·ã§ã³ã®åæã®éå½¢ãèªåçæãã
- XDocletã®ããã«ã½ã¼ã¹ä¸ã®ã¡ã¿ãã¼ã¿ããHomeã¤ã³ã¿ãã§ã¼ã¹ãxmlã®ãããªé 管ã³ã¼ããèªåçæãã
- ç»é¢ããã¸ãã¯ããã¼ã¿ã¢ã¯ã»ã¹ã¾ã§å®å ¨ã«èªåçæãã
- ãªã¢ã¼ãã¡ã½ããã®ã¹ã¿ããã¹ã±ã«ãã³ãèªåçæãã
- åä½è©¦é¨ã®ã³ã¼ããèªåçæãã
- UMLã®ã¯ã©ã¹å³ãã·ã¼ã±ã³ã¹å³ããã½ã¼ã¹ã³ã¼ããèªåçæãã
以åã«ãSIerがExcel→Javaのコード自動生成をPGに押し付けるのは善か悪か? - 達人プログラマーを目指してã§æ¸ããExcelã使ã£ãã³ã¼ãçæã¨ããã®ããã®ç¯çã«å±ãã¾ãããã®ãããªã½ã¼ã¹ã³ã¼ãã®èªåçæã§ã¯ãä¸æçãªçç£æ§ã¯åä¸ãããã®ã®ãä¸è¬çã«ã¯ä¿å®ãå¤æ´ãé£ããã³ã¼ãã大éã«ä½ããããã¨ã«ãªãããã使ãæ¨ã¦ã®ãããã¿ã¤ããªã©ç¹æ®ãªç®çãé¤ãã°æè¿ã¯æ¬é ãããå¾åãããã¾ãããã ããã¢ããªã±ã¼ã·ã§ã³ã®éå½¢çæãIDEãã¨ãã£ã¿ã®ã³ã¼ããã³ãã¬ã¼ãæ©è½ã¯ä¿å®æ§ã®åé¡ãå°ãªããããç¾å¨ã§ãæç¨ã ã¨æãã¾ããï¼getterãsetterçæãªã©ãä¾ç¶ã¨ãã¦å½é¢ã¯æç¨ã§ãããJavaè¨èªã«ããããã£ãå°å ¥ããããªã©è¨èªèªä½ãé²æ©ããã°ä»å¾å»ããããã«ãªãã§ããããï¼
2000年代å¾åã¯åçãããã·ã¼ãæµè¡
èªåçæã®æè¡ã¨ãã¦ã¯ãå¤ãã®Javaããã°ã©ãã¼ããã¯ï¼å ´åã«ãã£ã¦ã¯ã¢ã¼ããã¯ããï¼ï¼ãã¾ã ã«ããç¥ããã¦ããªãããã§ãããJDK1.3ãããªã¯ã¬ã¯ã·ã§ã³APIã®æ¡å¼µæ©è½ã¨ãã¦å°å
¥ãããåçãããã·ã¼ã¨ãã大åãªæ©è½ãããã¾ãã
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
Javaの理論と実践: 動的プロキシーで装飾する
ãã®æ©è½ã使ããã¨ã§ãJavaã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ãå®è£
ããã¯ã©ã¹ãå®è¡æã«åçã«çæãããã¨ãç°¡åã«ã§ããããã«ãªãã¾ããããã®æè¡ã¯SpringãSeasar2ã®AOPæ©è½ã®åºç¤ã«ããªã£ã¦ãã¾ããã¾ãããã®æè¡ã«ããå¾æ¥ã®EJBã®éçãªã¹ã¿ãã³ã¼ãçæãªã©ã¯ã»ã¼å®å
¨ã«æ代é
ãã¨ãªã£ã¦ãã¾ãã¾ãããããã«ãåçãããã·ã¼ã«ãã£ã¦ã試é¨ã®éã«ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ã¢ãã¯å®è£
ãåçã«çæãããããªEasyMockãjMockã¨ãã£ãã©ã¤ãã©ãªã¼ãåºãå©ç¨ãããããã«ãªã£ã¦ãããã¨ãããã°ã©ãã¼ã«ã¨ã£ã¦ã¯éè¦ãªãã¨ã§ããããï¼ãªããJDKã®åçãããã·ã¼ã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«å¯¾ãã¦ããå©ç¨ã§ãã¾ããããcglibã¨ããã©ã¤ãã©ãªã¼ãå©ç¨ãããã¨ã§ãã¯ã©ã¹ã«å¯¾ãã¦ãåçã«ãµãã¯ã©ã¹ãçæãããã¨ã§ä¼¼ããããªå¦çãå¯è½ã¨ãªãã¾ããï¼
ããããã¯ãã¤ãã³ã¼ãæ¸ãæãæè¡ãä¸è¬çã«å¿ç¨ãããããã«ãªã
åçãããã·ã¼ã¯ç¢ºãã«å¼·åãªæè¡ã§ããã
- publicãªã¤ã³ã¿ã¼ãã§ã¼ã¹ã«å¯¾ãã¦ããå©ç¨ã§ããªã
- ãããã·ã¼ã®ããthisçµç±ã§ã®èªå·±å¼ã³åºãæã«å¦çãç¹ãè¾¼ããªã
- cglibã§ãstaticã¡ã½ãããfinalã¡ã½ãããã³ã³ã¹ãã©ã¯ã¿ã¼ã®ç½®æã¯ä¸å¯
ãªã©ã®å¶ç´ãããã¾ããããããã£ã¦ãAOPãé©ç¨ããããã¢ãã¯ãã¹ãã®ä½æããããããå ´åã«ãããããå¶ç´ãåé¡ã¨ãªããã¨ãå¤ãããã¾ãããå¤ãSpringã¢ããªã±ã¼ã·ã§ã³ã§ã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ãå®è£
ãããµã¼ãã¹ã¯ã©ã¹ãDAOã¯ã©ã¹ãä½ãã¨ããæ
£ç¿ããããã¾ãããã¸ãã¯ããã¡ã¤ã³ãªãã¸ã§ã¯ãã§ã¯ãªãããããã¯ã©ã¹ã«å¤ã ããããã¨ãå¤ãã®ã§ããããã®ãããªæè¡ä¸ã®å¶ç´ã大ãã«é¢é£ãã¦ããã¨æããã¾ããæã®EJBã«æ¯ã¹ãã¨POJOã§ããªãè¨è¨èªç±åº¦ãé«ããªã£ã¦ãããã®ã®ãã¾ã ã¾ã DDDã§èªç±ã«è¨è¨ããã«ã¯å¶ç´ããã£ãã¨ãããã¨ã§ãã
ãã ããæè¿ã¯bcelãasmãJavassist*1ã¨ãã£ããããªã©ã¤ãã©ãªã¼ã«ä»£è¡¨ããããããªãã¤ãã³ã¼ããçæãããæ¸ãæããããããããªæè¡ãããªãæçãã¦ãã¦ãã¾ããã¾ãããããã®ä½æ°´æºã®ã©ã¤ãã©ãªã¼ã®ä¸ã«AspectJãSpring RooãGroovyã¨ãã£ãããä¸ä½ã®ã¬ã¤ã¤ã¼ã®ãã¬ã¼ã ã¯ã¼ã¯ãçµã¿åããããããã¨ã§æ¥åã¢ããªã±ã¼ã·ã§ã³ã§ãç°¡åã«ãããã®ãã¤ãã³ã¼ãå¤ææè¡ãå©ç¨ã§ããããã«ãªã£ã¦ãã¦ãã¾ãããã®æè¡ãå©ç¨ãããã¨ã§ãã¡ã¿ããã°ã©ãã³ã°ã«ããå¾æ¥ã¯æåã§ä½æãã¦ããå¤ãã®é
管ã³ã¼ãã®è¨è¿°ãèªååãããã¨ãã§ãã¾ãããã¤ãã³ã¼ãå¤æã¯JPAã®å®è£
ã§ãå¿
é ã§ãããã¾ããåä½ãã¹ãã®ãã¬ã¼ã ã¯ã¼ã¯ã以åã®jMockãªã©ã«ä»£ãããJMockitãPowerMockãªã©ã®ããã«ãã¤ãã³ã¼ãå¤æãå©ç¨ããæ°ãããã¬ã¼ã ã¯ã¼ã¯ãå©ç¨ã§ããããã«ãªã£ã¦ãã¦ãããstaticã¡ã½ãããprivateã¡ã½ãããã³ã³ã¹ãã©ã¯ã¿ã®ã¢ãã¯åããå¯è½ã«ãªã£ã¦ãã¾ãã
ãªããJava5ããè¨æ¸¬API*2ã¨ããã®ããããã¯ã©ã¹ãã¼ãæã«ãã¤ãã³ã¼ããå¤æããããã®ä»çµã¿ããã©ã°ã¤ã³ããããã®APIãæ¨æºåããã¦ãã¾ãã
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
以åã¯ãããããã¤ãã³ã¼ãå¤ææè¡ã¯ä¸ç¨®ã®é»éè¡ã®ãããªãããããã®ããããã¯ä¸é¨ã®ç 究è
ã®éã³éå
·ã®ããã«æããã¦ããããããã¾ããããä»å¾ã¯ããããæè¡ãä¸ç¨®ã®DSLï¼ãã¡ã¤ã³åºæè¨èªï¼ã®å®è£
æè¡ã¨ãã¦å©ç¨ããããã¨ã§ï¼æèããããªãã«ãããããï¼ä¸è¬ã®ã¢ããªã±ã¼ã·ã§ã³éçºè
ã«ãæã®å±ãã¨ããã§å©ç¨ãããããã«ãªã£ã¦ãã¦ããã®ã§ãã*3
ãã¡ãããéçãªã³ã¼ãçæãåçãããã·ã¼æè¡ãå®å
¨ã«æ代é
ãã¨ããããã§ã¯ãªãé©æé©æã§ä»å¾ã使ãããå±é¢ã¯ããã¨æãã¾ãããèªåçæã¨èããæã«Javaã®ã½ã¼ã¹ã³ã¼ããçæãããã®ããé ã«æãæµ®ãã°ãªãã®ã¯ãå°ãªãã¨ãã¢ã¼ããã¯ãã¨ãã¦ã¯åå¼·ä¸è¶³ã§ãããªãã¨æãã¾ãã
*1:Rubyã¨åæ§ã«ãã¨ãã¨æ¥æ¬äººPGã®çºæã«ãããã®ã§ãã
*2:ãã¨ãã¨æ§è½æ¸¬å®ãç£è¦ç¨ã®ãã°ãåãè¾¼ãã¨ããã¨ããããæ¥ã¦ããååã ã¨æããããã¤ãã³ã¼ãå¤æã§ã§ãããã¨ã¯ãã¡ããããã ãã§ã¯ãªãã
*3:ä¸é¨ã®PGã®æ¹ããã¯Javaã¯æ¢ã«æ代é ãã¨ãã声ãèããã¾ããããã®ãããã®æè¡ãååã«æ´çããã¦ããç¹ã¯ä»ã®ãã©ãããã©ã¼ã ã«æ¯ã¹ã¦Javaã®é åã®ä¸ã¤ã§ããã¨æãã¾ããJavaè¨èªèªä½ã¨ãã©ãããã©ã¼ã ã¯å¥ã¨ãããã¨ãããã¾ããã