ãåäœãã¹ãã®èãæ¹/䜿ãæ¹ãVladimir Khorikov https://amzn.to/3BCLytq ã以åèªãã ã
ããã§ãã¹ãã«ã€ããŠèšãããŠãã11ç« ãèªãã ãåŒãç¶ã12ç« ãèªãããšæããåã®ç« ãèªã¿çµãã£ãã®ã2024幎12æ1æ¥(æ¥)ããããªã®ã§ãã®æ¥ã«ã¹ã¿ãŒãããšããã
12ç« ããŠããããã¹ã
èŠç¹ãç¹°ãè¿ããšãèŠæš¡ãæãã®ã¯ããã¹ãã«ããæ¶è²»ããããªãœãŒã¹äžŠã³ã«ãã¹ããå®è¡ãèš±å¯ãããŠãå 容ã§ãããç¯å²ãæãã®ã¯ããã¹ããæ€èšŒãæå³ããã³ãŒãã®éã§ããããã¹ãèŠæš¡ã«ã€ããŠã¯Googleã¯æ確ãªåºæºãæã€ããããã«æ¯ã¹ãã¹ãç¯å²ã¯ããææ§ãšãªããã¡ã§ããã
ä»äººã«èŠæš¡ãšç¯å²ã£ãŠäœïŒãšèããããšãã«ç°¡æœã«çããããå 容ãç·ŽãããŠéžæããããã·ã£ãŒãããæããã
ãã°ã®é²æ¢ã«ç¶ããã¹ãã®æéèŠç®çã¯ããšã³ãžãã¢ã®çç£æ§ã®æ¹åã§ããã
ãã°é²æ¢ = éè¡ãžã®ä¿è·ããªãã»ã©ããã°é²æ¢ã¯ããããããè¡šçŸãããããã«åãããã¡ããã
ãŠããããã¹ãã¯ãšã³ãžãã¢ã®ç掻ãããã»ã©å€§ããªéšåãå ããŠãããããGoogleã¯ãã¹ãã®ä¿å®æ§ã«å¯ŸããŠããªãéç¹ã眮ããŠãããä¿å®æ§ã®ãããã¹ããšã¯ããšã«ããåäœããããã®ã ãã€ãŸããã¹ããæžããåŸã§ãšã³ãžãã¢ã¯ãã¹ãã倱æãããŸã§ã¯ãã®ãã¹ãã«ã€ããŠå床èããå¿ èŠã¯ç¡ãããããŠãã¹ãã®å€±æã¯æ確ãªåå ã®ãããã°ãå®åšããããšã瀺ãã
åããªããªã£ããã€ãŸã倱æãããã¹ãã¯ä¿å®æ§ããªããã€ã³ãŒã«ããã°ãããã°ã©ã ã«ããããšããç¶æ ã«ããããç®æãç¶ããŠãããšããããšã ãªã
12.1ãä¿å®æ§ã®éèŠã
èŠã¯ãå°æ¥æ åœãããšã³ãžãã¢ã®è² æ ãšãªããªãããã«ãé§ç®ãªãã¹ãã¯ãã§ãã¯ã€ã³åã«ä¿®æ£ãããªããã°ãªããªãã®ã ã倧ãŸãã«è¡ã£ãŠãMaryãééããåé¡ã¯2ã€ã®ã«ããŽãªã«å ¥ãã第äžã«Maryãäœæ¥ããŠãããã¹ãã¯èããã®ã ã£ããèŠããã«ãå®éã®ãã°ãå šãæã¡èŸŒãã§ããªãç¡å®³ãã€ç¡é¢ä¿ãªå€æŽã«åå¿ããŠç Žç¶»ããã®ã ã第äºã«ããã®ãã¹ãã¯äžæ確ã ã£ããã€ãŸããã¹ã倱æåŸã«ãééã£ãŠããç¹ãä¿®æ£æ¹æ³ããããŠãã®ãã¹ããããããäœãå®è¡ããããšã«ãªã£ãŠããããšããç¹ãã確å®ããã®ãé£ããã£ãã
èããäžæ確ãããç¡ãããã«ä¿å®æ§ãä¿ã€ããšã倧å€ã§ãããã ããããéèŠã
12.2ãèããã¹ããé²ã
ä»å®çŸ©ããããã«ããããã¹ããšã¯æ¬çªç°å¢ã®ã³ãŒããžã®ç¡é¢ä¿ãªå€æŽã§ãå®éã®ãã°ã¯äœãæã¡èŸŒãŸãªããã®ã«çŽé¢ããéã«å€±æããŠããŸããã¹ãã®ããšã ã(泚1)
(泚1): ããã¯ä¿¡é Œäžèœãã¹ããšã¯å°ã ç°ãªãããšã«æ³šæãã¹ãã§ãä¿¡é Œäžèœãã¹ããšã¯æ¬çªç°å¢ã®ã³ãŒããžã®å€æŽãäœããªããŠãé決å®æ§ã«å€±æãããã¹ãã§ããã
èããã¹ã â åœéœæ§ (false positive)
ä¿¡é Œäžèœãã¹ã â ãã¬ãŒããŒãªãã¹ãããããåœéœæ§ (false positive)
12.2.1ãå€åããªããã¹ããç®æã
ãããã£ãŠãçæ³ã®ãã¹ããšã¯å€åããªããã¹ãã§ãããã€ãŸãããã¹ã察象ã·ã¹ãã ã®èŠä»¶ãå€åããªãéããæžãããåŸã¯äºåºŠãšå€æŽã®å¿ èŠããªããã¹ãã ã
ãããå€åãšã¯äœããšèšãã®ã§ã次ã®4ã€ãæããŠããã1ã€ç®ãçŽç²ãªãã¡ã¯ã¿ãªã³ã°ã2ã€ç®ãæ°æ©èœã3ã€ç®ããã°ä¿®æ£ã4ã€ç®ãæåã®å€æŽãæåã®å€æŽä»¥å€ã®ã±ãŒã¹ã«ãããŠããã¹ãã«å€æŽã¯ç¡ãããã¹ããžã®æŽæ°ãå¿ èŠãªãã®ãçæ³ãšããã®ã¯ãªãããããã
以äžãèžãŸããŠèŠããŠããã¹ãããšã¯ããã¹ããæžããããã·ã¹ãã ããªãã¡ã¯ã¿ãªã³ã°ãããã°ãä¿®æ£ããæ°æ©èœãè¿œå ããéã«ããã®ãã¹ãã«å床觊ããªããã°ãããªããšããã®ã¯äœããééã£ãŠãããšããããšã§ããããã®äºè§£ããããã¹ã±ãŒã«ããã·ã¹ãã ãæ±ããããã«ããŠããããã®ã ã
ãã®éšåãèªããšã確ãã«ãªãšè ã«èœã¡ãã®ãšåæã«ãè¯è³ªãªãã¹ããæžããšããã®ã¯ãæ¬åœã«é«çãªæè¡ãªã®ã ãšå®æãããããã
12.2.2ãå ¬éAPIçµç±ã®ãã¹ã
ãã®ããšãä¿èšŒããã®ã«çŸ€ãæããŠæãéèŠãªæ¹æ³ã¯ããã¹ã察象ã·ã¹ãã ã®ãŠãŒã¶ãåŒã³åºãã®ãšåãæ¹æ³ã§ã·ã¹ãã ãåŒã³åºããã¹ããæžãããšã§ããã âŠç¥âŠ ããŸãã«ãã®ãããªãã¹ãã¯ããŠãŒã¶ã«ãšã£ãŠæçšãªã³ãŒãäŸãªãã³ã«ããã¥ã¡ã³ããŒã·ã§ã³ã®åœ¹ç®ãæãããã
å®è£ ã«å¯ŸããŠã§ã¯ãªããå¥çŽã«å¯ŸããŠãã¹ãã³ãŒããæžãã¹ããšç¢ºãåã®æ¬ã«ãã£ãæ°ãããããåäœãã¹ãã®èãæ¹/䜿ãæ¹ã5.2 芳å¯å¯èœãªæ¯ãèã(observable behavior)ãšå®è£ ã®è©³çŽ°(implementation detail)ããè¿ãããªãã
12.2.3ãçžäºäœçšã§ã¯ãªããç¶æ ããã¹ããã
äžè¬ã«ããã¹ã察象ã·ã¹ãã ãæåŸ éãã®æåãè¡ãããšãæ€èšŒããã«ã¯2ã€ã®æ¹æ³ãååšãããã¹ããŒã(state:ç¶æ )ãã¹ãã§ã¯ãã·ã¹ãã èªäœã芳å¯ããŠãã·ã¹ãã ã®ã¡ãœãããåŒã³åºããåŸã«ã·ã¹ãã ãã©ã®ãããªç¶æ ã«ãªã£ãŠããããèŠããããã«å¯ŸããŠã€ã³ã¿ã©ã¯ã·ã§ã³(interaction: çžäºäœçš)ãã¹ãã§ã¯ãã·ã¹ãã ãåŒã³åºãã«å¿ããŠæåŸ ãããäžé£ã®åäœãå調åäœã®å¯Ÿè±¡ã«å¯Ÿãè¡ã£ãããã§ãã¯ãã(https://oreil.ly/3S8AL)ãå€ãã®ãã¹ãã¯ãç¶æ ãšçžäºäœçšã®æ€èšŒãçµã¿åãããŠå®æœããã
ã€ãŸããã€ã³ã¿ã©ã¯ã·ã§ã³ãã¹ããã©ã®ããã«(how)ã·ã¹ãã ããã®çµæã«å°éãããããã§ãã¯ããã®ã«å¯Ÿããéåžžã¯çµæãäœ(what)ã§ãããã ããæèãã¹ãã ã
ã€ã³ã¿ã©ã¯ã·ã§ã³ãã¹ãã«åé¡ãããå Žåããã®åé¡ã®çç±ãšããŠæããããµãããã®ã¯ãã¢ããã³ã°ãã¬ãŒã ã¯ãŒã¯ãžã®é床ã®äŸåã§ããã âŠç¥âŠ ãã®ããæã ã¯ãæ¬ç©ã®ãªããžã§ã¯ããé«éã§æ±ºå®æ§ã§ããéãã¯ãã¢ãã¯ãªããžã§ã¯ããããæ¬ç©ã®ãªããžã§ã¯ãã䜿ãããšã奜ãåŸåãããã
Googleã¯ãå€å žåŠæŽŸã ãªãã
12.3ãæ確ãªãã¹ããæžã
èããå ¥ãäºæ ãå®å šã«å ãããšããŠããé ããæ©ãããã¹ãã¯å€±æããã ããã倱æã¯è¯ãããšã ããã¹ãã®å€±æã¯ãšã³ãžãã¢ã«æçšãªã·ã°ãã«ãæäŸãããŸããŠããããã¹ãã䟡å€ãæäŸããæ¹æ³ã®æäž»èŠãªãã®ã§ããã
ãã¹ãã§ã®å€±æã¯è¯ãããšã ãšèšã£ãŠãããã®å§¿å¢ãããã
ãã¹ãã¹ã€ãŒããé·æã«ãããã¹ã±ãŒã«ãæçšã§ããç¶ããããã«ã¯ããã®ãã¹ãã¹ã€ãŒãå ã®ååå¥ãã¹ããå¯èœãªéãæ確ã§ããããšãéèŠã§ãããæ¬ç¯ã§ã¯ããã¹ããæ確æ§ãéæããããã«ããããã®ãã¯ããã¯ãšèãæ¹ãæ¢ãã
æ確ãªãã¹ããããããå©çã¯ã¹ã±ãŒã«ã
12.3.1ããã¹ãã¯å®å šãã€ç°¡æœã«ãã
ãã¹ããæ確æ§ãéæããã®ãå©ããã2ã€ã®ãã€ã¬ãã«ãªå±æ§ã¯ãå®å šæ§ãšç°¡æœæ§ã§ãã(https://oreil.ly/lqwyG)ããã¹ãã¯ããã®ãã¹ããã©ã®ããã«ãã®çµæã«å°éãããç解ããããã«èªè ãå¿ èŠãšããå šæ å ±ããã®æ¬äœéšåãå«ãã§ããå Žåã«ãå®å šã§ããããã¹ãã¯ãä»ã®çŽãããããç¡é¢ä¿ãªæ å ±ãå«ãŸããŠããªãå Žåã«ãç°¡æœã§ããã
æ確=å®å š+ç°¡æœãå®å š=èªç«ãç°¡æœ=å¿ èŠæå°é
ãšãããããæ確ãªãã¹ãã«ã€ãªããã®ã§ããã°ãDRY(Donât Repeat Yourself : ç¹°ãè¿ããããã)ååã«éåãã䟡å€ãããããå Žåãå€ããšããèãæ¹ã ã
å人çã«ã¯å®å šæ§ãéæããããã«ãDRYååããããŠç Žãããšãå€ããã ãªããšæããã
12.3.2ãã¡ãœããã§ã¯ãªããæåããã¹ããã
ã€ãŸãããã¹ããããã¡ãœãããè€éã«ãªãã«ã€ããŠããã®ãã¹ãã®è€éæ§ãå¢å€§ããå®éã¯äœããã£ãŠããã®ããæšè«ããããšãé£ãããªãã®ã ã
話ã¯ãããããã ãããããå®è£ ã®è©³çŽ°ã«å¯ŸããŠãŠããããã¹ããæžãã®ã§ã¯ãªããã€ã³ã¿ãŒãã§ãŒã¹ã«å¯ŸããŠèšããšãã¹ããæžããšèšãããšã ãšæãã
åã¡ãœããåãã«ãã¹ããæžããããåã ã®æå(behavior)åãã«ãã¹ããæžãã¹ãã ãæåã¯ãã·ã¹ãã ãç¹å®ã®ç¶æ ã«ããéã«ãäžé£ã®å ¥åãžã©ãåå¿ãããã«ã€ããŠãã·ã¹ãã ãè¡ãä»»æã®ä¿èšŒã§ããã
ãåäœãã¹ãã®èãæ¹/䜿ãæ¹ã4.1.4 å®è£ ã®è©³çŽ°ã§ã¯ãªããæçµçãªçµæã確èªãã P106 ã6.1.1 åºåå€ããŒã¹ã»ãã¹ããšã¯? P168 ã«å¯Ÿå¿ãããšæãã
12.3.3ããã¹ãã«ããžãã¯ãå ¥ãããª
ã·ã¹ãã ãã©ã®ããã«æ§æãããããå®çŸ©ãããããšããåææ¡ä»¶äžã§ãã®éšåãã·ã¹ãã ã«å¯ŸããŠè¡ãããåäœãå®çŸ©ããããå Žåãã®éšåãçµæãæ€èšŒããããã®å Žåã¯ããã®éšåã (泚8)ã âŠç¥âŠ
(泚8) ãããã®éšåã¯ãæºåãã(arrange)ããè¡åãã(act)ããçã§ããããšãè¡šæãã(assert)ããšãåŒã°ããã
Google ã§ã AAA ãã¿ãŒã³ã䜿ã£ãŠããããã ã
ãã®ãããªãã¹ããæžãå Žåããã£ããè€æ°ã®æåãåæã«ãã¹ãããŠããªããæ éã«ç¢ºãããããã«ããªããã°ãªããªããåãã¹ãã¯åäžã®æåã®ã¿ã察象ãšãã¹ãã§ããããŠããããã¹ãã®å§åç倧éšåã§ã¯ãå¿ èŠãªããå Žåããšããã®å Žåã¯ããã®ãããã¯ã¯1ã€ã ãã ã
ãåäœãã¹ãã®èãæ¹/䜿ãæ¹ã3.1 åäœãã¹ãã®æ§é P58 ã詳ãããåã䞻匵ãããŠãããšæã£ãã
12.3.4ãæ確ãªå€±æã¡ãã»ãŒãžãæžã
çæ³çãªäžçã§ã¯ãšã³ãžãã¢ã¯ããã¹ãèªäœãå šãèŠãå¿ èŠãªãã«ããã°ããªããŒãå ã®ãã¹ã倱æã¡ãã»ãŒãžãèªãã ãã§åé¡ã®åå ã究æã§ããã âŠç¥âŠ ã€ãŸã倱æã¡ãã»ãŒãžã¯ãæåŸ ãããçµæãå®éã®çµæãé¢é£ããèŠå å šãŠãæ確ã«è¡šçŸããã¹ãã§ããã
ãŠããããã¹ã倱æãããšãã®åºåãå®å šã§ç°¡æœã«ããããšã倧äºã«ãªã£ãŠããã
12.4ããã¹ããšã³ãŒãå ±æïŒDRYã§ã¯ãªãDAMP
è¯ããã¹ããšã¯å€åããªãããã«èšèšããããã®ã§ããããããŠå®éããã¹ã察象ã·ã¹ãã ãå€åããéã«ã¯ãã¹ããç Žç¶»ããããšãéåžžã¯**æãŸããã**ãããã£ãŠãã¹ãã³ãŒãã«é¢ããŠã¯ãæ¬çªç°å¢åãã³ãŒãã®å Žåã»ã©DRYã®æ©æµã¯ç¡ãã
DRYã®æ©æµã¯èãã®ã§ããã ããå¿ èŠããªãããã£ãšå€§äºã«ããæ¹ãè¯ãããšãéèŠããã
ãã¹ãã³ãŒãã¯å®å šã«DRYã«ãªãã®ã§ã¯ãªããDAMP (https://oreil.ly/5VPs2) ãç®æãã¹ãã§ããããšãå€ããã€ãŸãã説æçãã€æå³ãããããããèšãåã (Descriptive And Meaningful Phrases) ããæšå¥šãããšèšãããšã ãå°ã ã®éè€ã¯ãããããã¹ããåçŽãã€æ確ãªãã®ã«ããéããåé¡ãªãã
ãã¹ãã倱æãããšãã«ããã®ãã¹ãã ããã¿ããã®ã§ããã¹ãå ã§å®å šãã€ç°¡æœã«ãªã£ãŠããäºã確ä¿ããããã«ãã©ã€ãããªããŠãã³ãã«ããããã®ç« ã«ã¯ã¹ã¯ããŒã«ãããŠè¡ã£ããæ¥ããããªããããã¹ããèªãã®ã¯èŠçã£ãŠããšãæžããŠãã£ããäžããäžã«èªã¿äžããŠãå 容ããããããã«ããå¿ èŠãããã
DAMP 㯠DRY ã眮ãæãããã®ã§ã¯ãªããè£ããã®ã§ããã
äž¡ç«ãåŸãã
éèŠãªç¹ã¯ããã®ãããªããã¡ã¯ã¿ãªã³ã°ã¯ããã¹ãã説æçã§æå³ããããããããã®ã«ããããšãéèŠããŠè¡ãããã¹ãã§ãããåã«ç¹°ãè¿ããæžãããšèšãåç®ã®ã¿ã«ãããŠè¡ãããã¹ãã§ã¯ãªããšããããšã ã
DRY ã䜿ããšããŠããã·ã¹ãã æ§ç¯æãšãŠããããã¹ããæžããšãã§ã¯ç®æããã®ãéããšããããã€ã³ãããåäœãã¹ãã®èãæ¹/䜿ãæ¹ã3.3 ãã¹ããã£ã¯ã¹ãã£ã®æºåæ¹æ³ãã«ãããã
12.4.1ãå ±æå€
ãšã³ãžãã¢ãéåžžå ±æã®å®æ°ã®å©çšã«å¿æ¹ãããã®ã¯ãåãã¹ãå ã§åå¥ã®å€ãæ§ç¯ããã®ã¯åé·ãšãªãåŸãããã ããã®ãŽãŒã«ãéæããæãè¯ãæ¹æ³ã¯ããã¹ãäœè ãé¢å¿ã®ããå€ã®ã¿äœè ã®æå®ãèŠæ±ããä»ã®å šãŠã®å€ã«åŠ¥åœãªããã©ã«ãå€ãèšå®ãããã«ããŒã¡ãœãã(äŸ12-22ãåç §)ãçšããŠããŒã¿ãæ§ç¯ããããšã§ããã
ããã¯äŸãã°ãŸãã«ãLaravel ã§ãããã¹ãã®ãã¡ã¯ããªã¡ãœããã«åœããïŒ
12.4.2ãåæèšå®ã®å ±æ
åæèšå®ã¡ãœããã䜿ãéã®ãªã¹ã¯ã¯ããã¹ããåæèšå®ã§äœ¿ãããç¹å®ã®å€ã«äŸåããããã«ãªããšããã¹ããäžæ確ã«ãªããããªãããšã ã
ãã¹ãã®èªæžããããããããªããšèšã£ãŠã調ã¹å§ãããè² ãã
æ瀺çã«ç¹å®ã®å€ã«é¢å¿æã€ãããããã¹ãã¯ããã®ãããªå€ãçŽæ¥è¡šæããå¿ èŠãªãåæèšå®ã¡ãœããå ã§å®çŸ©ãããããã©ã«ãå€ããªãŒããŒã©ã€ããã¹ãã ãçµæãšããŠã§ãããã¹ãã¯ãäŸ12-24ã«ç€ºãããããã«ç¹°ãè¿ããå°ãå€ãå«ãããçµæãã¯ããã«èª¬æçãã€æå³ããããããããªã£ãŠããã
Laravel ãã¡ã¯ããªãŒã¡ãœããã§ããåŸããå€ãå€ããããšãã§ããæ¬ç¯ãšåãããšãå®çŸå¯èœãšæãã
12.4.3ããã«ããŒã¡ãœãããšæ€èšŒã¡ãœããã®å ±æ
ãããããã察象ãçµã£ãæ€èšŒã¡ãœããã¯äŸç¶ãšããŠæçšãšãªãããã âŠç¥âŠ ããã¯ãæ€èšŒããŠããæ¡ä»¶ããæŠå¿µçã«ã¯åçŽã§ãããã®ã®ããã¹ãã¡ãœããã®æ¬äœéšåã«å«ãŸãããšæ確æ§ãäœäžãããã§ãããã«ãŒãåŠçãæ¡ä»¶åå²ããžãã¯ãå®è£ ã«èŠããå Žåã ã
å 容ãé£ããã®ã ããããããæ€èšŒã®éšåãåçã«ãããšãããããããšãšæããfor ã«ãŒãã®äžã«assertãæžããšãããããã£ãããšã¯ã§ããã ãé¿ããã¹ãã ããåçŽãªå Žåã¯è¯ããšããããšãèšã£ãŠããã®ã ãšæãã
12.4.4ããã¹ãã€ã³ãã©ã¹ãã©ã¯ãã£ãŒãå®çŸ©ãã
ãã®ãããªã©ã€ãã©ãªãŒã¯ãèšå€§ãªæ°ãå©çšã§ãããããçµç¹å ã§ã®ã©ã€ãã©ãªãŒæšæºåãããªãã¹ãæ©ããã€å šéšçœ²ã§èµ·ããã¹ãã ã
ããã¯é£ãã話ã§ã¯ãªãããã¹ãã©ã€ãã©ãªãŒã決ãããããå šäœã§äœ¿ãããšèšã話ã ã
12.5ãçµè«
ãŠããããã¹ãã¯ããœãããŠã§ã¢ãšã³ãžãã¢ã«ãšã£ãŠäºæãã¬å€æŽã«çŽé¢ããªãããé·æçã«ã·ã¹ãã ãåäœãç¶ããããšãæ ä¿ããããã®æã匷åãªããŒã«ã§ããã
é·ãã·ã¹ãã ãéçšããŠå€æŽãç¶ããããã«å¿ é ãªãã®ãšããŠãŠããããã¹ããæããŠããã®ãé¢çœãã
ãããŠããŠããããã¹ããããå æžã«äœ¿ãããšã§ã§ããããå¯èœæ§ã®ããã·ã¹ãã ã¯ãä¿å®ãšå€æŽã«ãããæéãå¢ããã«ãããããããåœè©²ã·ã¹ãã ã®ä¿¡é Œãå®éã«åäžããäºã¯ãªãã
12.6ãèŠçŽ
- å€åããªããã¹ããç®æãã
- å ¬éAPIçµç±ã§ãã¹ãããã
- çžäºäœçšã§ã¯ãªããç¶æ ããã¹ãããã
- ãã¹ããå®å šãã€ç°¡æœã«ããã
- ã¡ãœããã§ã¯ãªããæåããã¹ãããã
- æåã«éç¹ã眮ããŠããã¹ããæ§æããã
- ãã¹ã察象ã®æžéæ¥ãªãã§ãã¹ãã«åœåããã
- ãã¹ãã«ããžãã¯ãå ¥ãããªã
- æ確ãªå€±æã¡ãã»ãŒãžãããã
- ãã¹ãçšã³ãŒããå ±æããå ŽåãDRYããDAMPã«åŸãã
è¯ããŸãšããDRYããDAMPã¯ããã¹ãçšã³ãŒããå ±æããå ŽåããšèŠçŽã«ã¯ãããæ¬æäžã§ãåãããšãèšã£ãŠããã®ã ããããæ°ãä»ããªãã£ãããã ããã®éãã ãšã¯æãã
ãããã«ã12ç« ãèªãã§ã
ä»ãããæžããŠããã®ã¯12æ29æ¥(æ¥)ãã ãã12æäžæ¬å ¥ãé ã«ã¯èªã¿çµãã£ãŠãããäžæ¹ã§æ°ã«ãªã£ãç®æã®ãŸãšãã¯éäžã ããŸãšãã¯12æ30æ¥(æ)çµãã£ãã®ã§ããã£ãšèªã¿çµãã£ãã
å°è±¡ã«æ®ã£ãŠããç¹ãšããŠã¯æ¬¡ã
- DAMP (Descriptive And Meaningful Phrases) ãšããèšèãåããŠç¥ã£ãã
- èããã¹ããšäžæ確ãªãã¹ããé¿ãããèããã¹ã â åœéœæ§ (false positive)ã®ãããã¹ãã§ãå ¬éAPIçµç±ã®ãã¹ããšããããšã§é²ããæ確=å®å š+ç°¡æœãå®å š=èªç«ãç°¡æœ=å¿ èŠæå°é
次ã®èªæžã¯åŒãç¶ããã¹ããæ±ã£ã13ç« ããã¹ãããã«ããèªãããšæãã