TDDãæç¢ºã«å®ç¾©ãã
ã§ããããªã®ã©ãã§ãããããæçµçã«ã¯çèªåã®TDDãæã¦ã°ããã®ã§ã¯ã¨æã£ã¦ãã
2012-08-30 12:27:33 via web
ããªããTDDã ã¨ããããã®ãTDDã§ãã ãã ããã«ãã®ã©ãããããããã¨ã¯ãããã¾ããã
ã¨ãããã¨ã§ãTDDãå®ç¾©ãã¾ãã
ã¯ããã«
TDDãå®ç¾©ããããã®åºç¤ãæããã«ãããªãã¡ã¬ã³ã¹ã¢ãã«ãæã«ããã
ããã¦ãä»ã®ä¾ãç´¹ä»ãã¦ã¿ã¾ãã
TDDã¨ã¯ä½ã§ããã
TDDã¨ã¯ã½ããã¦ã§ã¢éçºè
åããã¬ã¼ã ã¯ã¼ã¯ã§ãã
RED -> GREEN -> REFACTOR ã®ã¹ãã¤ã©ã«ã¢ãã«ãæ ¹å¹¹ã«ããã¾ãã
RED, GREEN, REFACTOR ã¯éçºè
ã®ã¢ã¯ãã£ããã£ã«ãªãã¾ãã
åã®çè§£ã§ã¯ããã»ã¹ã®é¨åéåããã¬ã¼ã ã¯ã¼ã¯ã§ãããããããã»ã¹ã¨å¼ã¶äºãã§ãããã©ãããã§ã¯ãã¬ã¼ã ã¯ã¼ã¯ã¨è¡¨ç¾ãã¾ãã
TDDã¯ãéçºè ã®æå³ã確èªãããã¨ããéçºè ãå¿å°ããã³ã¼ããæ¸ãå§ããäºããæ¯æ´ãããã¬ã¼ã ã¯ã¼ã¯ã§ãã
TDDã¯ãã¬ã¼ã ã¯ã¼ã¯ã§ãããããããã¾ã§ã½ããã¦ã§ã¢éçºã®æ¯æ´ãç®çã§ããããã以å¤ã¯å¯æ¬¡å¹æã§ãã
ç´æ¥çãªå¹æã¨ãã¦ãTDDãå°å
¥ããäºã«ãã£ã¦ãæ©è½æ§ããä¿å®æ§ããåä¸ããã¨ããäºä¾ã¯å°ãªãã¨ããéçºè
ã®æå³ãããå¿å°ããã³ã¼ããã¨ããã®ãããããã«å¯¾å¿ãã¦ãããã¨ãæå³ãã¦ãã¾ãã
TDD以å¤ã®ãã¬ã¼ã ã¯ã¼ã¯(Webãã¬ã¼ã ã¯ã¼ã¯ãããããã¬ã¼ã ã¯ã¼ã¯ãã¢ã¸ã£ã¤ã«çãªãã¬ã¼ã ã¯ã¼ã¯)ã«ããã¦ãè¨ããäºã§ããããã¬ã¼ã ã¯ã¼ã¯ã使ç¨ãã¦ãè¯ããªãäºãæªããªãäºãããã¾ãã
MVCçãªWebãã¬ã¼ã ã¯ã¼ã¯ã®ä¾ã§è¨ãã°ããControllerã«ãã¸ãã¯ãå¤éã«æ¸ãã¦ãã¦ãã³ã¼ããæ±ããªããã¡ã§ãã£ãããä¿å®æ§ãä½ããªã£ã¦ããããã¨ããç¶æ³ãããã¾ãã
Scrumã®ä¾ã§è¨ãã°ããããã¯ãã°ã«ã¯ãã¦ããããã¿ã¤ã ããã¯ã¹ãå®ã£ã¦ããªãããã å¿ãããªã£ãã ãã§ããããã¨ããç¶æ³ãããã¾ãã
ãã¬ã¼ã ã¯ã¼ã¯ã§è¡ããäºãèªç±ã§ããã°ããã»ã©ãååããé¢ããäºã容æã«ãªããã¡ã§ããç§©åºãä¿ã¡ã¤ã¤ãèªç±åº¦ãé«ãäºããã¬ã¼ã ã¯ã¼ã¯ã¨ãã¦åªç§ã§ããäºã®ç¹å¾´ã®1ã¤ã§ããã¨èãã¦ãã¾ãã
é£ããã®ã¯ãTDDã¯éçºè ã®ããã®ãã¬ã¼ã ã¯ã¼ã¯ã§ãããéçãª(ã³ã³ãã¥ã¼ã¿ã«ãã£ã¦å¶å¾¡ãã)ãã¬ã¼ã ã¯ã¼ã¯ã§ã¯ãªãã¨ãããã¨ã§ããã¤ã¾ããããã°ã©ãã³ã°è¨èªã§èª²ããããããªãã®ã¨éã£ã¦ç§©åºãä¿ã¡ã«ããç¹ãããããã¾ãã
èªç±åº¦ãä¸ãã¦ç§©åºãä¿ã£ããã¬ã¼ã ã¯ã¼ã¯ãå®è£
ããäºã¯æ¯è¼ç容æã§ãããããã使ãããªãã®ã¯ãå¾ã
ã«ãã¦é£ãããªããã¡ã§ãã
TDDã®åºç¤
TDDãæ¯ãããã®ã¨ãã¦æ¬¡ã®è¦ç´ ãããã¾ãã
客観çã§é »ç¹ã«ã宿½ã§ããæ¤æ»ç¾¤ã確èªãæãæ¤æ»çµæç¾¤ãRED,GREEN,REFACTORã®ã©ã¤ããµã¤ã¯ã«ã
ãããã«ãã£ã¦ããéçºè
ã®æå³ã確èªãããã¨ããéçºè
ãå¿å°ããã³ã¼ããæ¸ãå§ããäºãã¨ããç®çãéæãã¾ãã
客観çã§é »ç¹ã«ã宿½ã§ããæ¤æ»ç¾¤ã¯ãç¾å®çã«ã¯èªåãã¹ãã¨ãã¦å®ç¾ããããã¨ãå¤ãã®ã§ãããããã¯ãã¾ãã«ãå¿ç¨ä¾ãããã®ã§ããã¾ãæ·±ãã¯ã¤ã£ãã¿ã¾ããã
客観çã¨ããã®ã¯ã誰ã確èªãã¦ãåä¸ããé »ç¹ã«ã¨ããã®ã¯ã1å卿ãããã§ããããã®æå³ã§ãã
確èªãæãæ¤æ»çµæç¾¤ã¯ãæ¤æ»ç¾¤ã®ã©ãããããæåãã失æãã¦ããããå®è¡ã«ã©ããããã®æéãããã£ããã5ç§ãããã§èªã¿åãããã¨ãæãã¦ãã¾ãã
RED, GREEN, REFACTOR ã®åã¢ã¯ãã£ããã£ã®å®ç¾©ã¯æ¬¡ã®éãã
RED : éçºè
ã®æå³ãå®ç¾ããã¦ããªããã¨ãæç¢ºã«ãã
GREEN : éçºè
ã®æå³ãå®ç¾ããã¦ãããã¨ãæç¢ºã«ãã
REFACTOR : GREENãç¶æããªããå¿å°ããã³ã¼ããæ¸ãç¶ããããããã«ãã
ä»ã«ãã¹ããã¡ã¼ã¹ããèªååããããã¹ãããªãããªãªãã¡ã¯ã¿ãªã³ã°ç°å¢ãã¨ãã£ããã®ãåºç¤è¦ç´ ã¨ãã¦è¿½å ããTDDãåå¨ãã¾ãã
Kent Beckã®TDD By Exampleã§ã¯ãèªååããããã¹ããã«ããæ¤æ»ãTDDã®åºç¤ã¨ãã¦ããããã¦ãã¾ããããªãã¡ã¯ã¿ãªã³ã°ã«ã¤ãã¦ã¯Smalltalkã«ãã®èµ·æºãããã®ã¼ãäºã«ãªãã¾ãã
ãã ãããã§å®ç¾©ããTDDã«ã¯ãããã¯åºç¤ã¨ãã¦ã¯å«ã¿ã¾ãããä¾ãã°TDD By Exampleã§åºã¦ããTDDã®å®ç¾©ã¯KentBeckã«ããTDDã®åºç¤è«ã§ãã
TDDã®ãªãã¡ã¬ã³ã¹ã¢ãã«
Kent Beckã®TDD By Example ã«ããä¾ããã¯ããªãã¡ã¬ã³ã¹ã¢ãã«ã ã¨èãã¦ãã¾ãã
åç
§ãã«ããæ
å ±ã§ç³ã訳ããã¾ãããã@t_wadaããã®TDDè¬æ¼åç»ããã¯ãè¯ãã¨æãã¾ãã
ãRED, GREEN, REFACTORã¨ããã¢ã¯ãã£ããã£ãã¨ãã³ã¼ãã®ç¶æ
ãã対å¿ã¥ããé»éã®å転ã¯çè§£ããããã§ããã
(ãããä¸çªããã®ãããããªãããã©ãããããã¡ãã£ã¨è¦å½ãããªãã£ã)
注æãã¦ã»ããã®ã¯ãä¸è¨ã®TDDã®åºç¤ãå®è£
ãã¦ãããªãã¡ã¬ã³ã¹ã¢ãã«ã§ãã£ã¦ãã½ããã¦ã§ã¢ãã¹ããè¨è¨ãªã©ã«ã¤ãã¦ã¯ã坿¬¡çã§ãã£ãããã¾ãããå°ãªãã¨ãåã¯ã½ããã¦ã§ã¢ãã¹ãã¨ããç¹ã«ããã¦ã¯åæåºæ¥ãªãç¹ãããã¾ãã
ããã¾ã§ãTDDã¨ãããã¬ã¼ã ã¯ã¼ã¯ã¨ãã¦ã®ãªãã¡ã¬ã³ã¹ã¢ãã«ã§ãã

