ã¯ããã«
ç§ã¯çŸåšãæ¬æ¥ã§ãã©ãã¯ãã©ã€ããŒãšããŠåããªãããPythonãFlaskã䜿ã£ãWebã¢ããªã±ãŒã·ã§ã³éçºãç¬åŠããŠããŸãã
æè¿ã¯VS Codeã®Codexã䜿ããªãããå人éçºäžã®Flaskã¢ããªã§pytestã匷åããŠããŸãã
çŸåšé²ããŠããã®ã¯ç¬¬3段éã
èªèšŒã»èªå¯ã»CSRFãªã©ã
ã誰ãæäœããŠããã®ããããã®æäœãæ¬äººã®æå³ãããã®ãã
ãšããéšåã確èªããŠãããšããã§ãã
ãã®äœæ¥äžãCodexãšã®ããåããèŠãªãããµãšæããŸããã
ãããç¬ã®ãæŸãé£ããã«äŒŒãŠãªããïŒðŠ®
ä»åã¯ããããªå°ãå€ãã£ãæ°ã¥ãã«ã€ããŠæžããŠã¿ãŸãã
Codexã¯é Œãã§ããªãåé¡ãŸã§èŠã€ãã
Codexã«ã³ãŒãã調æ»ããŠããã£ãŠãããšãä»åã®äœæ¥ãšã¯å¥ã®åé¡ãèŠã€ããããšããããŸãã
ããšãã°ã
ä»åã¯èªèšŒãŸããã ã確èªãã
ãšäŸé ŒããŠããŠãã
å¥ã®APIã«ãåé¡ããããŸã
ãã®åŠçãæ¹åã§ããŸã
ãããä¿®æ£ããæ¹ãããããã§ã
ãšãã£ãå ·åã«ãåšèŸºã®åé¡ãŸã§èŠã€ããŠãããŸãã
ããã¯æªãããšã§ã¯ãããŸããã
ãããã
èªåã§ã¯æ°ã¥ããªãã£ãåé¡ãèŠã€ããŠãããã
ãšããæå³ã§ã¯ããšãŠãå©ãããŸãã
ãã ãããã®ãŸãŸã
ã€ãã§ã«ä¿®æ£ããŠãããŸããã
ãŸã§é²ãŸãããšè©±ãå€ãããŸãã
ãã€ãã§ã«ä¿®æ£ããç¬ã®æŸãé£ãã«èŠããŠãã
Codexãšã®äœæ¥äžã«æãã€ããã®ãããã®äŸãã§ãã
ðâðŠºæ£æ©äžã®ç¬ãã
éã°ãã§äœããçºèŠ
â
æ°ã«ãªã
â
飌ãäž»ã«ç¢ºèªããå£ãžå
¥ãã
ãããæŸãé£ãã§ãã
Codexãã
ã³ãŒãã調æ»
â
å¥ã®åé¡ãçºèŠ
â
è¯ãããã ããã€ãã§ã«ä¿®æ£
ãšé²ãã§ããŸããšãããªã䌌ãŠããŸãã
æ¬äººãšããŠã¯ã
ãè¯ãããšãããð¶ã
ã€ãããããããŸããã
ã§ã飌ãäž»åŽãããããšã
åŸ ãŠåŸ ãŠïŒ
ãã誰ã«ããã£ãã®ïŒ
åæã«é£ã¹ã¡ãã ãïŒ
ãšãªããŸãã
Codexã§ãåãã§ãã
åŸ ãŠåŸ ãŠïŒ
ä»åããã¯é Œãã§ãªãïŒ
åæã«ä¿®æ£ç¯å²ãåºãã¡ãã ãïŒ
ãšãªããŸãã
èŠã€ããã®ã¯OKâã æŸãé£ãã¯NGâ
ããã§æè¿ã¯ãCodexãžã®æç€ºãããªãæç¢ºã«ããŠããŸãã
äŸãã°ã
æ³å®å€ã®åé¡ãçºèŠããŠãã
ä»åã®ä¿®æ£ç¯å²ãåºããã
å ±åã ãããŠãã ããã
ãšãã圢ã§ãã
èãæ¹ã¯åçŽã§ãã
èŠã€ããã®ã¯OKã
åæã«çŽãã®ã¯NGã
åé¡ãçºèŠãããã
åé¡çºèŠ
â
å ±å
â
ä»åã®äœæ¥ã忢
â
人éã確èª
â
å¿
èŠãªã次ã®äœæ¥ãšããŠåãåºã
ãšããé çªã«ããŸãã
ãããªãã
çºèŠããããšãšãä¿®æ£ããããšãåããããŸãã
ãªããã€ãã§ä¿®æ£ããæãã®ã
äžèŠãããšã
åé¡ãèŠã€ãããªããã€ãã§ã«çŽããæ¹ãæ©ãã®ã§ã¯ïŒ
ãšæããããããŸããã
ç§ãæåã¯ããæã£ãŠããŸããã
ãã ãå®éã«è€æ°ã®ä¿®æ£ãé²ããŠãããšã
ãã€ãã§ä¿®æ£ãã«ã¯ããã€ãå°ãç¹ããããŸãã
倿Žç¯å²ãåãããªããªã
äŸãã°ã
èªèšŒã远å ãã
ãšããäœæ¥ã ã£ãã®ã«ã
èªèšŒ
APIä¿®æ£
DBä¿®æ£
ãã³ãã¬ãŒãä¿®æ£
ãã°æ¹å
ãŸã§äžæ°ã«å ¥ã£ãŠããŸããšã
ã©ã®å€æŽãäœã®ããã ã£ãã®ã
远ãã«ãããªããŸãã
åé¡ãèµ·ãããšãåå ã远ãã«ãã
ä¿®æ£ã1ã€ãªãã
ãã®å€æŽã§å£ããå¯èœæ§ãé«ã
ãšèããããŸãã
ãããè€æ°ã®ãã€ãã§ä¿®æ£ããæ··ãããšã
ã©ã®å€æŽãåå ïŒ
ãšãªããŸãã
ãã¹ãã®æå³ãææ§ã«ãªã
ç§ã¯æè¿ãpytestã
ãäºæ 鲿¢å°åž³ã
ãšããŠèããŠããŸãã
åé¡ã1ã€èŠã€ãããã
å±éºãªç¶æ
ããã¹ãã§åçŸ
â
èµ€ã«ãªãããšã確èª
â
æå°ä¿®æ£
â
ç·ã«ãªãããšã確èª
ãšããæµãã§é²ããŠããŸãã
ãšãããéäžã§å¥åé¡ãŸã§äžç·ã«ä¿®æ£ãããšã
ã©ã®èµ€ãã¹ãã«å¯Ÿããä¿®æ£ã ã£ãã®ã
åããã«ãããªããŸãã
pytest第3段éã§ããåŸ ãŠðãã䜿ã£ã
çŸåšé²ããŠããpytest第3段éã§ã¯ãèªèšŒãŸããã確èªããŠããŸãã
ãŸãã¯ã³ãŒããä¿®æ£ããã
èªèšŒ
èªå¯
CSRF
ã®çŸåšç¶æ ã ãã調æ»ããŸããã
ãã®æ¬¡ã«ã
æªèªèšŒPOSTãæåŠãã
ãšããå°æ¥ä»æ§ãèµ€ãã¹ããšããŠè¿œå ããŸããã
ããã«ãã°ã€ã³ä»æ§ãèµ€ãã¹ããžè¿œå ãã
5 failed
ã確èªããŠãããæå°éã®èªèšŒå®è£ ãžé²ã¿ãŸããã
ä¿®æ£åŸã¯ã
56 passed
ãšãªããŸããã
ãã®éäžã§ãã
ä»åã¯èªèšŒã ã
CSRFã¯ãŸã è§Šããªã
logoutããŸã è§Šããªã
APIä¿è·ããŸã è§Šããªã
ãšç¯å²ãåºåã£ãŠããŸãã
Codexãããããšã
ããã®ãŸãŸæ¬¡ãããããã
ãªç¶æ ã§ãã
ãã£ããæ¢ããŸãã
ãã§ããããšãä»ãããã¯å¥
ä»åç¹ã«æããã®ã¯ã
Codexãã§ããããšãšãä»ãã£ãŠããããšã¯å¥
ãšããããšã§ãã
äŸãã°ã
CSRFãå®è£
ã§ãã
logoutã远å ã§ãã
APIãä¿è·ã§ãã
ãšããŠãã
ããã¯ã
ä»ãŸãšããŠå
šéšãã
ãšããæå³ã§ã¯ãããŸããã
人éåŽãã
ä»åã¯ãããŸã§
ãšäœæ¥ç¯å²ã決ããå¿ èŠããããŸãã
ããã¯ããã°ã©ãã³ã°ä»¥å€ã®ä»äºã§ãåãã ãšæããŸãã
git statusãšgit diffã¯ãå£ã®äžãã§ãã¯ã
ç¬ãæ£æ©ããåž°ã£ãŠããŠã
äœãå€ãªãã®é£ã¹ãŠãªãïŒ
ãšç¢ºèªããããã«ã
Codexã®äœæ¥åŸã¯ãGitã®ç¶æ ãšå·®åã確èªããŠããŸãã
äŸãã°ã
git status --short
git diff --stat
git diff
git diff --check
ãªã©ã§ãã
ããã§ã
- é Œãã ãã¡ã€ã«ã ã倿ŽãããŠããã
- æ³å®å€ã®ãã¡ã€ã«ãå¢ããŠããªãã
- ç¡é¢ä¿ãªä¿®æ£ãæ··ãã£ãŠããªãã
- 空çœãšã©ãŒããªãã
ã確èªããŸãã
ã€ãŸãã
Codex
ãã¡ãããšæ£æ©ããŠããŸããïŒð¶ã
git diff
ãã¡ãã£ãšå£ã®äžèŠããŠã
ã§ãã
AIããæå®å€ã®å€æŽã¯ãããŸããããšå ±åããŠãã
æçµçã«ã¯å·®åã確èªããããã«ããŠããŸãã
pytestã¯æŸãé£ãåŸã®äœèª¿ç¢ºèªã§ã¯ãªã
ããã«pytestãå®è¡ããŸãã
ãã ãpytestã¯ã
Codexãåæãªå€æŽãããŠããªãã確èªããéå ·
ãã®ãã®ã§ã¯ãããŸããã
pytestã確èªããã®ã¯ã
ãããŸã§å®ã£ãŠãã仿§ãå£ããŠããªãã
ã§ãã
ãã®ããã
äœæ¥ç¯å²
â
git diff
â
pytest
ãããã圹å²ãéããŸãã
ç§ã®äžã§ã¯ã
äœæ¥ç¯å²
= æ£æ©ã³ãŒã¹ã決ãã
æ³å®å€ã§ã¯åæ¢
= æŸãé£ãçŠæ¢
git diff
= åž°å®
åŸã®ç¢ºèª
pytest
= å¥åº·ç¶æ
ã»æ¢åã«ãŒã«ã®ç¢ºèª
ãšããã€ã¡ãŒãžã«ãªã£ãŠããŸãã
Codexã¯ãæŸã飌ããã«ããªã
以åãCodexã䜿ããšãã«ã
ãæŸã飌ãã«ããªãã
ãšããèšäºãæžããŸããã
ä»åã®ãæŸãé£ãããããã®èãæ¹ã®å»¶é·ã§ãã
Codexã¯ããªãéãäœæ¥ã§ããŸãã
ãã®åã
調æ»
â
åé¡çºèŠ
â
ä¿®æ£
â
ããã«å¥åé¡çºèŠ
â
远å ä¿®æ£
ãšãäžæ°ã«é²ããããŠããŸããŸãã
ã ããããã
éãåããAIã«ã¯ãæ¢ãŸãå Žæã決ããŠãã
å¿ èŠããããšæããŠããŸãã
æè¿ãã䜿ãæç€º
æè¿ãCodexã«ã¯æ¬¡ã®ãããªæç€ºãå ¥ããããšãå¢ããŸããã
æ³å®å€ã®åé¡ãèŠã€ããŠãã
ä»åã®ä¿®æ£ç¯å²ãåºããªãã§ãã ããã
å ±åã ãããŠåæ¢ããŠãã ããã
次ã®äœæ¥ã«ã¯é²ãŸãªãã§ãã ããã
commitã»pushã¯è¡ããªãã§ãã ããã
ããªãæ éã«èŠãããããããŸããã
ã§ããCodexãä¿¡çšããŠããªããšããããã
Codexãéãåãããããããäœæ¥ç¯å²ãæç¢ºã«ããŠãã
ãšããæèŠã§ãã
ãŸãšã
Codexã䜿ã£ãŠpytest第3段éãé²ããŠããéäžã
Codexã®ãã€ãã§ä¿®æ£ãã¯ç¬ã®æŸãé£ãã«å°ã䌌ãŠããð©
ãšæ°ã¥ããŸããã
Codexã®æŸãé£ã察ç
- ä»åã®äœæ¥ç¯å²ã決ãã
- æ³å®å€ã®åé¡ã¯å ±åã ã
- çºèŠãšä¿®æ£ãåãã
- 次ã®å·¥çšãžåæã«é²ãŸããªã
- git diffã§å€æŽç¯å²ã確èªãã
- pytestã§æ¢å仿§ãå£ããŠããªãã確èªãã
äžçªå€§äºãªã®ã¯ã
èŠã€ãããª
ã§ã¯ãããŸããã
ãããã
èŠã€ããŠã»ããã
ã§ãåæã«é£ã¹ãªãã§ã»ããã
ã§ãã
Codexã¯ããªãé Œããã¯ã³ã¡ããã§ããðŸ
ã ããããã
åŸ ãŠã
ããã¯ãŸã è¡ã£ã¡ãã ãã
ãšèšããç¶æ ã§äœ¿ãã®ããä»ã®ãšããç§ã«ã¯åã£ãŠããŸãã
次ã¯pytest第3段éã®ç¶ããšããŠãCSRF察çãé²ããäºå®ã§ãã
