ð ïž TDDã«ããmarkdown_utilsã¢ãžã¥ãŒã«å®è£ ãšéçºæé æšæºåïŒéçºæ¥èš No.044ïŒ
é¢é£ãªã³ã¯
ã¯ããã«
æšæ¥ã¯ãnote-converterãããžã§ã¯ãã®ãã¹ãé§åéçºã«ããã³ã¢æ©èœå®è£
ãè¡ããŸããã仿¥ã¯ãTDDã¢ãããŒãã«ããmarkdown_utils
ã¢ãžã¥ãŒã«ã®å®è£
ãšããã¹ãé§åéçºæé ã®æšæºåã«åãçµã¿ãŸãã
èæ¯ãšç®ç
ãããŸã§TDDã«ããéçºåºç€ãæ§ç¯ããŠããŸããããæ°ããæ©èœãå®è£
ããéã«ãã©ã®ãã¡ã€ã«ã«ãã¹ãã远å ããã©ã®ãã¹ããå®è¡ããã°ããããæé ãæç¢ºã§ã¯ãããŸããã§ãããããã§ãTDDã«é¢ããæé ãæšæºåããéçºããã»ã¹ã¬ã€ãã«è¿œèšããããšã§ãä»åŸã®éçºã«ãããäžè²«æ§ã確ä¿ããŸãããŸããmarkdown_utils
ã¢ãžã¥ãŒã«ãå®è£
ããããšã§ãããŒã¯ããŠã³åŠçã«é¢ããæ©èœãäžç®æã«éçŽããã³ãŒãã®åå©çšæ§ãšä¿å®æ§ãé«ããŸãã
æ€èšå 容
ãŸãããããŸã§ã®TDDéçºåºç€ã確èªããæ°ããæ©èœãå®è£ ããéã®ãã¡ã€ã«æ§é ãšã¯ãŒã¯ãããŒãæŽçããŸãããå ·äœçã«ã¯ããŠããããã¹ããšçµ±åãã¹ãã®ãã£ã¬ã¯ããªæ§é ãåœåèŠåãå®è¡ã³ãã³ããªã©ãæç¢ºåããŸããã
次ã«ãmarkdown_utils
ã¢ãžã¥ãŒã«ã«å¿
èŠãªæ©èœãæ€èšããŸãããããŒã¯ããŠã³ã®è§£æãèŠåºãããªã¹ãã®æœåºãã³ãŒããããã¯ã®æœåºãnote.comåãã®ãã©ãŒãããæé©åãäžèŠãªæžåŒã®æŽçãªã©ãå
·äœçãªæ©èœèŠä»¶ãå®çŸ©ããŸããã
ãŸããã·ã¹ãã ã®åã¢ãžã¥ãŒã«ã®åœ¹å²ãšåŠçãããŒãèŠèŠåãã詳现èšèšæžã«è¿œèšããããšã«ããŸãããç¹ã«ãLLMåŠçã®ååŸã§ããŒã¯ããŠã³è§£æãšæŽåœ¢ãè¡ãçç±ã«ã€ããŠãæ¹ããŠæŽçããŸããã
å®è£ å 容
ãŸããTDDã®æšæºæé ã@development_process_guide.md
ã«è¿œèšããŸããããã£ã¬ã¯ããªæ§é ããã¹ãã®çš®é¡ãåœåèŠåãå®è¡ã³ãã³ããå
·äœçãªå®è£
ãããŒã詳现ã«èšèŒããŸããã
次ã«ãmarkdown_utils.py
ã®å®è£
ãé²ããŸãããTDDã¢ãããŒãã«åŸãããŸããã¹ããã¡ã€ã«tests/unit/test_markdown_utils.py
ãäœæããå¿
èŠãªæ©èœã®ãã¹ãã±ãŒã¹ãå®è£
ããŸããããã®åŸãdocker-compose run --rm test-unit
ãå®è¡ãããã¹ãã倱æããããšã確èªããŸããã
scripts/utils/markdown_utils.py
ã¢ãžã¥ãŒã«ãäœæãããã¹ãã§æå®ããæ©èœãå®è£
ããŸãããå®è£
ã®éã«ã¯ãæ£èŠè¡šçŸã掻çšããŠããŒã¯ããŠã³ã®åèŠçŽ ãé©åã«æœåºããéå±€æ§é ãæã€ããŒã¿ïŒèŠåºãããã¹ãããããªã¹ãïŒãé©åã«åŠçããŸããããŸããã³ãŒããããã¯ã®ç¹æ®åŠçïŒèšèªæå®ã®æœåºãšã³ãŒãã³ã³ãã³ãã®ä¿æïŒãnote.comåãã®ãã©ãŒãããæé©åããã°åºåã«ããåŠçç¶æ³ã®å¯èŠåãªã©ãè¡ããŸããã
å®è£
åŸãå床ãã¹ããå®è¡ãããšãããclean_markdown
颿°ã®äžéšãã¹ãã倱æããŸããããããã°æ
å ±ã远å ãããã¹ãã®æåŸ
å€ãšå®éã®åºåãæ¯èŒããçµæããªã¹ãé
ç®ã®åŠçéšåã«åé¡ãããããšã倿ããŸãããä¿®æ£åŸããã¹ãŠã®ãã¹ããæ£åžžã«ééããŸããã
docker-compose run --rm test-coverage
ã§ã«ãã¬ããžã¬ããŒããçæãããšãããmarkdown_utils.py
ã®ã³ãŒãã«ãã¬ããžã¯96%ãšé«ãæ°Žæºãéæã§ããŸããã
æåŸã«ãã·ã¹ãã ã®åã¢ãžã¥ãŒã«ã®åœ¹å²ãšåŠçãããŒãèŠèŠåãã詳现èšèšæžã«è¿œèšããŸããããããŒãã£ãŒããšèª¬æå³ãäœæããã·ã¹ãã å šäœã®æµããæç¢ºã«ããŸããã
æè¡çãªãã€ã³ã
- æ£èŠè¡šçŸ: ããŒã¯ããŠã³ã®åèŠçŽ ãæœåºããããã«ãé«åºŠãªæ£èŠè¡šçŸãé§äœ¿ããŸãããç¹ã«ããã¹ãããããªã¹ããã³ãŒããããã¯ã®æœåºã«ã¯ãååž°çãªãã¿ãŒã³ã䜿çšããŸããã
- éå±€æ§é ã®åŠç: èŠåºãããªã¹ãã®éå±€æ§é ãé©åã«åŠçããããã«ãååž°çãªé¢æ°ã䜿çšããŸãããããã«ãããè€éãªããŒã¯ããŠã³æ§é ãæ£ç¢ºã«è§£æã§ããŸãã
- ãã¹ãé§åéçº: TDDã¢ãããŒããæ¡çšããããšã§ãæ©èœèŠä»¶ã«åºã¥ããæç¢ºãªãã¹ããå ã«äœæããããããééããå®è£ ãè¡ãããšãã§ããŸãããããã«ãããé«å質ãã€ä¿å®æ§ã®é«ãã³ãŒããå®çŸã§ããŸããã
ææ
ä»åã®éçºã§ã¯ãTDDã¢ãããŒãã®éèŠæ§ãæ¹ããŠèªèããŸããããã¹ããå ã«æžãããšã§ãå®è£ ãã¹ãæ©èœãæç¢ºã«ãªããç¡é§ãªã³ãŒããæžãããšãé²ãããšãã§ããŸãããŸãããã¹ããèªååãããŠããããããªãã¡ã¯ã¿ãªã³ã°ãå®å¿ããŠè¡ãããšãã§ããŸãã
ç¹ã«èŠåŽããã®ã¯ãclean_markdown
颿°ã®ãªã¹ãé
ç®ã®åŠçéšåã§ãããã¹ãããªããªãéããããããã°ã«æéãããããŸããããããããããã°æ
å ±ã远å ãããã¹ãã®æåŸ
å€ãšå®éã®åºåãæ¯èŒããããšã§ãåé¡ç®æãç¹å®ããä¿®æ£ããããšãã§ããŸããã
ä»åã®éçºã§ãããŒã¯ããŠã³åŠçã«é¢ããç¥èãæ·±ãŸããŸããããŸããTDDã¢ãããŒãã®å®è·µçãªã¹ãã«ãåäžããŸããã
LLMåŠçã®ååŸã§ããŒã¯ããŠã³è§£æãšæŽåœ¢ãè¡ãããšã®ã¡ãªãããæ¹ããŠæŽçããããšã§ãã·ã¹ãã å šäœã®èšèšææ³ãå確èªã§ããŸãããååŠç段éã§è²¬ä»»ãåé¢ããããŒã¯ã³æ¶è²»ãæé©åããåŠçã®å®å®æ§ãåäžãããããšã®éèŠæ§ãçè§£ããŸããã
ä»åŸã®èª²é¡
-
markdown_utils
ã¢ãžã¥ãŒã«ã®ãããªãæ©èœæ¡å ïŒããŒãã«ã®åŠçãç»åã®åŠçãªã©ïŒ - ãã¹ãã«ãã¬ããžã®100%éæ
- OpenRouter API飿ºã®å®è£
ãŸãšã
仿¥ã¯ãTDDã¢ãããŒãã®æšæºæé ãéçºããã»ã¹ã¬ã€ãã«è¿œèšããmarkdown_utils
ã¢ãžã¥ãŒã«ãTDDã§å®è£
ããã·ã¹ãã ã®åã¢ãžã¥ãŒã«ã®åœ¹å²ãšåŠçãããŒã詳现èšèšæžã«èŠèŠçã«è¿œèšããŸããããããã®ææã«ãããä»åŸã®éçºãããå¹ççã«é²ããããããã«ãªããŸãã
Discussion