éçè§£æ éçºã«ãããŠããœãŒã¹ ã³ãŒãããã®ä»ã®ãœãããŠã§ã¢ææç©ãå®è¡ããã«æ€æ»ããããã«äœ¿çšãããæ¹æ³ã§ããããã¯ãã³ãŒãå ã®æœåšçãªè匱æ§ããã°ããŸãã¯ã¹ã¿ã€ã«äžã®åé¡ãç¹å®ããã³ãŒãåæã®åœ¢åŒã§ããéçåæã¯ãå°çšã®ããŒã«ã䜿çšããŠå®è¡ãããŸãããããã®ããŒã«ã¯ãã³ãŒãã®æ§é ãäŸåé¢ä¿ãããã³ãã®ä»ã®ç¹æ§ãåæããŠãå質ãšã»ãã¥ãªãã£ã«é¢ããæŽå¯ãæäŸããŸãã
éçè§£æã¯ãéçºè ãéçºã©ã€ããµã€ã¯ã«ã®æ©ã段éã§åé¡ãæ€åºããŠä¿®æ£ããã®ãæ¯æŽããããšã§ãéçºã«ãããŠéèŠãªåœ¹å²ãæãããŸããå®è¡åã«åé¡ãç¹å®ããããšã§ããããã®ããŒã«ã¯æçµè£œåã«ãããã³ã¹ãã®ããããšã©ãŒãè匱æ§ãé²ãããšãã§ããŸããããã«ããããœãããŠã§ã¢ã®å šäœçãªå質ãåäžããã ãã§ãªãããã¹ããšãããã°ã«å¿ èŠãªæéãšåŽåãåæžãããŸãã
éçåæã¯ãããŸããŸãªããã°ã©ãã³ã°èšèªããã¬ãŒã ã¯ãŒã¯ã䜿çšããŠè€éãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã仿¥ã®éçºç°å¢ã§ã¯ç¹ã«éèŠã§ããéçºè ã¯ãããã®ããŒã«ã®å©ããåããŠãã³ãŒããå¿ èŠãªæšæºãæºãããäžè¬çãªèœãšã穎ããªããããã©ãŒãã³ã¹ãšä¿å®æ§ãæé©åãããŠããããšã確èªã§ããŸãã
éçãœãŒã¹ã³ãŒãè§£æã®åºç€ãçè§£ãã
éçè§£æãšã¯ãã³ã³ãã¥ãŒã¿ ãœãããŠã§ã¢ãå®éã«å®è¡ããã«è§£æããããã»ã¹ã§ãã
ãœãŒã¹ ã³ãŒãã®ã³ã³ããã¹ãã§ã¯ãéçåæã¯éåžžãœãŒã¹ ã³ãŒãåæãšåŒã°ããã³ã³ãã€ã©ãŸãã¯ãã®ç®çã®ããã«ç¹å¥ã«èšèšãããããŒã«ã«ãã£ãŠå®è¡ã§ããŸãã
éçè§£æããŒã«ã¯ãå®è¡åã«ããã°ã©ã å ã®ãšã©ãŒãèŠã€ããããã«äœ¿çšãããŸããããã°ã©ã ãã³ã³ãã€ã«ãŸãã¯å®è¡ããããŸã§æ€åºãããªããã°ãã»ãã¥ãªãã£ã®è匱æ§ããã®ä»ã®åé¡ãèŠã€ããããšãã§ããŸããäžéšã®éçè§£æããŒã«ã¯ãå®è¡æã«ã¯ã©ãã·ã¥ãæéã®ãããåé¡ãåŒãèµ·ããå¯èœæ§ã®ããæœåšçãªåé¡ãæ€åºã§ããŸãã
éçåæãšåçãã¹ã:
åçãã¹ã ãœãããŠã§ã¢ã¯ãWeb ãµã€ããã¢ããªã®ãã¹ã ããã»ã¹ãèªååããéèŠãªæ¹æ³ã§ããããã¯ããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ãã·ãã¥ã¬ãŒãããããšã§å®çŸããŸãã
éçåæããã¹ã ããã»ã¹ã®éèŠãªéšåã§ããããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ãã·ãã¥ã¬ãŒããããã®ã§ã¯ãããŸããã代ããã«ã補åã®ã³ãŒããŸãã¯èšèšã®ãšã©ãŒãæ¢ããŸãã
培åºçã«ãã¹ããã補åã«ååšããå¯èœæ§ã®ãããã¹ãŠã®ãšã©ãŒãèŠã€ããã«ã¯ãåçåæãšéçåæã®äž¡æ¹ãè¡ãããšãéèŠã§ãã
éçè§£æã®äž»èŠåå
éçåæãã³ãŒãæ€æ»ããã¿ãŒã³ ãããã³ã°ã¯ãç¹ã«ã³ãŒãã®å質ãšã»ãã¥ãªãã£ã確ä¿ããããã«ããœãããŠã§ã¢éçºã«ãããŠéèŠãªããã»ã¹ã§ãã
éçåæã§ã¯ãéçã³ãŒãåæããŒã«ã䜿çšããŠããœãŒã¹ ã³ãŒããå®è¡ããã«èª¿æ»ãããã°ãè匱æ§ãã³ãŒãã®èããèŠã€ããŸããäž»ãªååã¯æ¬¡ã®ãšããã§ãã
- å¶åŸ¡ãããŒãšããŒã¿ãããŒåæãããã®ææ³ã¯ãããã°ã©ã å ã§ããŒã¿ãã©ã®ããã«æµããããå¶åŸ¡æ§é (ã«ãŒããæ¡ä»¶æãªã©) ãå®è¡ãã¹ã«ã©ã®ããã«åœ±é¿ããããåæããŸããããã«ãããããã ã³ãŒããåæåãããåã«äœ¿çšãããŠãã倿°ãªã©ã®æœåšçãªåé¡ãç¹å®ã§ããŸãã
- æœè±¡çè§£é: ããã¯ãããã°ã©ã ã®åäœãè¿äŒŒããããã«äœ¿çšãããæ£åŒãªæ¹æ³ã§ããã³ãŒã ãã¹ãåæããŠãå®è¡æãšã©ãŒãã»ãã¥ãªã㣠ã®ã£ããã®å¯èœæ§ãæ€åºããŸãã
- ã»ãã³ãã£ãã¯åæ: ããã«ã¯ãã³ãŒãã®æå³ãçè§£ããã³ãŒãã£ã³ã°æšæºã«æºæ ããŠãããã©ããã確èªããæœåšçãªè«çãšã©ãŒãç¹å®ããããšãå«ãŸããŸãã
äžæ¹ãã³ãŒãæ€æ»ã§ã¯ãéçºè ãã³ãŒããæåã§ç¢ºèªããèªååããŒã«ãèŠéãå¯èœæ§ã®ããåé¡ãèŠã€ããŸããã³ãŒãæ€æ»ã§ã¯ãèªã¿ããããä¿å®æ§ããã¹ã ãã©ã¯ãã£ã¹ã®éµå®ã«éç¹ã眮ãããŸãã
ãã¿ãŒã³ãããã³ã°ã¯ãéçè§£æã§ã³ãŒãå ã®ç¹å®ã®ãã¿ãŒã³ãèŠã€ããããã«äœ¿çšããããã1ã€ã®ææ³ã§ãã è匱æ§ã瀺ã ã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ã®åé¡ã«åœ±é¿ããŸãã
ãããã®ååãšææ³ãçµã¿åãããããšã§ãã³ãŒãã®å質ãåäžãããã»ãã¥ãªãã£ã匷åããéçºããã»ã¹ãåçåããããšãã§ããŸãã
éçºè ãšã»ãã¥ãªãã£ããŒã ã«ãšã£ãŠã®äž»ãªã¡ãªãã
- æéãç¯çŽãã â éçåæã¯ãä»ã®çš®é¡ã®ãã¹ããããè¿ éãã€å°ãªãåŽåã§å®è¡ã§ããŸãããã®æ¹æ³ã§ã¯ããšã©ãŒããã°ãæå®³ãåŒãèµ·ããåã«çºèŠãããŸãã
- 詳现ãªåæ â éçãœãŒã¹ã³ãŒãåæã®æãéèŠãªå©ç¹ã® 1 ã€ã¯ããã®æ·±ãã§ãããã¹ãäžã«ããã°ã©ã ã®äžéšãå®è¡ãããªãå Žåã§ããéçåæã«ãã£ãŠãã®éšåã®ãã°ãèŠã€ãããŸãã
- é«ç²ŸåºŠ â éçã³ãŒãåæããŒã«ã¯ã人çºçãªãšã©ãŒãªãã§ã³ãŒããã¬ãã¥ãŒããéåžžã«æ£ç¢ºãªæ¹æ³ãæäŸããŸãããããã®éçã³ãŒãåæããŒã«ã¯ 100% æ£ç¢ºã§ã¯ãããŸãããããšã©ãŒãæ£ç¢ºã«æ€åºããŸãã
- é«ãè²»çšå¯Ÿå¹æ â éçã³ãŒãåæã¯ãéçºè ã®æéãç¯çŽãããœãŒã¹ã³ãŒãã®æåã¬ãã¥ãŒã«é¢é£ããã³ã¹ãã®ããããšã©ãŒãåæžãããšãã 2 ã€ã®æ¹æ³ã§ã³ã¹ããç¯çŽããŸãã
IN-COM ããŒã¿ã·ã¹ãã
In-Com Data ãéçã³ãŒãè§£æãœãªã¥ãŒã·ã§ã³ã«ã©ã®ããã«åœ¹ç«ã€ã
IN-COM Data ã¯ãããŸããŸãªããã°ã©ãã³ã°èšèªãéçºç°å¢ã«åãããŠã«ã¹ã¿ãã€ãºãããéçã³ãŒãåæãœãªã¥ãŒã·ã§ã³ãæäŸããŠããŸããéçã³ãŒãåæããŒã«ã¯ãéçºè ãããŒã ãã³ãŒãã®å質ãåäžããããã°ãæ€åºããã³ãŒãã£ã³ã°æšæºã«æºæ ã§ããããã«èšèšãããŠããŸãã
SMARTTS XL (IN-COM Data 瀟補) éçã³ãŒãè§£æçš:
SMARTTS XL ã¯ãé«åºŠãªæ©èœãæäŸããããšã§éçã³ãŒãåæã匷åããŸãã詳现ãªåæãã³ãŒãæ€æ»ããã¿ãŒã³ ãããã³ã°ãªã©ãã³ãŒããåæããã³æ¹åããããã®å æ¬çãªããŒã« ã¹ã€ãŒããæäŸããŸãã
SMARTTS XL ã¯å¹ åºãããã°ã©ãã³ã°èšèªããµããŒãããäžè¬çãªéçºç°å¢ã CI/CD ãã€ãã©ã€ã³ãšã·ãŒã ã¬ã¹ã«çµ±åããŸããã«ã¹ã¿ãã€ãºå¯èœãªã«ãŒã«ã»ããã詳现ãªã¬ããŒããå®çšçãªæŽå¯ãæäŸããéçºè ãåé¡ãå¹ççã«ç¹å®ããŠä¿®æ£ããã®ã«åœ¹ç«ã¡ãŸããSMARTTS XL ã䜿çšãããšãããŒã ã¯ã³ãŒãã®å質ãåäžãããã»ãã¥ãªãã£ã匷åããéçºãåçåããŠãæçµçã«é«å質ã®ãœãããŠã§ã¢ãããæ©ãæäŸã§ããŸãã
éçºã¯ãŒã¯ãããŒãžã®éçè§£æã®çµ±å
ãŸããéçºã®æ©ã段éã§ãã°ãã»ãã¥ãªãã£ã®åé¡ãæ€åºããåŸã§ãããã°ããããã«å¿ èŠãªæéãšåŽåãåæžããã®ã«åœ¹ç«ã¡ãŸãã
2 çªç®ã«ãã³ãŒãã£ã³ã°æšæºãšãã¹ã ãã©ã¯ãã£ã¹ã®éµå®ãä¿é²ããå šäœçãªã³ãŒãå質ãåäžãããŸãã
3 çªç®ã«ãã³ãŒãã®åè³ªãšæœåšçãªåé¡ã«é¢ããäžè²«ãããã£ãŒãããã¯ãæäŸããããšã§ãããŒã ã¡ã³ããŒéã®ã³ã©ãã¬ãŒã·ã§ã³ã匷åããŸããæåŸã«ãããã CI/CD ãã€ãã©ã€ã³ã«çµ±åããããšã§ããã»ã¹ãèªååããããã«ãããšã«ã³ãŒããäžè²«ããŠå¹ççã«åæãããããã«ãªããé«å質ã®ãœãããŠã§ã¢ãããè¿ éã«æäŸã§ããããã«ãªããŸãã
éçåæã SDLC ã«çµã¿èŸŒãããã®ãã¹ã ãã©ã¯ãã£ã¹:
ã³ãŒãã®å質ãšã»ãã¥ãªãã£ã確ä¿ããã«ã¯ããœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã« (SDLC) ã«åæãçµã¿èŸŒãããšãéèŠã§ããèæ ®ãã¹ããã¹ã ãã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãã
- æ©ãå§ããªãã: éçºã®æåããéçåæãçµ±åããŠãåé¡ãæ©æã«çºèŠããŸãã
- è€æ°ã®ããŒã«ã䜿çšãã: ããŸããŸãªèšèªãç®çã«åãããŠéçã³ãŒã ããŒã«ãçµã¿åãããŠäœ¿çšââããã«ãã¬ããžãæå€§åããŸãã
- Automate: åæã CI/CD ãã€ãã©ã€ã³ã«çµ±åããŠããã«ãããšã«åæããã»ã¹ãèªååããŸãã
- åçè§£æãšçµã¿åãããéçåæãšåçåæã䜵çšããŠããäºãã®é·æãšçæãè£å®ããŸãã
- ã«ãŒã«ã»ãããã«ã¹ã¿ãã€ãºãã: ãããžã§ã¯ãã®ç¹å®ã®èŠä»¶ãšã³ãŒãã£ã³ã°æšæºã«åãããŠããŒã«ã®ã«ãŒã«ã»ãããã«ã¹ã¿ãã€ãºããŸãã
- ããŒã«ã宿çã«æŽæ°ãã: ææ°ã®è匱æ§ãåé¡ãæ€åºã§ããããã«ãããŒã«ãææ°ã®ç¶æ ã«ä¿ã£ãŠãã ããã
- éçºè ãæè²ãã: åæçµæã广çã«è§£éããŠå¯ŸåŠããæ¹æ³ã«ã€ããŠéçºè ã«ãã¬ãŒãã³ã°ãæäŸããŸãã
ãããã®ãã¹ã ãã©ã¯ãã£ã¹ã«åŸãããšã§ããã®ãã¯ãããžã SDLC ã«å¹æçã«çµã¿èŸŒãããšãã§ããã³ãŒãã®å質ãåäžããã»ãã¥ãªãã£ã匷åãããŸãã
ããã»ã¹ãèªååããã³åçåã§ããããŒã«ãšãã¯ãããžãŒ:
ãã®çš®ã®åæã®ããã»ã¹ãèªååããã³åçåããã«ã¯ãããŸããŸãªããŒã«ãšãã¯ãããžãŒãå©çšã§ããŸãã
- éçåæããŒã«ãããã®ããŒã«ã¯ãœãŒã¹ ã³ãŒããèªåçã«ã¹ãã£ã³ããŠããã°ãè匱æ§ãã³ãŒãèãªã©ã®åé¡ãæ€åºããŸããäŸãšããŠã¯ãSonarQubeãCheckmarxãCoverity ãªã©ããããŸãã
- éçã¢ããªã±ãŒã·ã§ã³ ã»ãã¥ãªã㣠ãã¹ã (SAST)SAST ããŒã«ã¯ããœãŒã¹ ã³ãŒãã®è匱æ§ãç¹å®ããããšã«ç¹åããŠããŸããéçºããã»ã¹ã«çµ±åããŠãã³ãŒãã®ã»ãã¥ãªãã£ã確ä¿ã§ããŸãã
- éçè§£æçµ±å: ãœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã« (SDLC) ãš CI/CD ãã€ãã©ã€ã³ã«ã·ãŒã ã¬ã¹ã«çµ±åãããããŒã«ãããã«ããããã«ãããšã«ã³ãŒããäžè²«ããŠå¹ççã«åæãããŸãã
- å¶åŸ¡ãããŒåæ: ã³ãŒãå ã®å¶åŸ¡æ§é ãå®è¡ãã¹ã«ã©ã®ããã«åœ±é¿ããããåæããããã«äœ¿çšãããææ³ãããã¯ãããã ã³ãŒããæœåšçãªã»ãã¥ãªãã£ã®è匱æ§ãªã©ã®åé¡ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- ã³ãŒãã£ã³ã°ã«ãŒã«: ã³ãŒãã£ã³ã° ã«ãŒã«ãšã¬ã€ãã©ã€ã³ã確ç«ãããšããã¹ã ãã©ã¯ãã£ã¹ãšã³ãŒãã£ã³ã°æšæºãé©çšããããã»ã¹ãèªååã§ããŸãã
- æåã³ãŒãã¬ãã¥ãŒ: èªååãããŠããŸããããæåã®ã³ãŒãã¬ãã¥ãŒã¯äººéã®æŽå¯ãšå°éç¥èãæäŸããããšã§éçåæãè£å®ããŸãã
- Javaã³ãŒãFindBugs ã PMD ãªã©ãJava ã³ãŒãã®éçè§£æå°çšã®ããŒã«ãšãã¬ãŒã ã¯ãŒã¯ãååšããŸãã
ãããã®ããŒã«ãšãã¯ãããžãŒã掻çšããããšã§ãéçºããŒã ã¯éçåæããã»ã¹ãèªååããã³åçåã§ãããããæåã§ã®ã³ãŒãã¬ãã¥ãŒã¯äžèŠã«ãªããŸããããã«ãããSDLC å šäœã®ã³ãŒãå質ãšã»ãã¥ãªãã£ãåäžããŸãã
äžè¬çãªéçè§£æææ³
éçè§£ææè¡ã§ã¯ãã³ãŒããå®è¡ããã«æ€æ»ããŠããšã©ãŒãã»ãã¥ãªãã£ã®åé¡ãã³ãŒãå質ã®åé¡ãèŠã€ããŸãããã®ããã»ã¹ã«ããããã°ãç¹å®ããã³ãŒãã£ã³ã°æšæºããã®éžè±ãæ€åºããä¿å®æ§ãåäžãããããšãã§ããŸããéçè§£æããŒã«ã¯ãã³ãŒãã®æ§æãæ§é ãäŸåé¢ä¿ãåæããŠããã¹ã ãã©ã¯ãã£ã¹ã«æºæ ããŠããããšã確èªãããœãããŠã§ã¢ã®ä¿¡é Œæ§ãé«ããŸãã
ã³ãŒãã¹ã¿ã€ã«ãšèŠçŽã®ãã§ãã¯
ã³ãŒã ã¹ã¿ã€ã«ãšèŠå éçåæã§ã®ãã§ãã¯ã«ã¯ãã³ãŒããå®çŸ©æžã¿ã®ã¹ã¿ã€ã« ã¬ã€ãã©ã€ã³ãšã³ãŒãã£ã³ã°èŠåã«æºæ ããŠãããã©ããã®ç¢ºèªãå«ãŸããŸãããã®ããã»ã¹ã«ãããäžè²«æ§ãå¯èªæ§ãä¿å®æ§ã確ä¿ãããããŒã ããããžã§ã¯ãéã§çµ±äžãããã³ãŒã ã¹ã¿ã€ã«ãç¶æã§ããããã«ãªããŸãã
ã³ãŒãã®èããšã¢ã³ããã¿ãŒã³ã®æ€åº
ã³ãŒãã®èããã¢ã³ããã¿ãŒã³ã®æ€åºã«ã¯ãããæ·±å»ãªåé¡ã瀺ãå¯èœæ§ã®ããäžè¬çãªããã°ã©ãã³ã°ææ³ã®ç¹å®ãå«ãŸããŸããããã«ã¯ãé床ã«è€éãªã³ãŒããéè€ãäžé©åãªåœåèŠåããã®ä»ã®æœåšçãªåé¡ã®å åã®æ€åºãå«ãŸããŸãããããã®èãããã¿ãŒã³ã«æ©æã«å¯ŸåŠããããšã§ãå°æ¥ã®ãã°ãé²ããå šäœçãªã³ãŒãå質ãåäžãããããšãã§ããŸãã
è匱æ§ã®æ€åºïŒã»ãã¥ãªãã£äžã®æ¬ é¥ãã¡ã¢ãªãªãŒã¯ãªã©ïŒ
ãããã®ããŒã«ã䜿çšããèåŒ±æ§æ€åºã«ã¯ãSQL ã€ã³ãžã§ã¯ã·ã§ã³ãã¯ãã¹ãµã€ã ã¹ã¯ãªããã£ã³ã°ããããã¡ ãªãŒããŒãããŒãªã©ã®ã»ãã¥ãªãã£äžã®æ¬ é¥ããªããã³ãŒããã¹ãã£ã³ããããšãå«ãŸããŸããéçã³ãŒã ã¢ãã©ã€ã¶ãŒãšãåŒã°ãããããã®ããŒã«ã¯ãã³ãŒããå®è¡ããã«æ€æ»ããã¡ã¢ãª ãªãŒã¯ãªã©ã®æœåšçãªè匱æ§ãç¹å®ããŠä¿®æ£ãææ¡ããŸããéçºããã»ã¹ã®æ©ã段éã§ãããã®åé¡ãæ€åºããããšã§ãéçºè ã¯ãœãããŠã§ã¢ã®ã»ãã¥ãªãã£ãšå ç¢æ§ãåäžãããããšãã§ããŸãã
ããã©ãŒãã³ã¹æé©åã®ææ¡
éçºããŒã ã¯ãéçã¢ãã©ã€ã¶ãŒã掻çšããŠãœãããŠã§ã¢ã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãããããã®ããŒã«ã¯ãã³ãŒãã®æé©åãå®å šãªã³ãŒãã£ã³ã°æ¹æ³ã®æ¹åãã»ãã¥ãªãã£ã®è匱æ§ã®ç¹å®ã«é¢ããææ¡ãæäŸããŸãã
培åºããã³ãŒãã¬ãã¥ãŒã宿œãããããã®ããŒã«ã䜿çšããããšã§ãããŒã ã¯ã»ãã¥ãªãã£ãªã¹ã¯ã軜æžããã³ãŒãã£ã³ã°ãšã©ãŒã«å¯ŸåŠãããœãããŠã§ã¢å šäœã®å質ãåäžãããããšãã§ããŸããããã«ããããã®ããŒã«ã¯ããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããããã®ããŒã¿åæããµããŒãããããŒã ãã³ãŒãæé©åã«ã€ããŠæ å ±ã«åºã¥ããæ±ºå®ãäžããããã«ããŸãããã®ããã¢ã¯ãã£ããªã¢ãããŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ãåäžãããã ãã§ãªããããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããŸãã
ãããã課é¡ãå æãã:
äžè¬çãªèª²é¡ãå æããã«ã¯ãããã€ãã®éèŠãªåŽé¢ã«å¯ŸåŠããå¿ èŠããããŸãã誀æ€ç¥ (äžæ£ç¢ºã«ãã©ã°ãä»ããããåé¡) ã¯ãåæèšå®ã埮調æŽããã«ã¹ã¿ãã€ãºå¯èœãªã«ãŒã«ã»ãããæäŸããããŒã«ã䜿çšããããšã§è»œæžã§ããŸããåæçµæã®ç®¡çã«ã¯ãåé¡ã®åªå é äœä»ããšè¿œè·¡ãå«ãŸããéèŠãªåé¡ã«ã¯éããã«å¯ŸåŠããå¿ èŠããããŸãã
éçè§£æããŒã«ã®ããŒã å°å ¥ã¯ããã¬ãŒãã³ã°ãå©ç¹ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãããŒã«ãéçºãµã€ã¯ã«ã«ã·ãŒã ã¬ã¹ã«çµ±åããããšã§ç¢ºå®ã«å®çŸã§ããŸãããã®çµ±åã«ã¯ãå€ãã®å Žåãæ¢åã®ããŒã«ãã¯ãŒã¯ãããŒãšã®äºææ§ã䌎ããŸããããã㯠API ãŸãã¯ãã©ã°ã€ã³ãéããŠå®çŸã§ããŸãã
Python ãªã©ã®è€æ°ã®èšèªããã¬ãŒã ã¯ãŒã¯ãå«ãè€éãªã³ãŒããåçãªã³ãŒããåŠçããã«ã¯ããããã®æ©èœããµããŒãããå ç¢ãªéçã¢ãã©ã€ã¶ãŒãå¿ èŠã§ããã¬ã¬ã·ãŒ ã·ã¹ãã ãšã®çµ±åã¯å°é£ãªå ŽåããããŸãããäžäœäºææ§ãšå€ãã³ãŒãããŒã¹ãžã®ãµããŒããæäŸããããŒã«ã«ãã£ãŠå®¹æã«ãªããŸãã
éçè§£æããŒã«ã®ãªãŒããŒããããšãªãœãŒã¹æ¶è²»ã¯ãè§£ææ§æãæé©åããå¢åè§£æææ³ã掻çšããããšã§ç®¡çã§ããŸããããã«ãããå®å šãªã³ãŒããšã»ãã¥ãªã㣠ãªã¹ã¯ã®è»œæžã«ããã¡ãªããããªãœãŒã¹ ã³ã¹ããäžåãããšãä¿èšŒãããŸãã
å šäœãšããŠãéçè§£æã®å®è£ ãæåãããã«ã¯ãé©åãªããŒã«ãéžæããç¹å®ã®èª²é¡ã«å¯ŸåŠããããããéçºããã»ã¹ã«å¹æçã«çµ±åããããšãå¿ èŠã§ãã
代衚çãªéçè§£æããŒã«ãšãã®æ©èœ
å©çšå¯èœãªãããã¯ã©ã¹ã®éçè§£æããŒã«ã¯ããã€ããããããããã«ç¬èªã®æ©èœãšå©ç¹ããããŸããGCC ã Clang ãªã©ã®ã³ã³ãã€ã©ããŒã¹ã®è§£æããŒã«ã«ã¯ãã³ã³ãã€ã«æã«ç¹å®ã®çš®é¡ã®ãšã©ãŒãæ€åºã§ããçµã¿èŸŒã¿ã®éçè§£ææ©èœãããããœãããŠã§ã¢ã®å質ãšä¿¡é Œæ§ãåäžããŸãã
Coverity ã SonarQube ãªã©ã®ã¹ã¿ã³ãã¢ãã³ã®éçè§£æããŒã«ã¯ãã»ãã¥ãªãã£ã®è匱æ§ãã³ãŒãã£ã³ã° ãšã©ãŒãæœåšçãªããã©ãŒãã³ã¹ã®åé¡ãèŠã€ããããã®å æ¬çãªã³ãŒã ã¹ãã£ã³æ©èœãæäŸããŸãããããã®ããŒã«ãéçºããã»ã¹ã«çµ±åããŠãå®å šãªéçºææ³ã確ä¿ã§ããŸãã
Visual Studio çšã® ReSharper ã Python ã³ãŒãçšã® PyCharm ãªã©ã®çµ±åéçºç°å¢ (IDE) ãã©ã°ã€ã³ã¯ãIDE å ã§çŽæ¥ããªã¢ã«ã¿ã€ã ã®ã³ãŒãåæãšææ¡ãæäŸããŸããããã«ãããéçºè ã¯ã³ãŒããèšè¿°ããéã«åé¡ãç¹å®ããŠä¿®æ£ã§ããããããœãããŠã§ã¢ã®å質ãåäžããã»ãã¥ãªã㣠ãªã¹ã¯ã軜æžãããŸãã
CodeClimate ã Codacy ãªã©ã®ã¯ã©ãŠãããŒã¹ã®éçè§£æãµãŒãã¹ã¯ãè€æ°ã®èšèªã§ãããžã§ã¯ãã«åãçµãã§ããããŒã ã«ã¹ã±ãŒã©ãã«ãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãããããã®ãµãŒãã¹ã¯ãèªååãããã³ãŒãã¬ãã¥ãŒãšè§£æãæäŸããããŒã ãå®å šãªã³ãŒãã£ã³ã°ãã©ã¯ãã£ã¹ãç¶æããéçºãµã€ã¯ã«ãšãœãããŠã§ã¢ã·ã¹ãã ã®æ©ã段éã§æœåšçãªåé¡ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
ãããžã§ã¯ãçšã®éçè§£æããŒã«ãéžæãããšãã¯ãã³ãŒãããŒã¹ã§äœ¿çšãããŠããèšèªã察åŠããå¿ èŠãããå ·äœçãªåé¡ã®çš®é¡ (ã»ãã¥ãªãã£ã®è匱æ§ãããã©ãŒãã³ã¹ã®æé©åãªã©)ãæ¢åã®éçºããŒã«ãšã®çµ±åæ©èœãªã©ã®èŠçŽ ãèæ ®ããŠãã ãããå®å šã§å¹ççãªãœãããŠã§ã¢éçºã確å®ã«è¡ãã«ã¯ããããžã§ã¯ãã®ããŒãºã«åã£ãããŒã«ãéžæããŠãã ããã
ã±ãŒã¹ã¹ã¿ãã£: éçè§£æã®æåäºäŸ
éçè§£æã«ãããããŸããŸãªæ¥çã®ãœãããŠã§ã¢ ãããžã§ã¯ããå€§å¹ ã«æ¹åãããã»ãã¥ãªãã£ã®åŒ·åãã³ã¹ãã®åæžãéçºããã»ã¹ã®æ¹åã«ã€ãªãã£ãŠããŸãããã®åœ±é¿ã¯ã次㮠3 ã€ã®å®äŸã§æããã§ãã
- ãªãœãŒã¹ ãªãŒãGoogle ã®ãªãœãŒã¹ ãªãŒã ãããžã§ã¯ãã§ã¯ãåæãå©çšããŠãœãããŠã§ã¢ ãããžã§ã¯ãã«ãããéå¹ççãªãªãœãŒã¹äœ¿çšãç¹å®ããŸãããã³ãŒããšæ§æãã¡ã€ã«ãåæããããšã§ããããžã§ã¯ãã¯å€æ°ã®ããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããŠä¿®æ£ããå€§å¹ ãªã³ã¹ãåæžãšã¢ããªã±ãŒã·ã§ã³ ããã©ãŒãã³ã¹ã®åäžãå®çŸããŸããã
- Microsoft ã®ãã¯ã€ã ããã¯ã¹ ãã¹ã: Microsoft ã¯ãWindows ã®ãã¯ã€ã ããã¯ã¹ ãã¹ã ããã»ã¹ã®äžç°ãšããŠéçåæãæ¡çšããŠããŸããéçã³ãŒã ã¢ãã©ã€ã¶ãŒã䜿çšããããšã§ãMicrosoft 㯠Windows ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®è匱æ§ãç¹å®ããŠä¿®æ£ããã»ãã¥ãªãã£ãšä¿¡é Œæ§ã匷åããŸãã
- Facebook ã«ãããæ©æ¢°åŠç¿Facebook ã¯ãã³ãŒãã®å質ãšä¿¡é Œæ§ã確ä¿ããããã«ãæ©æ¢°åŠç¿ãããžã§ã¯ãã§åæã掻çšããŠããŸããå±éåã«ã³ãŒããåæããããšã§ãFacebook ã®éçºè ã¯æœåšçãªåé¡ãæ©æã«ç¹å®ããŠä¿®æ£ããããšãã§ãããã°ã®å¯èœæ§ãæžãããæ©æ¢°åŠç¿ã¢ãã«ã®å šäœçãªããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
ãããã®äŸã¯ãè匱æ§ãç¹å®ããŠä¿®æ£ããããã©ãŒãã³ã¹ãæé©åããå質ãåäžãããããšã§ããã®ãã¯ãããžã䜿çšããŠãœãããŠã§ã¢ ãããžã§ã¯ããæ¹åããæ¹æ³ã瀺ããŠããŸããåæãéçºããã»ã¹ã«çµ±åããããšã§ãçµç¹ã¯ã³ã¹ããåæžãããœãããŠã§ã¢ã®ä¿¡é Œæ§ãåäžããããŠãŒã¶ãŒã«åªãã補åãæäŸã§ããŸãã
ãŸãšãããšã
éçåæã¯ãœãããŠã§ã¢éçºã«ãããŠéèŠãªããŒã«ã§ãããéçºãµã€ã¯ã«ã®æ©ã段éã§åé¡ãç¹å®ããŠä¿®æ£ããããã®ããã¢ã¯ãã£ããªã¢ãããŒããæäŸããŸããåæããŒã«ã¯ãã³ãŒããå®è¡ããã«åæããããšã§ããªã¹ã¯ã軜æžããã³ãŒãã®å質ãåäžããããœãããŠã§ã¢å šäœã®ä¿¡é Œæ§ãé«ããã®ã«åœ¹ç«ã¡ãŸãããã®ãããªããŒã«ã¯ãã»ãã¥ãªãã£äžã®æ¬ é¥ãèŠã€ããäžè²«ããå€éšããã¥ã¡ã³ããæäŸããããšã§ããœãããŠã§ã¢ãä¿è·ããŸãã
åæãå°å ¥ãããšãè匱æ§ãã»ãã¥ãªãã£äžã®æ¬ é¥ãé倧ãªåé¡ã«ãªãåã«ç¹å®ã§ãããªã©ãããŸããŸãªã¡ãªãããåŸãããŸãããŸãããã®ãã¯ãããžãŒããµããŒãããããŒã«ã¯ã誀æ€ç¥ã®æ°ãæžããã®ã«ã圹ç«ã¡ãéçºè ãçã®åé¡ã«éäžããŠãé«å質ã®ã³ãŒããããå¹ççã«æäŸã§ããããã«ããŸãã
éçåæã®å®è£ ã®æåäŸã® 1 ã€ã«ãGoogle ã® Resource Leads ãããžã§ã¯ãããããŸãããã®ãããžã§ã¯ãã§ã¯ãéçåæã䜿çšããŠããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããŠä¿®æ£ããã³ã¹ãåæžãšã¢ããªã±ãŒã·ã§ã³ ããã©ãŒãã³ã¹ã®åäžãå®çŸããŸãããããã«ãSA ãã³ãŒã ã¬ãã¥ãŒ ããã»ã¹ã«çµ±åãããšãããŒã ãæœåšçãªåé¡ãæ©æã«ç¹å®ããŠå¯ŸåŠã§ããããã«ãªããã³ãŒãã®å質ãåäžããæ©èœå®å šæ§ãåäžããŸãã
ä»åŸããã®ãã¯ãããžãŒã®ãã¬ã³ãã¯ãè€éãªã³ãŒã ããŒã¹ãšè€æ°ã®èšèªãåŠçã§ãããããæŽç·ŽãããããŒã«ãžãšåãã£ãŠããŸãããããã®ããŒã«ã¯ãè匱æ§ã®ç¹å®ã誀æ€ç¥ã®åæžãè匱æ§ã®ä¿®æ£ã«ããå質ã®åäžããœãããŠã§ã¢ ã·ã¹ãã å šäœã®ä¿¡é Œæ§ã®ç¢ºä¿ãããé©åã«ãµããŒãããããã«é²åãç¶ããŸãã
çµè«ãšããŠãé«å質ã§å®å šãªã³ãŒãã®æäŸãç®æããœãããŠã§ã¢éçºããŒã ã«ãšã£ãŠãéçåæãæ¡çšããããšã¯éåžžã«éèŠã§ãããããã®ããŒã«ãšãã¹ã ãã©ã¯ãã£ã¹ã掻çšããããšã§ãããŒã ã¯ãªã¹ã¯ã軜æžããè匱æ§ãç¹å®ããå質ãšã»ãã¥ãªãã£ã®æ¥çæé«æ°ŽæºãæºãããœãããŠã§ã¢ãæäŸã§ããŸãã