- ä½è : ã±ã³ãããã¯,Kent Beck,é·ç¬åç§,ãã¯ããã¸ãã¯ã¢ã¼ã
- åºç社/ã¡ã¼ã«ã¼: ãã¢ã½ã³ã¨ãã¥ã±ã¼ã·ã§ã³
- çºå£²æ¥: 2003/09
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 45人 ã¯ãªãã¯: 1,058å
- ãã®ååãå«ãããã° (161ä»¶) ãè¦ã
TDDã®ä»ã®å®è£ ä¾
æ¥æ¬äººã«ã¨ã£ã¦ãã¢ã¯ã»ã¹ããããåããæãä¾ã¨ãã¦ã¯ãã¯ãUncle Bob(Robert C Martin)ã«ããTDDã§ãã
å½¼ã®TDDã¯ãä½ã夿´ãå ãããªãå¿
ããã¹ããã¡ã¼ã¹ããã¹ãã§ãããã¨å¼·ã主張ãããã®ã§ããããç¨åº¦TDDã«ææ¦ãã人ã«ã¨ã£ã¦ã¯é£ããã¨æããã¨æãã¾ãããå½¼ã¯ãè¾ãã¨ãã«ã¯ã°ãªã¼ã³ãã³ããè¦ã¦ããã§ãããã¨æãåºããããã§ããã¹ãã¤ãã¯ã§ããã
ããã¯ãèªç±åº¦ãä¸ããäºã§ç§©åºãããããããã¨ã®è¯ãä¾ã ã¨æãã¾ãã
詳細ãç¥ãããæ¹ã¯CleanCode, CleanCoderã¨ãã£ãæ¸ç±ãè²·ã£ã¦ã¿ãã¨ããã¨æãã¾ãã

