éçºãã¼ã ã«ã¢ã¼ããã¯ããããªããªã¨æãã¦ãã¾ããããªãæ®å¿µãªã³ã¼ãã¹ã¡ã«ã®ä¾
ã¾ã£ããå人çãªã¢ããã¼ã·ã§ã³ã®åé¡ãããååã®æçµæ´æ°ãã2年以ä¸ãçµéãã¦ãã¾ããå¤ãã®èªè ã®ã¿ãªããã«ã¯ãå¿é ãããããããã¾ããããããã°ã©ãã³ã°ã«é¢ãã¦èª¿ã¹ããã¨ãæ¥ã æãããã¨ãã¡ã¢ã¨ãã¦æ®ãã¦ããããã¨æãã¾ãããã¨ãããã¨ãã¨ã®åç¹ã«ç«ã¡è¿ã£ã¦ããã¾ãæ°è² ããã«ãã¾ãä»å¾ãæã æ´æ°ãã¦ããããã¨æãã¾ããä»ã¾ã§ãã®ããã°ã®ä¸»ãªãã¼ãã¨ãã¦ãJavaEEãSpringã¨ãã£ããããªãããããæ¥åéçºã§ä½¿ããããããªæè¡ãä¸å¿ã¨ãã¦ããããã§ãããæè¿Springã使ã£ãJavaã®éçºã«ï¼ã¢ã¼ããã¯ãã§ã¯ãªãï¼ããã°ã©ãã¼ã¨ãã¦ã¡ãã£ã¨åå ããæ©ä¼ããã£ãã®ã§ããã®ææ°ã¥ãããã¨ãæãããã¨ãæ¸ãã¦ã¿ããã¨æãã¾ãã
ãã¦ãçããã¯ã¢ã¼ããã¯ãã£ãã¢ã¼ããã¯ãã¨ããè¨èã«å¯¾ãã¦ã¯ã©ã®ãããªãã®ãã¤ã¡ã¼ã¸ããã§ãããããã·ã¹ãã ã®ã»ãã¥ãªãã£ã確ä¿ããããã®æ¹å¼ã§ãã£ããã大éã®ãã¼ã¿ãçæéã«å¦çãã並ååã®ä»çµã¿ã§ãã£ãããã¾ããå¹ççãªæ¥åããã¼ã®æ§ç¯ã ã£ãããã½ããã¦ã§ã¢ã¢ã¼ããã¯ãã£ã¨ããè¨èã¯ã³ã³ããã¹ãã«ãã£ã¦å®ã«æ§ã ãªå¯¾è±¡ãæå³ãã¾ããå®éã«ã¯ãã½ããã¦ã§ã¢ã¢ã¼ããã¯ãã¨ãã£ã¦ããã¾ãã¾ãªä»äºããããã¾ããããããã®åéã«ããã¦è¨å¤§ãªç¥èãå¿ è¦ãªãããæè¿ã§ã¯ãå»è ããã®ããã«å°éã®å¾æåéã«ç¹åããããå¾ãªãã¨ãããã¨ãããããããã¾ãããåºæ¬çã«ã¯ãã¢ã¼ããã¯ãã¯ããã¸ã§ã¯ãã®æåãå·¦å³ãããããªåºæ¬çãªè¨è¨æ¹éãæè¡ã®é¸æã¨ãã£ããã¨ã«é¢ãã£ã¦ãã¾ãã
ããã§ã¯ç¹ã«ãã¯ã©ã¹ãããã±ã¼ã¸ãè¨å®ãã¡ã¤ã«ã®åå²ã¨ãã£ãéçºä½æ¥ã«æ·±ããããã£ã¦ãããããã°ã©ãã³ã°ã®åºæ¬æéã®ãã¨ãåã«ã¢ã¼ããã¯ãã£ã¨å¼ã¶ãã¨ã«ãã¾ããèªåã®çµé¨ãããããã®ããã°ã©ãã³ã°ã«é¢ããã¢ã¼ããã¯ãã£ã¯ããã°ã©ãã¼ã®éçºçç£æ§ããå¾ã ã®ã³ã¼ãã®åå©ç¨æ§ãä¿å®æ§ã¨ãã£ãç¹ã«æ·±ããããã£ã¦ããéçºã®æéè¦ãã¤ã³ãã®ä¸ã¤ã§ãããä»ã®ã¢ã¼ããã¯ãã£æéã¨ã¨ãã«ããã¸ã§ã¯ãæåã®ããã«ã¯è»½è¦ã§ããªããã®ã§ããã¨èãã¦ãã¾ãããã®æå³ã«ããã¦æå¹ãªã¢ã¼ããã¯ãã£ãæ§ç¯ããã«ããã£ã¦ã¯ãã¢ã¼ããã¯ããã¢ããªã±ã¼ã·ã§ã³éçºãã¼ã ã®ã¡ã³ãã¼ã¨ãã¦ä»äºãããããå°ãªãã¨ããæ·±ãé¢ä¸ããã¨ãããã¨ã大åã ã¨æãã¾ããã¢ã¼ããã¯ãèªèº«ãã¢ããªã±ã¼ã·ã§ã³éçºè ã®ã³ã¼ããå°ãªãã¨ãã¬ãã¥ã¼ã§ããä½å¶ã«ãªã£ã¦ããã¹ãã ãããç¾å ´ã®ããã°ã©ãã¼ã®æ°æã¡ãããããç¶æ ãæã¾ããã¨æãã¾ããããã«ããããã£ãããã°ã©ãã³ã°ã¢ã¼ããã¯ãã£ã¯äºåã«ããããã決ãããããã®ã§ã¯ãªããç¹°ãè¿ãã®ãªãã¡ã¯ã¿ãªã³ã°ãéãã¦ãç¹°ãè¿ãæ´ç·´ãã¦ããã¨ããã¢ã¸ã£ã¤ã«ãªããã»ã¹ãå¿ é ã§ããã¨æãã¾ãã以åããç§ããä¸æµã¢ã¼ããã¯ããã¨ããè¨èãä½åã使ã£ã¦ãã¾ããããå°ãªãã¨ãæå¹ãªããã°ã©ãã³ã°ã¢ãã«ãæ§ç¯ããã«ããã£ã¦ãã¢ã¼ããã¯ãã¯éå½¹æ¤ åã«åº§ã£ã¦ãã¯ã¼ãã¤ã³ãã®è³æãç·¨éãã¦ããã ãã§ã¯ãªãã¦ãå®éã«éçºãã¼ã ãçããããã°ã©ãã¼ã§ãããã¹ããªã®ã§ããï¼アーキテクトもプログラミングするべきか? - 達人プログラマーを目指してï¼
æ®å¿µãªãããå¤ãã®ããã¸ã§ã¯ãã«ããã¦ã¯ãéçºãã¼ã ã®ä¸ã«ããããã¢ã¼ããã¯ããããªãã®ã§ãªããã¨æãããã¨ãããã¾ããå®éã«ããããã£ãäºå®ã¯å®éã«ã½ã¼ã¹ã³ã¼ããèªãã§ããã¨ããã¤ãã®ç¹å¾´ããæããã«ãªãã¾ããããã§ã¯ãã¢ã¼ããã¯ãä¸å¨ãæããã½ã¼ã¹ã³ã¼ãã®ä¸åãªèãï¼ã¹ã¡ã«ï¼ã®ä¾ã«ã¤ãã¦ãããã¤ãæ¸ãã¦ã¿ããã¨æãã¾ãã
ééã£ãéå°ãªã³ã³ãã¼ãã³ãï¼ããã¸ã§ã¯ãï¼åå²
åå¿è
ã®ã½ããã¦ã§ã¢ã¢ã¼ããã¯ãã§ããæåã«èããã§ããããã¨ã¯ãä½ã¨ããã¦å
¨ä½ã®ã³ã¼ããåå²ããªãã¦ã¯ãªããªãã¨ãããã¨ã§ããããã¢ããªã·ãã¯ï¼ä¸æ岩ï¼ãªã¢ã¼ããã¯ãã£ããã¡ã¨ããèããããããããã¨ã«ãããã³ã¼ããããã¤ã®ã³ã³ãã¼ãã³ãã«åå²ããããªãã¾ããå
¨ä½ã®ã½ã¼ã¹ã³ã¼ããå¤ãã®ã³ã³ãã¼ãã³ãã«åå²ããã¦ããã°ãããã ãã§ããä»äºãããæ°åã«ãªã£ã¦ãã¾ãã¨ããã¨ãããããããããã¾ããã*1
ããããªãããã³ã³ãã¼ãã³ãã®åå²ã«ã¯ä¸å®ã®ã³ã¹ããä¼´ãã¨ãããã¨ãå¿ãã¦ãã¯ããã¾ãããåã«ãã§ãã¯ã¢ã¦ããã¦IDEã®ä¸ã§æ±ããªãã¦ã¯ãããªãããã¸ã§ã¯ããå¤ããã°ããã ãé¢åãå¢ãã¾ãããå
¨ä½çãªãã«ãæéãåå²ãå¢ããã«ãããã£ã¦æ¥éã«é·ããªãå¾åããããããCIã®å¹ççãªå®è¡ã«æ¯éãåºã¾ããXPçãªè¦ä»¶ãæºãããã£ã¨ãã·ã³ãã«ãªè¨è¨ãç®æãã®ã§ããã°ãã©ããã¦åå²ãå¿
è¦ãªã®ãã¨ããã¡ãªãããèæ
®ããããã§ãåå²ã¯å¿
è¦æä½éã«ããã¹ãã ã¨æãã¾ããé©åãªã³ã³ãã¼ãã³ãã®åå²ã¯ç°¡åããã§ãã¦ãå®ã¯é常ã«é£ããã¨ãããããã¨æãã¾ãããå®éãè¦ä»¶ã«åã£ãæé©ãªåå²ã¯ä½åãã®ã¤ãã¬ã¼ã·ã§ã³ãçµã¦ããããå°éã§ããã¨ãããã¨ãçããããã¾ãããä¸æ¹ããã¼ã ã«ã¢ã¼ããã¯ããä¸å¨ã ã¨ã以ä¸ã®ãããªå½¢å¼çãªåå²ã®åºæºããããããã«ã¼ã«ã¨ãã¦è¨å®ãã¦ãã¾ããçµæã¨ãã¦éçºçç£æ§ã大ããä¸ããã¨ãããã¨ã«ãªããã¡ã§ãã
- ç»é¢ãã¨ã«åå²ãã
- æ©è½ãã¨ã«åå²ãã
- ã¤ã³ã¿ã¼ãã§ã¼ã¹ãã¢ããã¼ã·ã§ã³ãã¯ã©ã¹ãè¨å®ã¨ãã£ãã½ã¼ã¹ã®ç¨®é¡ãã¨ã«åå²ãã*2
ããããå½¢å¼çãªåºæºã«å¾ã£ã¦åå²ããå ´åãä¸ã¤ã®éçºãã¼ã ã«å²ãå½ã¦ãããããã¸ã§ã¯ãã®æ°ãä½ç¾åã«ãªããã¨ããããã¾ããå®éåé¡ã¨ãã¦ãããã¸ã§ã¯ãã®æ°ä»¥ä¸ã«åé¡ãªã®ã¯ãããããå½¢å¼çãªåå²æ¹æ³ã«ãã£ã¦å¾ãããã®ã¯å¤ãã®å ´åãå¯çµåã§åéæ§ã®ä½ãã¢ã¼ããã¯ãã£ã§ããã¨ãããã¨ã§ããè¦ããã«ãä¸è¦ãããã«ã³ã³ãã¼ãã³ããåå²ããã¦ããããã«ã¿ããããå®éã¯é¢é£ããæ©è½ããã¡ãã¡ã«åæ£ããå®è³ªã¯ã¢ããªã·ãã¯ãªã·ã¹ãã ã¨å¤ãããªããçµå±ã¯ä½ãåå²ãããã¨ã«ãªã£ã¦ã¯ããªãã¨ããç¶æ ã§ããä¾ã¨ãã¦ãSpringã®beanå®ç¾©ãxmlã§è¨è¿°ãã¦ããã¨ãã¦*3ãxmlã®beanå®ç¾©ãã¡ã¤ã«ã¨å®éã®beanã®å®è£ ã¯ã©ã¹ãå¥ã ã®ããã¸ã§ã¯ãã«åå²ãã¦ç®¡çããã¨ããã«ã¼ã«ãèãã¦ã¿ã¦ãã ãããå½ç¶beanã®å®ç¾©ã¨å®éã®ã¯ã©ã¹ã¯å¯æ¥ã«ä¾åãåã£ã¦ããã®ã§ãé常ã¯åæã«æ´æ°ããå¿ è¦ãããã¾ãããå¥ã ã®ããã¸ã§ã¯ãã¨ãã¦ãã«ããããã¨ã§å¸¸ã«ä¸æ´åãçºçãããã¨ãé¿ãããã¾ãããããã°ã©ãã¼ã®æ°æã¡ãããã£ã¦ããã¢ã¼ããã¯ãã§ããã°ãæåãããããªã«ã¼ã«ã«ã¯ããªããããããã¢ããã¼ã·ã§ã³ã使ã£ããJavaã½ã¼ã¹ã使ã£ã¦beanã®è¨å®ã¨ã¯ã©ã¹å®ç¾©ãè¿ãã«é ç½®ããã¨ãããã¨ãèããã¨æãã¾ãããããã§ãªãã¨ãè¨å®ãã¡ã¤ã«ã¯å¥ã ã®ããã¸ã§ã¯ãã§ç®¡çãããã®ã¨ãã常èã§èãã¦ãã¾ãã¾ãã
ç§ã¨ãã¦ã¯eclipseããã¸ã§ã¯ãã®ãããªãã«ãã®åä½ã¨ãªãã³ã³ãã¼ãã³ãã®åå²ã¯æä½éã«ãããã¨ããå§ããã¾ãããã¡ãããåå²ããã¡ãªããã¨ãã¦ã
- å¥ã ã«ãã«ãã»ãããã¤ã§ããï¼SOAçã«ã³ã³ãã¼ãã³ããã¨ã«å¥ã ã®ãã¼ã ã§éç¨ããå ´åãªã©ï¼*4
- ä¾åé¢ä¿ãå¼·å¶ã§ããï¼ãã¼ã¿å±¤ãããã¬ã¼ã³å±¤ã®ã¯ã©ã¹ãééã£ã¦åç §ã§ããªããªã©ï¼
- ãã¥ã¼ãªã©é »ç¹ã«å¤æ´ãããé åã¨ãã¡ã¤ã³ãã¸ãã¯ãªã©å®å®ããé åãåãã
ã¨ãã£ããããªãã¨ãããã¾ãããæ¯è¼çå°è¦æ¨¡ãªããã¸ã§ã¯ãã§ããã°ã
- å ±éãã¬ã¼ã ã¯ã¼ã¯
- ãã¼ã¿å±¤
- ãã¬ã¼ã³å±¤
ãããã®åå²ããã¹ã¿ã¼ãããã®ã§ååãªã®ã§ã¯ãªããã¨æãã¾ããããããæåããéå°ã«åå²ãããæ§é ã§é²ãããããå®éä¸ã¯ã¯ããã«çç£æ§ãé«ãã¨æãã¾ãã
ãã¬ã¼ã ã¯ã¼ã¯ã«ãã£ã¦å¼·å¶ããããã©ã¬ã«ç¶æ¿
ããã¯ããã£ã¨ä»¥åã«侵略的なフレームワーク - 達人プログラマーを目指してã§æ¸ãããã¨ã®ç¹°ãè¿ãã«ãªãã¾ããããã¬ã¼ã ã¯ã¼ã¯ã®è¦ç´ã«ãã£ã¦ä¸ã¤ã®æ©è½ãã¨ã«æ§ã ãªã¯ã©ã¹ãè¨å®ãä½æããªãã¦ã¯ãªããªãã«ã¼ã«ã«ãªã£ã¦ããå ´åãããããã¾ãããã¨ãã°ã
- MusicTrackDao
- MusicTrackModel
- MusicTrackService
- MusicTrackView
- MusicTrackViewModel
- musicTrack.jsp
- JSPã®
ã¿ã° - åã ã®beanå®ç¾©
- åã ã®åä½ãã¹ãã¯ã©ã¹
ã¨ãã£ãããã«ãåãååã§å§ã¾ã大éã®ã½ã¼ã¹ãåå¨ãã¦ããã°ãパラレル継承ã®ã¹ã¡ã«ãçºãã¦ããã¨ãã£ã¦ééãããã¾ããã*5
ãªããé¢é£ãã¦ãã®ãããªã±ã¼ã¹ã§ã¯ãã¬ã¤ã¤ã¼ãã¨ã«å¤ã®å ¥ãç©ã¨ãã¦å¥ã ã®ã¯ã©ã¹ãå®ç¾©ãããã¨ãå¼·å¶ããã¦ããå ´åãå¤ãã®ã§ãããå®éã«å¤ãã®å ´å
musicTrackViewModel.setTitle(musicTrackModel.getTitle());
musicTrackViewModel.setTrackData(musicTrackModel.getTrackData());
...
ã®ããã«ãè¨è¿°ããã³ã¼ãã®å¤§åãåãªãå¤ã®è»¢è¨ã¨ãªããã¨ãããã¾ãã
ããããå®éã«ããã¸ã§ã¯ãã«ã¢ã¼ããã¯ããåå ãã¦ããã°ããããªãã³ã»ã³ã¹ãªè¨è¨ã«ã¼ã«ã«ã¯ããªãã¯ããªã®ã§ãããäºåã«ã¢ããªã±ã¼ã·ã§ã³éçºãã¼ã ã¨ã¯å¥ã®æ¨æºãã¬ã¼ã ã¯ã¼ã¯ãã¼ã ãã«ã¼ã«ã決ããå ´åãªã©ããã®ã¢ã³ããã¿ã¼ã³ã«ããåºä¼ãã¾ããã³ã³ãã¼ãã³ãåå²ã®å ´åã¨åæ§ã«ããããã®ã¯ã©ã¹ãä½æããããã¨ã§ãã¡ã³ããã³ã¹å¯è½ãªã¢ã¼ããã¯ãã£ãä½ã£ã¦ãããã ã¨ããæ°åã«ãªãã¨ãã人ãããããããã¾ããããå®éã®ã¨ããã¯ããããå¯çµåã»ä½åéãªã¢ã¼ããã¯ãã£ã®åå ã¨ãªããçç£æ§ã大ããä½ä¸ãããå
ã¨ãªãã¾ãã大éã®ç¡é§ãªã¯ã©ã¹ãä½æããªãã¦ã¯ãªããªãããã«ãåæã®éçºã«æéããããã¨ããç¹ã«å ãã¦ããããªãåé¡ã¯ã変更の分散ãã¨ãã£ãã³ã¼ãã¹ã¡ã«ã®åå ã¨ãªããã¨ã«ããã¾ãããã¤ã¾ããå¾ã
ã®ã¡ã³ããã³ã¹ã§ãã¡ãã¡ã®ãã¡ã¤ã«ãåæã«ç·¨éããªãã¦ã¯ãªããªãã¨ãããã¨ã§ãã
ãã¡ãããæ¬å½ã«ç¶æ¿ãé©åãªãã°ç¶æ¿ã使ãã°ããã®ã§ãããJUnitãSpringMVCã®æã®ãã¼ã¸ã§ã³ã¨ä»ã®ææ°ãã¼ã¸ã§ã³ãæ¯è¼ãã¦ã¿ãã¨ãããããã«ãæè¿ã®ãã¬ã¼ã ã¯ã¼ã¯ã§ã¯å
±éã®ãã¼ã¹ã¯ã©ã¹ãé¿ããå¾åãããã¨æãã¾ãã*6
å ±éã³ã¼ãã®ãã«ã¢ãããããã¦ããªã
ä½ããã®MVCã®ãã¬ã¼ã ã¯ã¼ã¯ã§ã¢ããªã±ã¼ã·ã§ã³ãä½ã£ã¦ããã¨ãã¦ã以ä¸ã®ãããªã³ã¼ãããã£ãã¨ãã¾ãããã£ãããä½ãåé¡ãªã®ã§ããããã
/** * å ±éãã¼ã¹ã³ã³ããã¼ã©ã¼ */ public abstract class AbstractController { protected abstract void execute(RequestContext context); ... } /** * è¿åããªã·ã¼ã®ãªã³ã¯ãæç»ããããã®ã³ã³ããã¼ã©ã¼ */ public class ReturnPolicyController extends AbstractController { public static final String RETURN_POLICY_MODEL_ID; @Inject private ModelRegistory modelRegistry; protected void execute(RequestContext context) { ReturnPolcyViewModel viewModel = modelRegistory.findModel(ReturnPolcyViewModel.class, RETURN_POLICY_MODEL_ID); if (viewModel == null) { throw new InvalidConfigrationException("No model found for " + RETURN_POLICY_MODEL_ID); } viewModel.setURL(URLConverter.convertURL(context, model.getURL())); ..... context.setViewModel(viewModel); } } /** * é³æ¥½ã®ãã©ãã¯æ å ±ãæç»ããããã®ã³ã³ããã¼ã©ã¼ */ public class MusicTracksController extends AbstractController { public static final String MUSIC_TRACKS_MODEL_ID; @Inject private ModelRegistory modelRegistry; @Inject private MusicTracksDataSource musicTracksDataSource; protected void execute(RequestContext context) { MusicTracksViewModel viewModel = modelRegistory.findModel(MusicTrakcsViewModel.class, MUSIC_TRACKS_MODEL_ID); if (viewModel == null) { throw new InvalidConfigrationException("No model found for " + MUSIC_TRACKS_MODEL_ID); } ..... context.setViewModel(viewModel); } } ...ä¼¼ããããªãµãã¯ã©ã¹ãä½ç¾ã¨åå¨
æ®éã®æè¦ã§ããã°ãåãµãã¯ã©ã¹ã®ã³ã¼ãã®é¡ä¼¼æ§ã«æ°ã¥ãã¨æãã¾ããå ±éã®ãã¸ãã¯ã親ã¯ã©ã¹ã«ç§»åï¼ãã«ã¢ããï¼ãããªã©ãã¦ãéè¤ãæ¸ããã¹ãã§ããããããããããã§ã¯ã¤ã¡ã¼ã¸ãªã®ã§å®éã®ãã¸ãã¯ãçç¥ãã¦ãã¾ãããå®éã«åç»é¢ãã¨ã®ãã¸ãã¯ãè¨è¿°ããã¦ããå ´åããã®é¡ä¼¼æ§ã«æ°ã¥ããã«å¤§éã®ä¼¼ããããªã¯ã©ã¹ãä½æãã¦ãã¾ããã¨ãããã¾ããããããã³ã¼ãã®é¡ä¼¼æ§ã¯å®éã«ããã¤ãã®ãµãã¯ã©ã¹ãä½æãã¦ã¿ãªãã¨æ°ã¥ããªããã¨ãå¤ãããã¬ã¼ã ã¯ã¼ã¯ãã¼ã ããä¸ãããããã¼ã¹ã¯ã©ã¹ã¯å¤ãã®å ´åéè¤ã³ã¼ãã®åæ¸ã®ããã«ãã¾ãå½¹ç«ã¡ã¾ãããã¢ã¼ããã¯ããéçºã«ãããã£ã¦ããã®ã§ããã°ãããããéè¤ãçºè¦ããé½åº¦ãªãã¡ã¯ã¿ãªã³ã°ã«ãã£ã¦åãé¤ãåªåããã¹ãã ã¨æãã¾ãã
æç¶ãåã®ã³ã¼ã
ããã¯ãã®ããã°ã§ãä½åº¦ãåãä¸ãã¦ãããã¨ã§ãããJavaãªã©ã®ãªãã¸ã§ã¯ãæåã®è¨èªã使ã£ã¦ããã«ãé¢ããããã»ã¨ãã©æ´»ç¨ã§ãã¦ããªãã¨ããã±ã¼ã¹ãçµæ§ããã¨æãã¾ããå®éããããã£ãããã¸ã§ã¯ãã§ä½æãããã³ã¼ããã¿ãã¨ã
- ãã¼ã¿ã¨getterãsetterã ãã®ã¯ã©ã¹
- ãã¹ã¦staticã¡ã½ãããããªãXXXUtilã¯ã©ã¹*7ããããã¯å·¨å¤§ãªãµã¼ãã¹ã¯ã©ã¹
- ããªã¢ã¼ãã£ãºã ï¼å¤æ æ§ï¼ã使ãã¦ããããEnumãåã«ãã£ã¦ä¼¼ããããªswitchæã®æ§é ãç¹°ãè¿ãç¾ãã
ã¨ãã£ããããªæç¶ãåã®è¨èªã§è¨è¨ããã®ã¨å¤§å·®ã®ãªãæ§é ã«ãªã£ã¦ãã¾ã£ã¦ãã¾ããããã¯ãè¦ä»¶ããã¼ã ã®ã¹ãã«ã«ãã£ã¦ã¯å¿ ãããã¢ã³ããã¿ã¼ã³ã¨ã¾ã§ã¯è¨ããªãããããã¾ãããããã¯ããããã°ã©ãã³ã°è¨èªã®ããã¹ãè¨è¨ã使ãããªããã¢ã¼ããã¯ãããã¼ã ã«åå¨ãã¦ããªãã®ãåå ã®ä¸ã¤ãªã®ã§ã¯ãªããã¨æãã¾ãã
ã¨ããã©ããã«æ£å¨ããå®é¨ã³ã¼ãã®çè·¡
ã³ã¼ãã®ã¢ã¼ããã¯ãã£ã®ã¹ã¡ã«ã¯ããªã«ãã¹ãã«ã®ä½ãããã°ã©ãã¼ã®ã¿ã§æ§æããããã¼ã ã§èµ·ããã¨ã¯éãã¾ãããé常ã«ã¢ããã¼ã·ã§ã³ããã£ã¦ãããæ°ã®ããããã°ã©ãã¼ã§ããã°ãèªç¶ãªãã¨ã¨ãã¦ãããããã¨èªåã®æ°ããã¢ã¤ãã¢ãã©ãã©ã試ããããªãã¾ããããã¯ãæè¡è
ã¨ãã¦ã¯ãã°ããããã¨ãªã®ã§ãããæ¥åã¢ããªã±ã¼ã·ã§ã³éçºã®ããã¸ã§ã¯ãã®é¡§å®¢ã®è¦ä»¶ãæçã§æºããã¨ããå¶ç´ãããæ¡ä»¶ã®ä¸ã§ã¯ãããç¨åº¦ç¯åº¦ããã£ã¦è¨ç»çã«ãããªãã¨åé¡ã¨ãªããã¨ãããã¾ããå®éããã¾ããããªãã£ãã¢ã¤ãã¢ãªã©ã¯æªç·´ãæ¨ã¦ã¦æ©æã«ã¯ãªã¼ã³ã¢ããããã¹ãã ã¨æãã¾ãããå®éä¸ã¯æéã®å¶ç´ãããããããã¯ããã°ã©ãã¼ãå
¥ãæ¿ãã£ãããããã¨ããã©ããã«éå»ã®éºç£ããããã³ã¼ãã¨ãã¦æ®ããããã¨ãããã¾ãããããã£ããããã³ã¼ããåå¨ãã¦ããã¨ãé害ã®è§£æãå°é£ã«ãªã£ãããå¾ã
æ©è½è¿½å ã大å¤ã«ãªã£ããã¡ã³ããã³ã¹ã®ä¸ã§è¦å´ãããã¨ã«ãªãã¾ãã
ãããã£ãåé¡ãé²ãããã«ã¯ããã¯ãã¢ã¼ããã¯ãçãªè¦ç¹ããã³ã¼ãã®ç¶æ
ãç£è¦ãã常ã«ä½åãªè¤éæ§ãåãæ®ãããªãããã«ããåªåãããã»ã¹ãå¿
è¦ã ã¨æãã¾ãã
æå¾ã«ãæè¿æ°ã¥ãããã¨ã
æå¾ã«ãæè¿ã«ãªã£ã¦æ°ã¥ããèªåã®ééãã«ã¤ãã¦æ¸ãã¦ãããªãã¦ã¯ãªãã¾ãããã以åã§ããã°ããããè¨è¨ä¸ã®åé¡ã¯æ¥æ¬ã®SIæ¥çã®æ§é ãåé¡ãªã®ã§ããã¨ãã話ããã¦ããããããã¾ãã(^_^;)ããããã§æ¸ãããããªè©±ã¯å¤å°ãã£ã¯ã·ã§ã³ãå ¥ã£ã¦ããã¨ã¯ãããå®éç§ãSIæ¥ç以å¤ã®ä»ã®ä¼ç¤¾ã§ä½é¨ãããã¨ã«åºã¥ãã¦ããã¨åç½ããªãã¦ã¯ãªãã¾ãããè¨èªã®ç¹æ§ãããJavaã§éçºãã¦ããã¨ããããã£ãè¨è¨ä¸ã®åé¡ãèµ·ããããã¨ãããã¨ãããå¯è½æ§ãããã¾ããããããã£ã話ã¯SIer以å¤ã§ããã©ãã®å½ã®éçºãã¼ã ã§ãããã®ã ãªã¨ãããã¨ã§ããã
ããããè¨è¨ã«é¥ãåå ã¨ãã¦èããããã®ã¯ãSIæ¥çã®æ§é ã¨ãããããããããã¢ã¼ããã¯ããã¢ããªã±ã¼ã·ã§ã³éçºãã¼ã ã¨ä¸ç·ã«ä»äºãã¦ããªãã¨ããåé¡ã«ããã®ã§ã¯ãªããã¨æãã¾ããããã¦ãå®éå¤ãã®å ´åãããã¬ã¼ã ã¯ã¼ã¯ãã¼ã ããå ±éãã¼ã ãã¨ããã®ãã¢ããªã±ã¼ã·ã§ã³éçºãã¼ã ã¨ã¯åãé¢ããã¦åå¨ãã¦ããããã¬ã¼ã ã¯ã¼ã¯ãéçºããã¸ã§ã¯ããéå§ããåã«ä½æãã¦æä¾ããã¨ãããããªã¢ãã«ã®å ´åã«èµ·ãããã¡ãªã®ã§ã¯ã¨æãã¾ããããã«ãé常ã«ãããããã¿ã¼ã³ã¨ãã¦ããããã¼ã¸ã§ã³ã®ãã¬ã¼ã ã¯ã¼ã¯ã使ã£ã¦ã¢ããªã±ã¼ã·ã§ã³ã®éçºãé²ãããã¦ããæç¹ã§ã¯ããã¬ã¼ã ã¯ã¼ã¯ã¯æ¢ã«ã¢ã¯ãã£ãã«éçºããã¦ãããããã¬ã¼ã ã¯ã¼ã¯ã®æ¹åã«èå³ããªãã¨ãããã¨ãããã¾ããæ¢ã«ãã¬ã¼ã ã¯ã¼ã¯ãã¼ã ã¯ã次ä¸ä»£ãã¬ã¼ã ã¯ã¼ã¯ãã®éçºã«ç®ã移ã£ã¦ãã¦ãå¤ããã¬ã¼ã ã¯ã¼ã¯ã¯ãã»ã©ã®ãã°ããªãéãæãä»ããªãã¨ãããããªã±ã¼ã¹ãå¤ãããããã¾ããã
èªåã¨ãã¦ã¯ããªãã¹ããªã¼ãã³ã½ã¼ã¹ã®ãã¬ã¼ã ã¯ã¼ã¯ãæ´»ç¨ãããªã©ãã¦ãèªç¤¾ãã¬ã¼ã ã¯ã¼ã¯ã®é¨åãæå°éã«ããã¢ã¼ããã¯ãã¯ã¢ããªã±ã¼ã·ã§ã³ã®ã¢ã¼ããã¯ãã£ã®æ¹åã«ãã£ã¨ç®ãåããã¹ããªã®ã§ã¯ãªããã¨æãã®ã§ããããã¾ãã¾ãªæ¿æ²»çããã¸ãã¹ççç±ãããããã§ããªãã®ãåé¡ã§ãªããã¨æãã¾ããã
*1:ãªããããã§ã¯ã³ã³ãã¼ãã³ãã¨ã¯Javaããã±ã¼ã¸ã®ãããªè«ççãªåå空éã®åå²ã§ã¯ãªãã¦ãeclipseãmavenã®ããã¸ã§ã¯ãã«ç¸å½ãããããªãã«ãã»ãããã¤ã®åå²åä½ã®ãã¨ãæããã®ã¨ãã¾ãã
*2:å ´åã«ãã£ã¦ã¯ã¤ã³ãã¼ãã§ã¼ã¹ãã¢ããã¼ã·ã§ã³ãåããã®ãæå¹ãªå ´åããã¡ããããã¾ãããããã«ã¯ã¡ããã¨ããçç±ãããã¾ãããªã¢ã¼ãã®ãµã¼ãã¹ã§ã¤ã³ã¿ã¼ãã§ã¼ã¹ã ããã¯ã©ã¤ã¢ã³ããã使ãã¨ããæã®Springããããã¦ããããã«ãJDK1.4ããµãã¼ãããããã«ãã¢ããã¼ã·ã§ã³ä¾åã®é¨åãåããã¨ãã£ããããªä¾ãããã¾ã
*3:ã¬ã¬ã·ã¼ã³ã¼ãã ã£ããã¨ãããããæ°ããããã¸ã§ã¯ãã§xmlã«åã ã®beanå®ç¾©ãæ¸ããããªè¦ç´ã ã£ãããããèªä½ããªãçåãªè¨è¨æ¹éãªã®ã§ãã
*4:ã³ã³ãã¼ãã³ãåå²ã®æ§é ã¨ãã¼ã ã®æ§é ãããããã¦ããã®ã¯åºæ¬çã«ãããã¨ã ã¨èãããã¾ãã
*5:ããã¦ãå¤ãã®å ´åä½æãã¹ãåã³ã¼ãã«ãã¼ã¹ã¨ãªã親ã¯ã©ã¹ãã¤ã³ã¿ã¼ãã§ã¼ã¹ãåå¨ãã¦ãããç¶æ¿ãã¦ä½æããã«ã¼ã«ã«ãªã£ã¦ããã®ã§ãããå®é親ã¯ãã¼ã«ã¼ã¨ããããå®éã«ãªããæ¬è³ªçãªå½¹å²ãæã£ã¦ããªãã¨ããå ´åãå¤ãã§ããããã¯è¦ªã¯ã©ã¹ãå®éã®å¿ è¦æ§ããä½ãããã®ã§ã¯ãªããæåããã«ã¼ã«ã¨ãã¦åå¨ãã¦ããã¨ããä½ããã®è¨¼æ ã¨ããã¾ãã
*6:ããããPlain Old Java Object=POJOã¨ãã¦ä½æå¯è½ãç¶æ¿ãªã©ã¯ã¢ããªã±ã¼ã·ã§ã³å´ã®è£éã§èªç±ã«ä½¿ããããã«ããã
*7:StringUtilsãCollectionsã®ãããªæ¨æºã®ã©ã¤ãã©ãªã¼ã«ãã¿ãããããã«ãã©ãã®ã¯ã©ã¹ã«ãå±ããªããã¸ãã¯ã®æ ¼ç´å ´æã¨ãã¦ãæä½éã®Utilã¯ã©ã¹ã¯ç¹ã«åé¡ã§ã¯ãªãã¨æãã¾ããããã§åé¡ã¨ãã¦ããã®ã¯ã大é¨åã®ãã¸ãã¹ãã¸ãã¯ãUtilã¯ã©ã¹ã§æ¸ããã¦ããã¨ãããããªã±ã¼ã¹ã§ããã