ãªã¢ã«ã¿ã¤ã ã«TDDãã
ãã®è¨äºã¯ã½ããã¦ã§ã¢ãã¹ãã®å°ãã¿ Advent Calendar 2020ã®23æ¥ç®ã®è¨äºã«ãªãã¾ãã ä»ã®æ¹ãè²ã è¨äºãä¸ãã¦ããã®ã§æ¯éè¦ã¦ã¿ã¦ãã ããã
ä»åã®ãã®è¨äºã¯å¤§ååã«æè¡çãªæ¤è¨¼ã¯ãã¦ããã®ã§ãããæããªãã¦ããã°ã«ãã¦ããªãã£ãã®ã§ããããæ©ã«è¨äºã«ãã¦ããããã¨æãã¾ãã
TDDã¨ã¯
TDDã¨ã¯ãã¹ãé§åéçº(Test-Driven Development)ã®ç¥ç§°ã§ãã 大åã®æ¹ã«ã¯èª¬æã¯ä¸è¦ãã¨æãã®ã§ã詳ãã説æã¯èª¬æãã¾ããã ç°¡åã«ããã¨ã¦ããããã¹ãããªããããã°ã©ã ãæ¸ãã¦ããã¨ããããã°ã©ãã³ã°ã¹ã¿ã¤ã«ã§ãã
TDDã§ä¸æºãªã¨ãã
TDDã¯ç§ã好ããªã®ã§ãããã£ã¦ããã®ã§ããããã¹ããå®è¡ããã®ãé¢åãããã¨æããã¨ããããã¾ãã ã¦ããããã¹ããå®è¡ããã«ã¯ãã³ã³ã½ã¼ã«ãã¢ã¯ãã£ãã«ãã¦ãã¹ããå®è¡ããã³ãã³ããå®è¡ããããIDEã使ç¨ãã¦ããã°ã©ãã³ã°ãã¦ããå ´åã¯ãã¦ã¹ã§æ°ã¯ãªãã¯ãããããªããã°ããã¾ããã ã·ã§ã¼ãã«ãããã¼ãè¦ãã¦ãã°è¯ãã®ã§ããããããããã¹ããã¦ããã¨ãããã¨ãæèãã¦ããªãã§ãåæã«ãã¹ããã¦ããã¨ããã®ãçæ³ã§ãã ãã¹ãã³ã¼ããæ¸ãã¦ããã¡ã¤ã«ãä¿åãã¦ããã¹ããå®è¡ãã¦ããããã¯ãã³ã¼ããæ¸ãã¦ãã³ã¼ããä¿åãã¦ããã¹ããå®è¡ããã¨ããæé ãä½åãç¹°ãè¿ãã®ã§ããã®æéããªãã¨ããããã¨ããæããããã¾ãã
çæ³
ãããã©ããªã£ã¦ããã®ãè¯ãã®ãã¨ãã話ã§ãããå人çã«ã¯ãã¡ã¤ã«ãä¿åããã¨ãã«ãã¹ããåæã«å®è¡ãã¦ãçµæã表示ãã¦ããã®ãçæ³ã§ãã æè¿ã¯ãã¡ã¤ã«ãä¿åããã¨ãã«ãã©ã¼ããã¿ãããã¦ãããä»çµã¿ããã£ãããã¾ãããã ã¾ãããã ãã®ä»çµã¿ã使ããã®ã¯ãã¹ããããã«çµäºããããã«ãªã£ã¦ããã¨ããã®ãæ¡ä»¶ã§ãã 1åæãããã¹ãå®è¡ãããã¡ã¤ã«ãä¿åãã度ã«å®è¡ãã¦æ¬²ãããã¨è¨ãããã¨å¾®å¦ãªæ°ããã¾ãã
ãªã¢ã«ã¿ã¤ã TDD
調ã¹ã¦ããã¨ãã£ã±ãåãããã«æã£ã¦ãã人ã¯ããããã§ããã¡ã¤ã«ã®ä¿åãç£è¦ãã¦ããããã¼ã«ã¨ããã®ãããã¾ããã
ä»åã¯Facebookã使ãã¦ããwatchmanã¨ããOSSã使ç¨ãã¦è©¦ãã¦ã¿ã¾ããã
æ¥æ¬èªã§ã®ããã¥ã¡ã³ãããã¾ãããã¾ãããããã¡ã¤ã«ã®å¤æ´ã奿©ã¨ãã¦makeãªã©ãå®è¡ãã¦ããããã¼ã«ã«ãªãã¾ãã
makeãå®è¡ãã¦ãããã®ã§ãMakefileã®æ¸ãæ¹æ¬¡ç¬¬ã§ãããéçè§£æããã¹ãå®è¡ãªã©æè»ã«å¯¾å¿ãã¦ãããããã§ãã
ãã¡ãããmakeã³ãã³ãã§ãªãã¦ãã³ãã³ããæå®ãã¦ä½¿ç¨ãããã¨ãã§ããã®ã§ãMakefileãç¨æããªãã¦ãæ°è»½ã«ä½¿ç¨ã§ããã¨æãã¾ãã
ä»åã¯Goè¨èªã§æ¤è¨¼ãè¡ãã¾ãããã以ä¸ã®ãããªæãã«ãªãããªã¢ã«ã¿ã¤ã ã«ãã¹ãåºæ¥ãæ§ã«ãªãã¾ããã
åããã«ããããããã¾ããããä¸ã®ã¿ã¼ããã«ã§ã¯watchmanã使ç¨ãã¦ãã¡ã¤ã«ã®å¤æ´ãå¾ æ©ãã¦ãã¾ãã ããã¦ãæåã«ããã¨ãã¹ãã失æããç¶æ ã§ã½ã¼ã¹ã³ã¼ããä¿åãã¦ãã¾ããä¸ã®ã¿ã¼ããã«ã§ãã¹ãã失æãã¦ãããã¨ãåããã¾ãã ãã®å¾ãã½ã¼ã¹ã³ã¼ãã夿´ãã¦ä¿åãã¦ãã¦ãä¸ã®ã¿ã¼ããã«ã§ãã¹ããæåãã¦ãã®ããããã¾ãã
æå¾ã«
ä»åã¯ç°¡åãªããã°ã©ã ã§ã®ã¿è©¦ãã¦ã¿ã¾ããã è¦æ¨¡ã大ããªã³ã¼ãã«ãªã£ã¦ããå ´åã¯ã©ãããã使ãããã®ã«ãªãã®ãã¯ãããã¾ããã ä»å使ç¨ããã½ã¼ã¹ã³ã¼ããªã©ã¯Githubã«ããã¦ããã®ã§ãèå³ãããã°è©¦ãã¦ã¿ã¦ãã ããã