Clean Code ã¢ã¸ã£ã¤ã«ã½ããã¦ã§ã¢éäººã®æ
- ä½è : Robert C. Martin,è±äºå¿ç
- åºç社/ã¡ã¼ã«ã¼: ã¢ã¹ãã¼ã»ã¡ãã£ã¢ã¯ã¼ã¯ã¹
- çºå£²æ¥: 2009/05/28
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 27人 ã¯ãªãã¯: 914å
- ãã®ååãå«ãããã° (80ä»¶) ãè¦ã

Clean Coder ãããã§ãã·ã§ãã«ããã°ã©ãã¸ã®é
- ä½è : Robert C. Martin,è§å¾å ¸
- åºç社/ã¡ã¼ã«ã¼: ã¢ã¹ãã¼ã»ã¡ãã£ã¢ã¯ã¼ã¯ã¹
- çºå£²æ¥: 2012/01/27
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 12人 ã¯ãªãã¯: 645å
- ãã®ååãå«ãããã° (36ä»¶) ãè¦ã
ä»ã«ã #TDDAdventJP ã¨ãã¦2011å¬ã«ãªã¬ã¼é£è¼ãããTDDã®ããã°éã¯ãã®å®è£
ä¾ã示ãã¦ãã¾ãã
ãprintã§ã確èªã§ãã¦ããããTDDãã¨ããæ¹ãããã£ãããã°ããã«ãã¬ãã¸ãå°å
¥ãããã¨ããæ¹ãããã£ãããã¾ãã
TDD Advent Calendar jp: 2011 | Gihyo Digital Publishing
TDDä»ã«ã¤ãã¦æ°ã«ãªã£ã¦ããæ¹ã¯æ¬¡ã®ãªã³ã¯ã«ã¢ã¯ã»ã¹ãã¦ããããè¦ã¦ã¿ãã¨ããã§ãããã
ãdevtesting.jpãhttp://devtesting.jp/
å¿ç¨ãå¤åã«å«ãã§ãã¾ãããä¸ççåèã§ããGOOSã®å訳ã§ãããå®è·µãã¹ãé§åéçºã
GOOSã¯åèãèªãã§ããã®ã§æ¸è©ããã°ããã®ãã¡æ¸ãã¾ãã

