DDDã®èªæ¸è¨é²ï¼ç¬¬1é¨åºç« ããã¡ã¤ã³ã¢ãã«ãæ©è½ãããï¼
å
æ¥éå¬ãããQCon Tokyoã«ã¦ãç¿æ³³ç¤¾ããã®ãã¼ã¹ã§ã¨ãªãã¯ã»ã¨ã´ã¡ã³ã¹ã®ãã¡ã¤ã³é§åè¨è¨ (IT ArchitectsâArchive ã½ããã¦ã§ã¢éçºã®å®è·µ)ãTã·ã£ãä»ãã§è³¼å
¥ãã¾ãããããã¦ãTwitterã«ã¦ç¿æ³³ç¤¾ã®å²©åããã¨
ããã§ãåèè ã®ã¨ã´ã¡ã³ã¹ããã¨ç¿»è¨³è ã®ä¸äººã§ããåæºããã®ãµã¤ã³ãããã ããã¨ãã§ãã¾ãããæ¬å½ã«ææ¿ã§ãããããã¨ããããã¾ãããï¼ãæå¬ã§åæºããã®ãµã¤ã³æ¥ã11æ¥ã«ãªã£ã¦ãã¾ãããå®éã¯12æ¥ã§ããï¼
ã¨ãããã¨ã§ããã¨ãã¨å¤§å¥½ããªDDDã®æ¬ã ã£ãã®ã§ããããµã¤ã³å ¥ãã¨ãããã¨ã§ã¾ãã¾ãçå£ã«èªæ¸ã«åãçµã¿ããã¨ããæ°ããã¦ãã¾ãããä»å¾æ¥æ¬èªçãç¨ããåå¼·ä¼ãè¨ç»ããã¦ããã¿ããã§ãããã¨ãããããç« ãã¨ã«èªæ¸è¨é²ãã¤ãã¦ããããã¨æãã¾ãã*1
第1é¨ãã¡ã¤ã³ã¢ãã«ãæ©è½ããã
ã¾ãã¯ã第1é¨æåã®ãã¼ã¸ï¼P2ï¼ã®é¨åã«18ä¸ç´ã®ãã®ã¨ãããä¸å½ã®å°å³ã®åçãæ²è¼ããã¦ãã¾ãã18ä¸ç´ã¨è¨ãã°æ¸
æã®æ代ã§ãããæ¥æ¬ã§ã¯ä¼è½å¿ æ¬ã®å®æ¸¬ã«ããå°å³ãæ¢ã«ä½ããã¦ããæ代ã§ããã測éè¡ã¯æ¢ã«å
¥ã£ã¦ãã¦ããã¨æãã¾ãããããããªä¸æ£ç¢ºãªå³ãæãããã®ã ãããã¨ããã®ãæåã®å°è±¡ã§ãããããããããã£ã¨æ£ç¢ºãªå°å³ããã£ãããã©ãæ°è¡ã®éã«ã¯æ®åãã¦ããªãã£ãã¨ãããã¨ãããã®ããããã¾ããã
ããã§ããã®çµµã第1é¨ã®æåã«ä½¿ããã¦ããçç±ã¯ãå½æã®ä¸å½ã®æ¸¬éè¡ã®ãªããdisã£ã¦ããã®ãã¨æåæãã¾ããããè¯ãèªãã§ã¿ãã¨ããããããã¨ãè¨ãããã®ã§ã¯ãªããã¢ãã«ã¯ç®çã«ãã£ã¦ãããããªæ£è§£ãããã¨ãããã¨ãªã®ããªã¨ç解ãã¦ãã¾ãã
ãã®18ä¸ç´ã®ä¸å½ã®å°å³ã¯ãä¸çå ¨ä½ã表ãã¦ãããä¸å¤®ã«é ç½®ãããã¹ãã¼ã¹ã®å¤§åãå ãã¦ããã®ãä¸å½ã§ããã®å¨ããå²ãã§ããã®ãããããªãã«è¡¨ç¾ãããä»ã®å½ã ã§ãããä¸çã«ã¤ãã¦ã®ãã®ã¢ãã«ã¯ãå½å ã«æèãåãã¦ããå½æã®ä¸å½ç¤¾ä¼ã«ãµãããããã®ã ã£ãããã®å°å³ã示ãä¸ç観ã¯ãå¤å½äººã«å¯¾å¿ããã«ã¯å½¹ã«ç«ããªãã£ãã«éããªãããã¡ãããç¾ä»£ã®ä¸å½ã«ã¯å ¨ãç¡æå³ã ãããå°å³ã¯ã¢ãã«ã§ãããããã¦ã©ããªã¢ãã«ããç¾å®ã®ä½ããã®å´é¢ãèå³ã®å¯¾è±¡ã¨ãªãæ¦å¿µã表ãã¦ãããã¢ãã«ã¨ã¯ç°¡ç´ åã§ãããã¤ã¾ããå½é¢ã®åé¡ã解決ããä¸ã§é¢é£ããå´é¢ãæ½è±¡åãããã以å¤ã®è©³ç´°ãç¡è¦ãããã¨ã«ãã£ã¦è¡ããããç¾å®ã«å¯¾ãã1ã¤ã®è§£éãªã®ã ã
ã¨ã´ã¡ã³ã¹æ°ã¯ããã¡ã¤ã³ã¢ãã«ã¨ã¯ç¾å®ãã§ããã ããåå®çã«ãã«æ£ç¢ºã«è¡¨ç¾ãããã¨ã§ã¯ãªããå¿
è¦ãªç¥èãå³å¯ã«æ§æãããé¸ã³æããã¦æ½è±¡åããããã®ã¨èª¬æãã¦ãã¾ããã ããããã¨ãã°ãããéèååã®ç¥èãã§ããã ãå³å¯ã«è¡¨ç¾ããã®ãæ£ããã¢ãã«ãªã®ã§ã¯ãªããã¢ããªã±ã¼ã·ã§ã³ãå®ç¾ããä¸ã§æ¬å½ã«å¿
è¦ãªé¨åã®ã¿ãå³é¸ãã¦æãåºãããã®ãæç¨ãªã¢ãã«ãªã®ã ã¨ãã¦ãã¾ããã ãããå½ç¶åãæ¥åãã¡ã¤ã³ã§ããç®çã«ãã£ã¦ç°ãªãè¤æ°ã®ã¢ãã«ãåå¨ãå¾ãããã§ãããä¸ã¤ã®ç©¶æ¥µã®ã¢ãã«ãåå¨ããããã§ã¯ãªãã¨ãããã¨ã§ããã*2
ãªãã¸ã§ã¯ãæåã¯ãã¨ãã¨ç¾å®ä¸çã®ã·ãã¥ã¬ã¼ã·ã§ã³ããå
¥ã£ãã¨ããããã¨ããã£ã¦ãç¾å®ä¸çã®æ£ç¢ºãªæåãç®çã§ããã¨èãã¦ãã¾ã£ããã究極ã®ã¢ãã«ã¯ä¸ã¤ã§ããã¨èãã¦ãã¾ããã¡ã§ãããå°ãªãã¨ãDDDã®ææ³ã§ã¯ããã¯ééãã¨ãããã¨ã§ãããããã¯ãã®æ¬ãç解ããä¸ã§å¤§å¤éè¦ãªãã¤ã³ãã«ãªãã¨æãã¾ãã
ãã¡ã¤ã³é§åè¨è¨ã«ãããã¢ãã«ã®æç¨æ§ï¼P3ï¼
ãã¡ã¤ã³é§åè¨è¨ã§ã¯ä»¥ä¸ã®ï¼ã¤ã®åºæ¬çç¨æ³ã«ãã£ã¦ãã©ã®ã¢ãã«ãé¸æããã®ãã決å®ãããã¨ãã¦ãã¾ãã
ã¢ãã«ã¨è¨è¨ã®æ ¸å¿ãç¸äºã«å½¢æãåã
ãã®é
ç®ã®ã¿ã¤ãã«ã¯åæ¸ã§ã¯ãThe model and the heart of the design shape each otherããªã®ã§ããããã®é
ç®å
ã®èª¬æã§ã¢ãã«ã¨å®è£
ãå¯æ¥ã«çµã³ã¤ããã¨ã大åã¨èª¬æãã¦ãã¾ããã¨ãããã¨ã¯ã
the heart of the design = å®è£
ã³ã¼ã
ã®é¢ä¿ãæ示ãã¦ãããã¨ã«ãªãã¾ãããå®éãheart of the designã®åã«å®å è©ã®theãã¤ãã¦ãããã¨ãããè¨è¨ã®æ ¸å¿ã¨ãªãç¹å®ã®å¯¾è±¡ãåå¨ãã¦ãããã¨ã表ãã¦ãã¾ããããããã¯å®è£
ã¨ãããã¨ã容æã«é¡æ¨ã§ãã¾ããæ¥æ¬èªè¨³ã ã¨ã¡ãã£ã¨è¦è½ã¨ããã¡ã§ãããããã¯ãç§ã以åã«プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指してã§æ¸ãããã¨ã¨ã¤ãªãã£ã¦ããã®ããªã¨æãã¾ãããçµå±ãã¢ãã«ã¯ã³ã¼ããåç´åãããã®ã§ãã£ã¦ã»ããããéã«ã³ã¼ããèªãã ã ãã§ã¢ãã«ãé ã«æãæµ®ãã¶ãããªãã®ãçæ³çãªã®ã ã¨æãã¾ããéã«ãä¸æµã®äººãUMLã§ããããªã¢ãã«ãä½æããããã©ãPGã®ä½æããã³ã¼ãã¯ã¹ãã²ãã£ã¼ã ã£ããªã©ã¨ãããã¨ããã£ã¦ã¯ãããªããããããªã¢ãã«ã¯åå¨ä¾¡å¤ããªãã¨ãããã¨ã§ããï¼ç¬¬3ç« ã§ã¢ãã«ã¨å®è£
ã®çµã³ã¤ãã«ã¤ãã¦ã¯èª¬æããã¦ããï¼
ã¢ãã«ã¯ããã¼ã ã¡ã³ãå ¨å¡ã使ç¨ããè¨èªã®åºç¤ã§ããã
ããã¯ç¬¬2ç« ã®ã¦ããã¿ã¹è¨èªã«ã¤ãªãã£ã¦ããèãæ¹ã§ãããã°ã©ãã¼ã¨ãã¡ã¤ã³ã¨ãã¹ãã¼ããå ±éã®è¨èªã§ä¼è©±ã§ããããã«ãªãã¨ãããã¨ã§ãããããã¯æ¥æ¬äººã ã¨éã«è±èªãå ¥ã£ã¦ãããã¨ãæ®éï¼ä¸»è¦ãªããã°ã©ãã³ã°è¨èªãè±èªã使ã£ãæã«æãèªç¶ãªããã多くの日本人がオブジェクト指向プログラミングを苦手とするのは英語アレルギーだからか? - 達人プログラマーを目指してï¼ã§ãé常è±èªã¨æ¥æ¬èªã¨ã®éã§ã¯åç´ãªä¸å¯¾ä¸ã®ãããã³ã°ã§ããªããã¨ãå¤ããããå®éããªããã³ãã£ãã£ãããããã¨å人çã«ã¯æããã¨ããã§ãã
ã¢ãã«ã¨ã¯ãè¸çãããç¥èã§ãã
ããã¯å°å³ã®è©±ã«ãé¢ä¿ãã¦ããã¨æãã¾ãããå¿ è¦ãªã¨ãã»ã³ã¹ãè¸çãããã®ãã¢ãã«ã§ããã¨ããèãæ¹ã§ããï¼ç¬¬1é¨ã®ç¯å²ã§ã¯ç¬¬1ç« ã®ãã¼ãï¼
ã½ããã¦ã§ã¢ã®æ ¸å¿ï¼P4ï¼
ãã®ã»ã¯ã·ã§ã³ã§ãDDDãç解ããä¸ã§é常ã«éè¦ãªãã¨ãæ¸ããã¦ãã¾ãããã¤ã¾ãã
ã½ããã¦ã§ã¢ã®æ ¸å¿ï¼The heart of softwareï¼ã¯ãã¡ã¤ã³ã«é¢ä¿ããåé¡ãã¦ã¼ã¶ã®çºã«è§£æ±ºããè½åã§ããã
ã¨æ¸ããã¦ãã¾ããã ãããã¦ã¼ã¶ã¼ã¤ã³ã¿ãã§ã¼ã¹ããã¼ã«ããã¬ã¼ã ã¯ã¼ã¯ãªã©ã®ç´ç²ã«æè¡çãªåé¡ã¯ãã¡ããéè¦ã ããã©ããæçµçã«éèãæµéãªã©ã®æ¥åãã¡ã¤ã³ã®åé¡ã解決ããã¨ããã¨ãããããå¿èé¨ãªã®ã ã¨ãããã¨ã§ããæ¥æ¬ã®SIæ¥çã ã¨ç¹ã«PGã®å価ãæä½ã«æ¼ããããã¦ããããä¸æµã¨ä¸æµã§æ å½è ãæ確ã«åé¢ããã¦ããã¨ãããã¨ãããã¾ãããä¸è¬çã«åªç§ãªããã°ã©ãã¼ãåå¥ã®æ¥åãã¸ãã¯ãä½ããªã©ã¨ãããã¨ã¯å°åºèãããã¾ãããä»®ã«ãåªç§ãªæè¡è ã確ä¿ã§ããã¨ãã¦ããåºç¤ãã¬ã¼ã ã¯ã¼ã¯ã®ãã¼ã ãªã©æ±ç¨çãªé¨åã®ä½æãªã©ã«ã¾ãããã¦ãã¾ããã¨ãæ®éã§ããå®éãSEã®ç¥æ§ã¨å´ãããã¦ãããããªäººããã
ï¼æ³¨æãããã¯DDDããã®å¼ç¨ã§ã¯ããã¾ãããï¼
ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ãæ¸ãITæè¡è ï¼ä¿ã«è¨ãããã°ã©ãï¼ã¯çè ã®å®ç¾©ã§ã¯SEã§ã¯ãªããããã¯ï¼ä¸è¬ã®ããã°ã©ã ä½ãã¯ä»å 価å¤ã®ããä»äºã¨ã¯è¨ãé£ãããã ã
ãªã©ã¨è¨ãã*3ããã¾ã ã«å¤ãã®äººãããããããã®ã ã¨ä¿¡ãããã¦ããã¨ããã¨ãããããã¾ããï¼上流の壁? - 達人プログラマーを目指してï¼
ã¾ããæ¥æ¬ã ãã§ãªããããã°ã©ãã¼ã®å°ä½ãé«ãã¨ãããå¤å½ã§ããå¤ãã®å ´åãéèãªã©ã®æ¥åç¥èã®ã¢ããªã³ã°ã¹ãã«ã伸ã°ããã¨ããããææ°ã®è¨èªããã¼ã«ã®æ¹ã«èå³ã®å¯¾è±¡ãåãã¦ãã¾ãã¨ããå¾åã¯ãã¡ããããã¾ããæ ç»ã®æ®å½±ã®ã«ããã§ã³ã¼ãã®è¢ãä¸ç¬åãè¾¼ãã ãã¨ã«ãã£ã¦ãå°éã®æ åç·¨éè
ã«ãã£ã¦é¢ç½ãã·ã¼ã³ãã«ããããã¦ãã¾ã£ãã¨ãã話ããã¨ã話ã¨ãã¦åºã¦ãã¾ãããã½ããã¦ã§ã¢ããã¸ã§ã¯ãã§ã¯å°éæ§ãè¡ãéããã¨å¼å®³ã«ãªãã¨ãããã¨ãçè
ã¯æè¨ã¨ãã¦åºãã¦ãã¾ãã
æ¬æ¸ã§ã¯ããã¡ã¤ã³ã®éçºã«ã¯é常ã«é«åº¦ãªè¨è¨ã¹ãã«ãé¤ãæ©ä¼ãããµãã¦ãããã¨ã示ãã¦ãããã»ã¨ãã©ã®ã½ããã¦ã§ã¢ãã¡ã¤ã³ã«ããããã®æ··æ²ã¨ããç¶æ³ã¯ãå®ã¯ãèå³æ·±ãæè¡çãªèª²é¡ãªã®ã§ãããå®éå¤ãã®ç§å¦åéã§ã¯ããè¤éæ§ããæãåºæ¿çãªææ°ãã¼ãã®ï¼ã¤ã§ãããç 究è ãã¡ã¯ç¾å®ä¸çã®æ··æ²ã«åãçµããã¨ãã¦ãããã½ããã¦ã§ã¢éçºè ããã¾ã å½¢å¼åããããã¨ã®ãªãå ¥ãçµãã ãã¡ã¤ã³ã«ç´é¢ããéã«ã¯ãåãç«å ´ã«ç«ã¤ãã¨ã«ãªãããã®è¤éããä¸å両æããæå¿«ãªã¢ãã«ä½ãåºãã®ã¯ãåºæ¿çãªä½æ¥ã ã
ã¤ã¾ããåã«æ°ããæè¡ã使ãã¨ãããã¨ã ãã§ãªããè¤éãªæ¥åä¸ã®åé¡ãè³¢ã解決ããããã®æ¹æ³ãèãã¤ãã¨ããã®ãæ¥åããã°ã©ãã¼ãæãè½åãçºæ®ãã¹ãé åã ã¨ãã¦ãã¾ãããã¡ãããWebç³»ãã²ã¼ã ããã¼ã«ä½æãªã©ãåºãæå³ã§ãã¡ã¤ã³ã®ä¸ã¤ã ããããããé åã®ããã°ã©ãã¼ãDDDã®å¯¾è±¡ã¨ãã¦å«ã¾ãã¾ãããã ãããã以å¤ã®æ¥çã§ãã£ã¦ããæ¥çæ§é ãæµ·å¤ã®ãããªããã¹ã姿ã«ãªãã¡ã¯ã¿ãªã³ã°ãããã°ãæ¬æ¥ã¯ããã°ã©ãã¼ãé常ã«é¢ç½ããåµé æ§è±ãã§é«ä»å 価å¤ã®ä»äºãã§ããå¯è½æ§ãããã¨ãããã¨ã ã¨æãã¾ãã
*1:DDDã®èªæ¸ä¼ã®è¨é²ãåèãªãã¾ããDDD - Java EE勉強会
*2:MVCãã¿ã¼ã³ãªã©ã§ããã¢ãã«ã¨ã¯è¤æ°ã®ãã¥ã¼ã«å¯¾ãã¦ä¸ã¤ã®ã¢ãã«ããããã¨ã示ãã¦ããããã§ããããã¡ã¤ã³ã¢ãã«ã¨ã¯ç¾å®ä¸çããç®çã«å¿ãã¦å¿ è¦ãªé¨åãæ½åºãããã¥ã¼ã®ä¸ã¤ã¨ãããã¨ãã§ããããããã¾ããã
*3:http://itpro.nikkeibp.co.jp/article/Watcher/20060829/246743/