- ä½è : Steve Freeman,Nat Pryce,åæºå³æ¡,髿¨æ£å¼
- åºç社/ã¡ã¼ã«ã¼: ç¿æ³³ç¤¾
- çºå£²æ¥: 2012/09/14
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 4人 ã¯ãªãã¯: 262å
- ãã®ååãå«ãããã° (30ä»¶) ãè¦ã
ã¾ã¨ã
TDDã¯ãã¬ã¼ã ã¯ã¼ã¯ãªã®ã§ãã²ã©ãTDDããããã¨ããè¯ãTDDããããã¨ãã§ããã
è¯ãTDDãããããã®å¶ç´ãå¢ããäºãã§ãããããªã¹ã¯ãããã
Webãã¬ã¼ã ã¯ã¼ã¯ã®å°å
¥ã¨åæ§ã«ãå°å
¥ããã«ã¯å¤å°ã®ã³ã¹ããããã修練ãå¿
è¦ã§ããããã¡ãªããã大ãããã¨ããå人ã§å°å
¥ãããã¨ãå¯è½ã§ãããã¨ããå¤ãã®æåä½é¨ãèªãããå¾åãããé åã§ããã
誰ããTDDã®ããé¨åãéé£ãã¦ããã¨ãã¯ãRailsã®ãããããã¦ããªãããããã«èããã®ãããã¦ãã§ãSpringãªããã解決ãããã£ã¦è¨ããWebãã¬ã¼ã ã¯ã¼ã¯ã§ã¯è¨ããã®ã«TDDã§ãããåºæ¥ãªãã®ã¯æé·ã妨ãã¦ããªãã ãããã
ãã¹ãã£ã³ã°ãã¬ã¼ã ã¯ã¼ã¯ã¯TDDã¨ãããã¬ã¼ã ã¯ã¼ã¯ä¸ã§å©ç¨ããã©ã¤ãã©ãªã§ãããªã®ã§ãèªåã§å®ç¾©ããTDDãã¬ã¼ã ã¯ã¼ã¯ã¨ç¸æ§ã®è¯ããã¹ãã£ã³ã°ãã¬ã¼ã ã¯ã¼ã¯ã鏿ãããã¨ãéè¦ã§ããããã¯TDDã®å¿ç¨ã§ããã
èè¶³
æã«TDDã«ã¤ãã¦èªã£ã¦ã¯ããªãã®ã§ãããå人çã«ã¯ãã¢ã¸ã£ã¤ã«ã½ããã¦ã§ã¢éçºã®å¥¥ç¾©ãã«ã§ã¦ãããã¢ããã®é¢¨æ¯ãç¶´ã£ãé¨åã好ãã§ãã

- ä½è : ããã¼ãã»Cã»ãã¼ãã³,ç¬è°·åä»
- åºç社/ã¡ã¼ã«ã¼: ã½ãããã³ã¯ã¯ãªã¨ã¤ãã£ã
- çºå£²æ¥: 2008/07/01
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 18人 ã¯ãªãã¯: 586å
- ãã®ååãå«ãããã° (71ä»¶) ãè¦ã