ã³ãŒãã®å質ãšéçºäžã®ã³ãŒãå質ãåäžãããèœåã¯ã補åã®å šäœçãªããã©ãŒãã³ã¹ãä¿å®æ§ãä¿¡é Œæ§ã«å€§ãã圱é¿ããŸããé«å質ã®ã³ãŒãã«ããããã°ãå°ãªããªããã¹ã±ãŒã©ããªãã£ãåäžããä¿å®ã容æã«ãªããéçºãè¿ éåãããŸããéçã³ãŒã ã¢ãã©ã€ã¶ãŒã¯å€§ããªã¡ãªããã§ãã
éçã³ãŒãåæããŒã«ã¯ãéçºããŒã å šäœã§ã³ãŒãã£ã³ã° ã¬ã€ãã©ã€ã³ãããã°ã©ãã³ã°èšèªã®ã¬ãã¥ãŒãæšæºã宿œããäžè²«æ§ãšæŽåæ§ã®ããã³ãŒãããŒã¹ã確ä¿ããã®ã«åœ¹ç«ã¡ãŸããæåã³ãŒã ã¬ãã¥ãŒäžã«èŠèœãšãããå¯èœæ§ã®ããåé¡ãç¹å®ããŠä¿®æ£ããã®ã«åœ¹ç«ã¡ãæçµçã«ã¯ãœãããŠã§ã¢ã®å šäœçãªå質ãåäžããŸãã
çç·Žããéçºè ã§ãã£ãŠãããœãããŠã§ã¢ ãšã³ãžãã¢ãªã³ã°ã®äžçã®åå¿è ã§ãã£ãŠããéçåæãçè§£ããããšã¯ãæ©èœçã§å ç¢ãã€å®å šãªã³ãŒããäœæããããã«äžå¯æ¬ ã§ããã»ãã¥ãªã㣠ããŒã ã¯ããã«äŸåããŠããŸãã
éçè§£æãšã¯äœã§ãã?
éçåæ (éçã³ãŒãåæãšãåŒã°ãã) ã¯ãã³ãŒããå®è¡ããã«ã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ãèšèšäžã®æ¬ é¥ãæ€æ»ãããããã°æ¹æ³ã§ãããã®ããã»ã¹ã¯ãã³ãŒãæ§é ã®çè§£ã«åœ¹ç«ã¡ãæ¥çæšæºãžã®æºæ ãä¿èšŒããŸãããœãããŠã§ã¢éçºããŒã ãšå質ä¿èšŒããŒã ã«ãã£ãŠå©çšãããèªååããŒã«ãããã°ã©ããŒãæ¯æŽããŠããã¹ãŠã®ãããžã§ã¯ã ã³ãŒããã¹ãã£ã³ããŠè匱æ§ãæ€åºããã³ãŒããæ€èšŒããŸããéçåæã¯ãããã°ã©ãã³ã° ãšã©ãŒãã³ãŒãã£ã³ã°æšæºéåãæªå®çŸ©å€ãæ§æãšã©ãŒãã»ãã¥ãªãã£ã®è匱æ§ã广çã«ç¹å®ããŸãããŸããäžè¬çãªãœãããŠã§ã¢ã®è匱æ§ã§ãããããã¡ãŒ ãªãŒããŒãããŒã«ã€ãªããå¯èœæ§ã®ãã匱ç¹ã«ã察åŠããŸãã
ãœãããŠã§ã¢ ãšã³ãžãã¢ã¯ãã¢ããªã±ãŒã·ã§ã³ãããã©ãŒãã³ã¹ãå質ãã»ãã¥ãªãã£ã®ãã³ãããŒã¯ãæºãããŠããããšã確èªããããã«ãã¢ããªã±ãŒã·ã§ã³ãæ€èšŒããå¿ èŠããããŸãããœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã« (SDLC) ã®åŸåã§ãã¹ããè¡ããšãéçšäžã«ãšã©ãŒãçºçããããšããããããŸããSDLC ã®æ©ã段éã§èªåãã¹ããå®è£ ãããšãéçºè ã¯éçºäžã«ã³ãŒãã®å質ãã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãããã®æ¹æ³ã«ãããé«å質ã®ã³ãŒããããè¿ éã«å±éã§ããåºç¯å²ã«ããããã©ãã«ã·ã¥ãŒãã£ã³ã°ã®å¿ èŠæ§ãæžããŸãã
SMART TS XL ãã€ãããã¯ã§ã éçã³ãŒãè§£æããŒã«ãœãããŠã§ã¢ãå®è¡ããã«ã³ãŒãããŒã¹ã培åºçã«ç²Ÿæ»ããŸããé«åºŠãªã¢ã«ãŽãªãºã ã䜿çšããŠã³ãŒãã®æ§æãæ§é ãã»ãã³ãã£ã¯ã¹ãåæããæœåšçãªãã°ãã³ãŒãã£ã³ã°ã®éå¹çæ§ãç¹å®ããŸãã
éçè§£æææ³
éçè§£æã«ã¯ãéçãœãŒã¹ ã³ãŒãã®æœåšçãªè匱æ§ã調ã¹ãããã®ããŸããŸãªææ³ãå«ãŸããŸãããããã®ææ³ã¯ãå€ãã®å Žåãã³ã³ãã€ã© ãã¯ãããžããæŽŸçãããã®ã§ãã
ããŒã¿ãããŒåæ ãœãããŠã§ã¢å ã®ããŒã¿ãéçãªãšãã«ããã®ããŒã¿ã«é¢ããå®è¡ææ å ±ãåéããŸããäž»ãªçšèªã¯æ¬¡ã®ãšããã§ãã
- åºæ¬ãããã¯: åäžã®ãšã³ã㪠ãã€ã³ããšçµäºãã€ã³ããæã€äžé£ã®åœä»€ã
- å¶åŸ¡ãããŒåæ: ããŒã¿ã®æµãã調ã¹ãŸãã
- å¶åŸ¡ãããŒãã¹: ããŒã¿ã®ãã¹ã
PHP ã®åºæ¬ãããã¯ã®äŸ:
å¶åŸ¡ãããŒã°ã©ã (CFG) ããŒã (åºæ¬ãããã¯) ãšæåãšããž (ãã¹) ã䜿çšããŠãœãããŠã§ã¢ã衚ããŸãããšã³ã㪠ãããã¯ã«ã¯çµäºãšããžã®ã¿ããããçµäºãããã¯ã«ã¯ãšã³ã㪠ãšããžã®ã¿ããããŸãã
å¶åŸ¡ãããŒã°ã©ãã®äŸ
ããŒã1 åºå£ãšããžã®ã¿ãæã€å ¥å£ãããã¯ã§ãã
ããŒã6 å ¥å£ãšããžã®ã¿ãæã€åºå£ãããã¯ã§ãã
ããŒã2 ã¹ã€ããã¹ããŒãã¡ã³ãã¯ã ããŒã3, ããŒã4ãŸã㯠ããŒã5.
ããŒã3, ããŒã4, ããŒã5 ããããã ããŒã6.
æ±æåæ ãŠãŒã¶ãŒå ¥åã«ãã£ãŠæ±æããã倿°ãèå¥ããè匱ãªé¢æ° (ã·ã³ã¯) ãŸã§è¿œè·¡ããŸãããµãã¿ã€ãºãããŠããªãæ±æããã倿°ãã·ã³ã¯ã«å°éãããšãè匱æ§ãšããŠãã©ã°ãä»ããããŸãã
åå¥è§£æ ãœãŒã¹ ã³ãŒããããŒã¯ã³ã«å€æããã³ãŒããæœè±¡åããŠæäœããããããŸãã
äºåã«ããŒã¯ã³åããã PHP ãœãŒã¹ã³ãŒãã®äŸ:
ããŒã¯ã³åãããåŸã® PHP ãœãŒã¹ã³ãŒãã®äŸ:
åçè§£æãšã¯äœã§ãã? éçè§£æãšã®æ¯èŒã¯ã©ãã§ãã?
åçåæ:
åçåæã§ã¯ãããã°ã©ã ãå®è¡ããŠè©äŸ¡ããŸãããã®ã¿ã€ãã®åæã§ã¯ãã¡ã¢ãªäœ¿çšéãããã©ãŒãã³ã¹ãæœåšçãªå®è¡æãšã©ãŒãªã©ãå®è¡æã®åäœããã§ãã¯ããŸããã¡ã¢ãª ãªãŒã¯ãåæå®è¡ã®åé¡ãäžæ£ãªããã°ã©ã åºåãªã©ãã³ãŒãã®å®è¡æã«ã®ã¿çºçããåé¡ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
éçè§£æ:
äžæ¹ãéçè§£æã§ã¯ãã³ãŒããå®è¡ããã«æ€æ»ããŸãããã®æ¹æ³ã¯ãã³ãŒãã®æ§é ãå¶åŸ¡ãããŒãããŒã¿ã®äœ¿çšç¶æ³ãè§£æããããšã§ãæ§æãšã©ãŒãã³ãŒãæšæºéåãæœåšçãªã»ãã¥ãªãã£ã®è匱æ§ãæ€åºããããšã«éç¹ã眮ããŠããŸãã
æ¯èŒïŒ
å®è¡ïŒ åçåæã«ã¯ã³ãŒãã®å®è¡ãå¿ èŠã§ãããéçåæã¯å¿ èŠãããŸããã
åé¡ã®æ€åº: åçåæã¯å®è¡æã®åé¡ãèŠã€ããéçåæã¯ã³ãŒãæ§é ãšããžãã¯ã®åé¡ãæ€åºããŸãã
ã¿ã€ãã³ã°ïŒ åçåæã¯éçºäžãŸãã¯éçºåŸã«å®è¡ãããéçåæã¯éåžžéçºäžã«å®è¡ãããŸãã
é©çšç¯å²ïŒ éçè§£æã¯ãã¹ãŠã®ã³ãŒããã¹ãã«ããŒã§ããŸãããåçè§£æã¯å®è¡ããããã¹ã®ã¿ãã«ããŒããŸãã
äž¡æ¹ã®æ¹æ³ã䜵çšããããšã§ããœãããŠã§ã¢ã®åé¡ãç¹å®ããŠè§£æ±ºããããã®å æ¬çãªã¢ãããŒããæäŸãããå šäœçãªã³ãŒãã®å質ãšã»ãã¥ãªãã£ãåäžããŸãã
éçè§£æã®éç
éçºè ã¯ãå€ãã®å Žåãäžè¯ã³ãŒããæè¡çè² åµã®è§£æ±ºã«å€ãã®æéãè²»ãããŸããéçåæã¯ãéçºããã»ã¹ã®æ©ã段éã§åé¡ãç¹å®ããããšã§ããã®æéãççž®ããã®ã«åœ¹ç«ã€è²ŽéãªããŒã«ã§ãã
ã¯ãŒã¯ãããŒã®æŽæ°:
IDE ãæåã®ãã« ãªã¯ãšã¹ããªã©ã®æ©ã段éã§éçåæãçµã¿èŸŒããšãSDLC ãæ¬çªç°å¢ã§åŸããåé¡ã«å¯ŸåŠããå Žåã«æ¯ã¹ãŠãã³ã¹ãå¹çãé«ããæéã®ç¯çŽã«ãªããŸããå€§èŠæš¡ãªçµç¹ã§ã¯ãæåããéçåæãäžè²«ããŠé©çšã§ããããã«ãããŒã éã§èª¿æŽããå¿ èŠããããŸãã
äºææ§ã®åé¡:
æ°ããéçè§£æããŒã«ãå°å ¥ããå Žåããããã®ããŒã«ãæ¢åã®ã¯ãŒã¯ãããŒãšã·ãŒã ã¬ã¹ã«çµ±åãããããšãéèŠã§ããéçºè ã¯ãäžæãã³ã³ããã¹ãã®åãæ¿ããæå°éã«æããããã«ãIDEãGit ããã¯ãã³ãŒã ã¬ãã¥ãŒ ãã©ãããã©ãŒã ãªã©ã®çŸåšã®äœæ¥ç°å¢å ã§çµæãšãã£ãŒãããã¯ã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸãã
é床äœäžã®åé¿:
éçã¢ãã©ã€ã¶ãŒã¯ã誀ã£ãŠæ§æãããŠãããšãããŸããŸãªåé¡ãæ€åºããŠäžèŠãªé害ãåŒãèµ·ããå¯èœæ§ããããŸãããããã®ããŒã«ã CI/CD ãã€ãã©ã€ã³ã«çµ±åããå¿ èŠãªãšãã«éèŠãªãã« ãªã¯ãšã¹ãã®ã¿ããããã¯ããããã«æ§æãããšãé床äœäžãé²ãããšãã§ããŸããã€ãŸããéçã¢ãã©ã€ã¶ãŒããã¹ãŠã®å°ããªåé¡ã§ã¯ãªããé倧ãªã»ãã¥ãªãã£è匱æ§ãªã©ã®é倧ãªãšã©ãŒãæ€åºãããšãã«ã®ã¿ãã« ãªã¯ãšã¹ãããããã¯ããããšã«ãªããŸãã
éçã³ãŒãåæã®ä»çµã¿ãçè§£ãã
éçè§£æã¯ãœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«ã®éèŠãªãã§ãŒãºã§ãããå®è¡ããã«ãœãŒã¹ ã³ãŒããè©³çŽ°ã«æ€æ»ããŠãœââãããŠã§ã¢ ã·ã¹ãã ã®ãªã¹ã¯ãç¹å®ããŸãããã®ããã»ã¹ã¯ã³ãŒã ã¹ãã£ã³ããå§ãŸããŸãããã®ããã»ã¹ã§ã¯ããªã³ã¿ãŒãã¢ãã©ã€ã¶ãŒãã³ã³ãã€ã©ãªã©ã®å°çšããŒã«ãã³ãŒãããŒã¹ãè©³çŽ°ã«æ€æ»ããæœåšçãªãšã©ãŒããã°ãã³ãŒãã£ã³ã°æšæºãžã®éæºæ ããªãã確èªããŸãããããã®ããŒã«ã¯éçºç°å¢ã«çµ±åãããŠããããšãå€ããã«ãŒã«ã»ãããšã¢ã«ãŽãªãºã ã䜿çšããŠã³ãŒãã®å質ãšãã¹ã ãã©ã¯ãã£ã¹ãžã®æºæ ãè©äŸ¡ããŸãã
泚ç®ãã¹ãããŒã«ã®äžã€ã¯ã SMART TS XLã¯ãå æ¬çãªåææ©èœãç¹åŸŽã§ããã³ãŒãã®å質ãåäžãããããã«ããªã³ã¿ãŒãã¢ãã©ã€ã¶ãŒãã³ã³ãã€ã©ãçµã¿åãã㊠TypeScript ã³ãŒãã粟æ»ããŸãã SMART TS XL ã³ãŒãã£ã³ã°ã®åé¡ãæœåšçãªãã°ãè匱æ§ããã©ã°ä»ãããã³ãŒãã®ä¿¡é Œæ§ãšä¿å®æ§ã確ä¿ããŸããåé¡ãç¹å®ããã ãã§ãªããèŠã€ãã£ãåé¡ã詳现ã«èª¬æããå æ¬çãªã¬ããŒããçæããå¹ççãªãããã°ãšè§£æ±ºãä¿é²ããŸãã
èªååãããéçè§£æã«ã¯ãããã€ãã®å©ç¹ããããŸãããŸããåé¡ã®æ€åºãå€§å¹ ã«å éãããéçºããã»ã¹ã®æ©ã段éã§ãšã©ãŒãæ€åºããããšã§éçºå¹çãåäžããŸããããã«ããããžã§ã¯ãå šäœã§ã³ãŒãå質è©äŸ¡ã®äžè²«æ§ã確ä¿ãããæåã®ã³ãŒãã¬ãã¥ãŒã«åºæã®äººçãšã©ãŒã軜æžãããŸãããã®äžè²«æ§ã«ããããœãããŠã§ã¢ã®ä¿¡é Œæ§ãšå ç¢æ§ãåäžããå±éåŸã®åé¡ãçºçããå¯èœæ§ãæžããŸãã
éçã³ãŒãåæã¯ããœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«ã®ããŸããŸãªæ®µéã§å®è¡ãããŸããçæ³çã«ã¯ãéçºè ãã³ãŒããèšè¿°ãŸãã¯å€æŽããã³ãŒãã£ã³ã° ãã§ãŒãºã§éå§ããŸãããããããŒãžã§ã³ ã³ã³ãããŒã« ã·ã¹ãã ã«çµ±åãããšãã³ãŒã ã³ãããäžã«ç¶ç¶çãªåæãä¿èšŒãããŸããããã«ãããããã«ã ããã»ã¹ã®äžéšã«ããããšã§ãæ¬ é¥ã®ããã³ãŒãããœãããŠã§ã¢ ã·ã¹ãã ã«çµ±åãããã®ãé²ãããšãã§ããŸããå±éåŸã宿çã«åæãè¡ãããšã§ãã³ãŒãã®å質ãç¶æããé²åãããœãããŠã§ã¢ ã·ã¹ãã ã®åé¡ãç¹å®ã§ããŸãã
çµè«ãšããŠãéçè§£æã¯ãœãããŠã§ã¢éçºããã»ã¹ã®éèŠãªèŠçŽ ã§ãããªã³ã¿ãŒãã¢ãã©ã€ã¶ãŒãã³ã³ãã€ã©ãªã©ã®ããŒã«ã掻çšããããšã§ã SMART TS XLã¯ãã³ãŒãã®ç²Ÿæ»ãèªååããéçºã©ã€ããµã€ã¯ã«å šäœã«ããã£ãŠã¹ããŒããäžè²«æ§ãã³ãŒãå質ã®åäžãå®çŸããŸãã
éçè§£æããŒã«ã®å©ç¹ã¯äœã§ãã?
ãœãããŠã§ã¢éçºã«ãããéçåæã«ã¯ããããžã§ã¯ãã®å šäœçãªå質ãã»ãã¥ãªãã£ãã³ã¹ãå¹çã«å€§ããªåœ±é¿ãäžããããã€ãã®å ·äœçãªå©ç¹ããããŸãã
ãã¹ããã©ã¯ãã£ã¹ã®æšé²: éçè§£æããŒã«ã¯ãéæšå¥šã®ã³ãŒããã³ãŒãã®èãããã©ã°ä»ãããéçºè ããã¹ã ãã©ã¯ãã£ã¹ã«åŸãããã«ä¿ããŸãããã®ã¬ã€ãã³ã¹ã¯ãã³ãŒãã®å šäœçãªå質ãšä¿å®æ§ã®åäžã«åœ¹ç«ã¡ãŸãã
ã»ãã¥ãªãã£åé¡ã®è»œæž: éçåæããŒã«ã¯ãèåŒ±ãªæå·åã¢ã«ãŽãªãºã ãå®å šã§ãªãã³ãŒãã£ã³ã°æ¹æ³ãªã©ãéçºããã»ã¹ã®æ©ã段éã§ã»ãã¥ãªãã£ã®è匱æ§ãæ€åºããŸãããã®æ©ææ€åºã«ãããã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªã»ãã¥ãªãã£äœå¶ãæ¹åãããå±éåŸã«ã»ãã¥ãªã㣠ã€ã³ã·ãã³ããçºçããã®ãé²ãããšãã§ããŸãã
ã³ãŒãå質ã®åäž: éçè§£æã®çµæãé·æã«ããã£ãŠç£èŠããã³è¿œè·¡ããããšã§ãçµç¹ã¯å®¢èгçãªææšã«ç §ãããŠã³ãŒãããŒã¹ã®åè³ªãæž¬å®ã§ããŸãããã®ç¶ç¶çãªè§£æã«ãããæ¹åãã¹ãé åãæããã«ãªãããžã¥ãã¢éçºè ãããè¯ãã³ãŒãã£ã³ã°ææ³ãç¿åŸããããŒã ã¡ã³ããŒå šå¡ã«è¯ãç¿æ £ã匷åãããŸãã
ã³ãŒãã£ã³ã°ã¬ã€ãã©ã€ã³ã®æœè¡: ãããã®ããŒã«ã¯ãçµç¹ããã¹ãŠã®ãããžã§ã¯ãã§äžè²«ããã³ãŒãã£ã³ã°ã¬ã€ãã©ã€ã³ã宿œããã®ã«åœ¹ç«ã¡ãŸããç¹å®ã®éå æ¬çãªåèªã®äœ¿çšãé²ããäžè²«ããåœåèŠåã確ä¿ããã³ãŒãã®è€éãããã§ãã¯ããããšãã§ããããããã¹ãŠãé«å質ã®ã³ãŒãããŒã¹ã®ç¶æã«è²¢ç®ããŸãã
éçè§£æã®æ¹æ³
çµç¹ãã³ãŒãã®å質ãšã»ãã¥ãªãã£ã確ä¿ããããã«å©çšã§ããéçåæã®æ¹æ³ãããã€ããããŸããåæ¹æ³ã¯ã³ãŒãã®ããŸããŸãªåŽé¢ã«çŠç¹ãåœãŠãŠãããçµã¿åãããŠäœ¿çšââããããšã§å æ¬çãªåæãè¡ãããšãã§ããŸãã
å¶åŸ¡åæ:
ããã»ã¹ã颿°ãã¡ãœããããµãã«ãŒãã³ãªã©ã®åŒã³åºãæ§é å ã®å¶åŸ¡ãããŒã«çŠç¹ãåœãŠãŸãã
ããŒã¿è§£æïŒ
å®çŸ©ãããããŒã¿ãæ£ãã䜿çšãããããŒã¿ ãªããžã§ã¯ããé©åã«åäœããããšã確èªããŸãã
é害/æ éåæ:
ã¢ãã« ã³ã³ããŒãã³ãã®éå®³ãšæ éãåæããŸãã
ã€ã³ã¿ãŒãã§ãŒã¹åæ:
ã·ãã¥ã¬ãŒã·ã§ã³ãæ€èšŒããŠãã³ãŒãã®äºææ§ãšã€ã³ã¿ãŒãã§ãŒã¹ãã¢ãã«ãšã·ãã¥ã¬ãŒã·ã§ã³ã«é©åããŠããããšã確èªããŸãã
éçè§£æã®å¹ åºãã«ããŽãª:
圢åŒåæ: ã³ãŒããæ£ãããã©ããã確èªããŸãã
åç²§ååæ: ã³ãŒããã¹ã¿ã€ã«æšæºã«æºæ ããŠããããšã確èªããŸãã
ãã¶ã€ã³ããããã£: ã³ãŒãã®è€éãã調ã¹ãŸãã
ãšã©ãŒãã§ãã¯: ã³ãŒãéåãæ¢ããŸãã
äºæž¬åæ: ã³ãŒããå®è¡ããããšãã«ã©ã®ããã«åäœããããè©äŸ¡ããŸãã
éçè§£æã®éç
éçè§£æããŒã«ã¯ãã³ãŒãã®æœåšçãªè匱æ§ãç¹å®ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãããããã€ãã®é倧ãªå¶éãšèª²é¡ããããŸãããããã®å¶éãçè§£ããããšã¯ãéçè§£æãéçºããã»ã¹ã«å¹æçã«çµ±åããããã«äžå¯æ¬ ã§ãã
æ€åºã®èª²é¡:
- è€éãªè匱æ§ïŒèªèšŒã®æ¬ é¥ãã¢ã¯ã»ã¹å¶åŸ¡ã®åé¡ãæå·ã®èª€çšãªã©ïŒãç¹å®ããããšãå°é£ã§ãã
- çŸåšã®ããŒã«ã§ã¯ãã»ãã¥ãªãã£äžã®æ¬ é¥ã®ããäžéšããèªåçã«æ€åºãããŸããã
åœéœæ§ïŒ
- ããŒã«ã¯ãè匱æ§ã®ãªãã³ãŒããè匱æ§ãšããŠãã©ã°ä»ãããããšããããããŸãã
- ããŒã¿ ãããŒã®è¿œè·¡ãäžå®å šãªãããã¯ããŒãºã ãœãŒã¹ ã³ã³ããŒãã³ããŸãã¯å€éšã·ã¹ãã ãšå¯Ÿè©±ããã¢ããªã±ãŒã·ã§ã³ã§ããçºçããŸãã
åœé°æ§:
- ç¹ã«å€éšã³ã³ããŒãã³ãã®æ°ããè匱æ§ã®å ŽåãããŒã«ã¯å®éã®è匱æ§ãèŠéãå¯èœæ§ããããŸãã
- ã©ã³ã¿ã€ã ç°å¢ã®å®å šãªæ§æã«é¢ããç¥èã®æ¬ åŠã
ã³ã³ãã€ã«ã®åé¡:
ã©ã€ãã©ãªã®äžè¶³ãäžå®å šãªåœä»€ããŸãã¯ã³ãŒãã®æ¬ èœã«ããã³ã³ãã€ã«ã§ããªãã³ãŒãã®åæãå°é£ã§ãã
æ§æã®åé¡:
ã³ãŒãã«è¡šãããŠããªãæ§æã®åé¡ãæ€åºã§ããªãããšããããããŸãã
ããŸããŸãªéçã³ãŒãè§£æããŒã«ã®æ©èœãçè§£ãã
éçã³ãŒãåæããŒã«ã¯ããœãŒã¹ ã³ãŒããå®è¡ããã«ç²Ÿæ»ããããšã§ãåææ®µéã§å質ãåäžãããäžã§éèŠãªåœ¹å²ãæãããŸããéçåæããŒã«ã¯ãJavaãC/C++ãPython ãªã©ã®ããã°ã©ãã³ã°èšèªã®è匱æ§ããã°ãã³ãŒãã£ã³ã°æšæºãžã®æºæ ãæ€æ»ããŸããããã«ããããœãããŠã§ã¢ã®å質ãåäžããŸãã
åéçã³ãŒã ã¢ãã©ã€ã¶ãŒã¯ããã¿ãŒã³ ãããã³ã°ãããŒã¿ ãããŒåæããããŒåæãªã©ã®ç¬èªã®æ©èœãæäŸããŸãããã¿ãŒã³ ãããã³ã°ã¯ç¹å®ã®ã³ãŒãæ§é ãèå¥ããããŒã¿ ãããŒåæã¯ã³ãŒãå ã®å€æ°ã®å€ã远跡ããŠãåæåãããŠããªã倿°ããªãœãŒã¹ ãªãŒã¯ãªã©ã®æœåšçãªåé¡ãæããã«ããŸãããããŒåæã¯ãããã°ã©ã ãããŒãšããžãã¯ã«é¢é£ããæ¬ é¥ãæ£ç¢ºã«ç¹å®ããŸãã
ããŒã«ã¯ãéçºè ãã»ãã¥ãªãã£ã®æã穎ããŠããã ãã¹ããæœåšçãªãã°ãã³ãŒãã£ã³ã°ã®ãã¹ã ãã©ã¯ãã£ã¹ã®éåãç¹å®ããã®ã«åœ¹ç«ã¡ãŸããããã«ãããéçºè ã¯è匱æ§ãä¿®æ£ã§ããŸãã
åé¡ãæ©æã«æ€åºããããšã§ãè匱æ§ãäºåã«è§£æ±ºãããããã°æéãççž®ããã³ãŒãå šäœã®ä¿¡é Œæ§ãé«ããã®ã«åœ¹ç«ã¡ãŸãããã ãããããã®ããŒã«ã¯èª€æ€ç¥ãçæããããè€éãªã©ã³ã¿ã€ã é¢é£ã®åé¡ãèŠéãããããå¯èœæ§ããããããå æ¬çãªã³ãŒãè©äŸ¡ãšã»ãã¥ãªãã£ä¿èšŒã®ããã«äººéã®ä»å ¥ãå¿ èŠã«ãªãããããããã®ããŒã«ã®éçãçè§£ããããšãéèŠã§ãã
ããã°ã©ãã³ã°èšèªã®ãµããŒã
ããã°ã©ãã³ã°èšèªãµããŒããšã¯ãç¹å®ã®æ©èœããã©ãã€ã ã容æã«ããèšèªã®æ©èœãæããŸããããã«ã¯ãéçºè ãç¹å®ã®èšèªã®ã³ãŒããäœæã管çãæé©åããã®ã«åœ¹ç«ã€ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãããŒã«ãå«ãŸããŸãã
éçã³ãŒãåæãžã®ã¢ãããŒãã¯ãèšèªã®æ§æãã»ãã³ãã£ã¯ã¹ãæ§é ã«ãã£ãŠç°ãªããŸãã FindBugs ã Checkstyle ãªã©ã® Java çšããŒã«ã¯ãªããžã§ã¯ãæåã®ååã«éç¹ã眮ããŠããŸãããPylint ã Flake8 ãªã©ã® Python ããŒã«ã¯èªã¿ããããšé¢æ°åããã°ã©ãã³ã°ãéèŠããŠããŸãã JavaScript ã® ESLint ã JSHint ã¯ããã©ãŠã¶ã®äºææ§ãšéåæã³ãŒãã£ã³ã°ã®å®è·µãéèŠããŠããŸãã ãããã®ããŒã«ã¯ããšã©ãŒãã¹ã¿ã€ã«éåãæ€åºããéçºäžã®ã³ãŒãã®å質ãåäžãããŸãã
åæææ³
éçè§£æããŒã«ã¯ãããŸããŸãªè§£æææ³ãå©çšããŠãã³ãŒããå®è¡ããã«æ€æ»ããŸãã䜿çšããã 2 ã€ã®åºæ¬çãªææ³ã¯ãåå¥è§£æãšãããŒè§£æã§ãã
åå¥è§£æã«ã¯ããŒã¯ã³åãå«ãŸããã³ãŒããããŒã¯ãŒããèå¥åãæŒç®åããªãã©ã«ãªã©ã®å°ããªåäœ (ããŒã¯ã³) ã«åå²ããŸãããã®ææ³ã¯ãæ§æãã§ãã¯ãã¹ãã«ãã¹ã誀ã£ãèšèªäœ¿çšãªã©ã®ãšã©ãŒã®ç¹å®ã«åœ¹ç«ã¡ãŸãã
å¶åŸ¡ãããŒåæã¯ãããã°ã©ã å®è¡ã®ãããŒãçè§£ããããšã«éç¹ã眮ããŠããŸããããŒã¿ãšå¶åŸ¡æ§é ãã©ã®ããã«çžäºäœçšããããè©äŸ¡ãããããã³ãŒããç¡éã«ãŒããå°éäžèœãªã»ã°ã¡ã³ããªã©ã®æœåšçãªåé¡ãç¹å®ããŸãã
ãããã®ææ³ã¯ãã³ãŒãæ§é ã®å æ¬çãªæ€æ»ãå¯èœã«ããããšã§ãåé¡ã®æ€åºã«å€§ããè²¢ç®ããŸãã åå¥è§£æã¯æ§æãšã©ãŒãæ£ç¢ºã«ç¹å®ããã³ãŒããèšèªã«ãŒã«ã«æºæ ããŠããããšã確èªããŸãã å¶åŸ¡ãããŒè§£æã¯ãããã°ã©ã ã®åäœãããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ã®ããè«çãšã©ãŒãšéå¹çæ§ãç¹å®ããŸãã ãããã®ææ³ã¯ãå®è¡ããã«ã³ãŒãã粟æ»ããããšã§ãæœåšçãªãã°ãã»ãã¥ãªãã£ã®è匱æ§ãæé©åã®æ©äŒãäºåã«ææããã³ãŒãã®ä¿¡é Œæ§ãã»ãã¥ãªãã£ãå¹çæ§ãé«ããŸãã
ã«ãŒã«ãšã³ãŒãã£ã³ã°æšæº
ã«ãŒã«ãšã³ãŒãã£ã³ã°æšæºã¯ãå質ãšäžè²«æ§ã確ä¿ããããšã§ãéçåæã«ãããŠæ¥µããŠéèŠãªåœ¹å²ãæãããŸãããããã¯ãéçºè ãæœåšçãªãã°ãä¿å®æ§ã®åé¡ãæ€åºããèªã¿ããããåäžãããããã®ã¬ã€ãã©ã€ã³ãæäŸããŸããå®çŸ©æžã¿ã®ã«ãŒã«ã¯åºç€ãšããŠæ©èœããéçºè ã¯ãããã«ã¹ã¿ãã€ãºããŠããããžã§ã¯ãã®ä»æ§ã«åãããŠãããã©ãŒãã³ã¹ã®æé©åãšéçºã®åçåãå³ãããšãã§ããŸãã
ã«ã¹ã¿ãã€ãºæ§
éçè§£æããŒã«ã¯ãå¹ åºãã«ã¹ã¿ãã€ãº ãªãã·ã§ã³ãæäŸããŸããéçºè ã¯ãç¹å®ã®ã³ãŒãã£ã³ã°æšæºã察象ã«ããããç¹å®ã®ã«ãŒã«ãç¡èŠããããç¹å®ã®æžå¿µé åã«çŠç¹ãåœãŠããããããã«èšå®ã調æŽã§ããŸãã
ãããã®ããŒã«ãã«ã¹ã¿ãã€ãºããã«ã¯ããããå€ãã«ãŒã«ã®éå€§åºŠã®æ§æãããã«ã¯ã«ã¹ã¿ã ã«ãŒã«ã®çµ±åãå«ãŸããåæããããžã§ã¯ãåºæã®èŠæ±ã«åãããŠèª¿æŽããå¹çãšç²ŸåºŠãåäžãããŸãã
çµ±åãšèªåå
éçã³ãŒãåæãçµ±åãããšãéçºã®æ©ã段éã§ãã°ãè匱æ§ãã³ãŒãã£ã³ã°ã®äžäžèŽãç¹å®ããŠå質ãåäžããŸããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ ãã€ãã©ã€ã³å ã§ãã®ããã»ã¹ãèªååãããšãã³ãŒãã®ã³ããããŸãã¯ããŒãžäžã«äžè²«ãããã§ãã¯ã確å®ã«è¡ãããŸããESLintãSonarQubeãCodeClimate ãªã©ã®ããŒã«ã CI ããŒã« (JenkinsãTravis CI ãªã©) ã®ãã©ã°ã€ã³ãšããŠæ§æããŠãã³ãããåãŸãã¯ããŒãžåã«å®è¡ããå±éåã«ã³ãŒããå®çŸ©æžã¿ã®æšæºãæºãããŠããããšã確èªã§ããŸãã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãšã¬ããŒã
éçè§£æããŒã«ã¯éåžžãã³ãŒã ã¡ããªãã¯ãè§£æçµæãåé¡ã®è©³çŽ°ãæ§é åããã圢åŒã§è¡šç€ºããã°ã©ãã£ã«ã« ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ (GUI) ãæäŸããŸããæ€åºãããè匱æ§ãã³ãŒãã£ã³ã° ãšã©ãŒãæšæºãžã®æºæ ã匷調ããå æ¬çãªã¬ããŒãã衚瀺ããŸãã
ãããã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãã³ãŒãããã²ãŒã·ã§ã³ãšã³ã³ããã¹ãæ å ±ãéããŠè©³çŽ°ãªæŽå¯ãæäŸããéçºè ãåé¡ãå¹ççã«ç¹å®ããŠè¿ éã«è§£æ±ºããã®ã«åœ¹ç«ã¡ãŸãã
ããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£
å€§èŠæš¡ãããžã§ã¯ãã§éçè§£æããŒã«ã䜿çšããå Žåãããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ãéèŠã§ããå¹çãé«ããã«ã¯ãè§£æã®ç¯å²ãéèŠãªãã£ã¬ã¯ããªãŸãã¯ãã¡ã€ã«ã«å¶éããŸãããã£ãã·ã¥ ã¡ã«ããºã ãå©çšããŠãåè§£æã®ãªãŒããŒããããåæžããŸãã䞊ååŠçã«åæ£è§£æãæ¡çšããããŒããŠã§ã¢ ãªãœãŒã¹ãæé©åããããŒã«åºæã®æ§æãæ€èšããŠããã©ãŒãã³ã¹ãåäžãããŸãã
éçè§£æããŒã«ãšãã¬ãŒã ã¯ãŒã¯
éçè§£æããŒã«ã¯ãã³ãŒãã®åé¡ãæ€åºããå質ãåäžãããããã«éçºã«åœ¹ç«ã¡ãŸãã SMART TS XL TypeScript ã«éç¹ã眮ããŠãããåã®å®å šæ§ãã³ãŒã ã¹ã¿ã€ã«ãæœåšçãªãã°ã«é¢ããå æ¬çãªåæãæäŸããŸããSonarQube ã¯å€çšéã§ãè€æ°ã®èšèªããµããŒãããåºç¯ãªã³ãŒã ã«ãã¬ããžãæäŸããæè¡çè² åµãšã³ãŒãã®å質ã管çããããã®ããã·ã¥ããŒããæäŸããŸãã
ESLint 㯠JavaScript åãã«ã«ã¹ã¿ãã€ãºãããŠãããæ§æãšã©ãŒã®ç¹å®ãæšæºã®é©çšãã³ãŒãã®äžè²«æ§ã®ä¿é²ã«åœ¹ç«ã¡ãŸããPylint 㯠Python ã«ç¹åããŠãããã³ãŒãã®ãã°ãæ€æ»ããã³ãŒãã£ã³ã°èŠåãé©çšããPEP 8 ã¬ã€ãã©ã€ã³ã«æºæ ããŠããããšã確èªããŸãã
é©åãªããŒã«ã®éžæã¯ãèšèªã®äºææ§ããããžã§ã¯ãã®è€éããããã³ç¹å®ã®èŠä»¶ã«ãã£ãŠç°ãªããŸããããŒã«ã®èšèªãµããŒããçµ±åã®å®¹æããå©çšå¯èœãªã«ãŒã«ã»ãããããã³ã³ãã¥ãã㣠ãµããŒããè©äŸ¡ããŸãããããžã§ã¯ãã®èŠæš¡ãããŒã ã®å°éç¥èãããã³éçºç®æšãèæ ®ããŠãã ããã
ããŒã«ãã»ããã¢ããããã«ã¯ãå¿ èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããã«ãŒã«ã»ãããæ§æããéçºã¯ãŒã¯ãããŒã«çµ±åããå¿ èŠããããŸããæç¢ºãªæšæºãå®çŸ©ãããããžã§ã¯ãã®ããŒãºã«åãããŠã«ãŒã«ãã«ã¹ã¿ãã€ãºããæ°ããæ©èœããã°ä¿®æ£ã®ã¡ãªããã享åã§ããããã«ããŒã«ã宿çã«æŽæ°ããŸãã
广çã«æ§æããã«ã¯ãããŒã ãšé£æºããŠãå šå¡ãããŒã«ã®ç®çãšã«ãŒã«ãçè§£ã§ããããã«ããŸããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ ããŒã«ã䜿çšããŠãã«ãäžã®åæãèªååãã宿çãªã³ãŒã ã¬ãã¥ãŒã確ç«ããŠããã©ã°ãä»ããããåé¡ã«è¿ éã«å¯ŸåŠããŸãããã£ãŒãããã¯ãšé²åãããããžã§ã¯ãèŠä»¶ã«åºã¥ããŠãæ§æã宿çã«åŸ®èª¿æŽããŸãã
ãšã³ãžãã¢ãçµç¹ã¯ãã€éçè§£æã䜿çšãã¹ãã§ãããã?
éçºè ã¯ãäž»ã«ã³ãŒãã®ãã©ãŒãããã«éç¹ã眮ããã³ãŒãã£ã³ã°æšæºã匷å¶ããããã« IDE èšå®ã䜿çšããããšããããããŸãããã ãããã®æ¹æ³ã§ã¯ã»ãã¥ãªãã£ããã¹ã ãã©ã¯ãã£ã¹ã¯èæ ®ããããIDE æ§æãç°ãªããšçµç¹å šäœã®æšæºåã劚ããããå¯èœæ§ããããŸããéçåæã¯ãããã©ãŒãã³ã¹ã®åé¡ãšã»ãã¥ãªãã£ã®è匱æ§ã®äž¡æ¹ã«ã€ããŠã³ãŒããå æ¬çã«ã¬ãã¥ãŒããããšã§ããããã®å¶éã軜æžããŸããã³ãŒãããŒã¹å šäœãã¹ãã£ã³ããŠã³ãŒãã£ã³ã° ã¬ã€ãã©ã€ã³ã«æºæ ããŠããããšã確èªããæœåšçãªãªã¹ã¯ãç¹å®ããããšã§ãé«å質ã§å®å šãªãœãããŠã§ã¢ãç¶æããããã®ããå ç¢ãªãœãªã¥ãŒã·ã§ã³ã«ãªããŸãã
SDLC ã®ã·ããã¬ãã: éçåæã IDEãGit ããã¯ãCI/CD ãã€ãã©ã€ã³ãšçµ±åãããšãåé¡ã®ããã³ãŒããæ©æã«ãããã¯ããã®ã«åœ¹ç«ã¡ãŸããããã«ãããã³ãŒããæ¬çªç°å¢ã«å°éããåã«ã»ãã¥ãªãã£ãšå質ã®åºæºãé©çšãããåŸã§ã³ã¹ãã®ãããä¿®æ£ãåé¿ã§ããŸãã
åé¡ã®æ©ææ€åº: éçè§£æã§ã¯ãããã°ã©ã ãå®è¡ããã«æœåšçãªåé¡ãç¹å®ããæå°éã®èšå®ã§æžã¿ãŸããããã«ãããéçºããã»ã¹ã®æ©ã段éã§åé¡ãæ€åºã§ãããããåŸã§æéãšåŽåãå€§å¹ ã«ç¯çŽã§ããŸãã
ããŸããŸãªåé¡ã®æ€åº: éçè§£æããŒã«ã¯ãã³ãŒã ã¹ã¿ã€ã«ãåœåèŠåã®éåãã»ãã¥ãªãã£ã®è匱æ§ããšã©ãŒãçºçããããã³ãŒããªã©ãå¹ åºãåé¡ãæ€åºã§ããŸãããã®å¹ åºãã«ãã¬ããžã«ãããããŸããŸãªçš®é¡ã®æœåšçãªåé¡ã«å¯ŸåŠã§ããŸãã
è€æ°ã®èšèªããµããŒã: éçè§£æããŒã«ã¯ããã¹ãŠã®äž»èŠãªããã°ã©ãã³ã°èšèªãšãTerraform ã Puppet ãªã©ã®ã€ã³ãã©ã¹ãã©ã¯ã㣠ã¢ãº ã³ãŒã (IaC) èšèªã§å©çšã§ããŸãããã®ãµããŒãã«ãããSRE ã¯ãããã€ã¡ã³ãåã«æ§æãã¹ãã»ãã¥ãªãã£ã®è匱æ§ãæ€åºã§ãããããéçºè ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£æ§æã«æ³šæãæãããšãã§ããŸããDevSecOps ã®å®è£ : éçºã©ã€ããµã€ã¯ã«ã®æ©ã段éã§ã³ãŒããã¹ãã£ã³ããããšã§ãéçåæã¯ã»ãã¥ãªã㣠ã«ãŒã«ãé©çšããå®å šã§ãªãã³ãŒããæ¬çªç°å¢ã«å°éããã®ãé²ãã®ã«åœ¹ç«ã¡ãŸãããã®ããã¢ã¯ãã£ããªã¢ãããŒãã«ãããããŒã 㯠SQL ã€ã³ãžã§ã¯ã·ã§ã³ã®è匱æ§ãå®å šã§ãªãã©ã€ãã©ãªäŸåé¢ä¿ãããŒãã³ãŒããããã·ãŒã¯ã¬ãããªã©ã®åé¡ããåé¡ã«ãªãåã«ç¹å®ããŠä¿®æ£ã§ããŸãã
éçè§£æããŒã«ã®éžã³æ¹
éçåæã¯éçºã«ãããŠéèŠãªããŒã«ã§ããããã°ã®æ©ææ€åºãå質ã®åäžãã»ãã¥ãªãã£ã®åŒ·åãå®çŸããŸããå®è¡ããã«ã³ãŒããæ€æ»ããããšã§ããšã©ãŒãæ€åºããã»ãã¥ãªã㣠ãªã¹ã¯ãæœåšçãªè匱æ§ãã³ãŒãã£ã³ã°ã®éå¹çæ§ãç¹å®ã§ããŸããéçåæãæ¡çšãããšãéçºãå¹çåãããä¿¡é Œæ§ãåäžãããããã°ã®åŽåãæå°éã«æããããå ç¢ã§å®å šãªãœãããŠã§ã¢è£œåãä¿èšŒãããŸãã
IN-COMãã©ã®ããã«åœ¹ç«ã€ã
ã³ãŒãã®å質ã¯éçºã«ãããŠæãéèŠã§ãããå¹çæ§ãšä¿¡é Œæ§ã«åœ±é¿ããŸããéçè§£æããŒã«ã¯ãã³ãŒãã®å質ãåäžãããã»ãã¥ãªãã£ã®è匱æ§ãç¹å®ããéçºãµã€ã¯ã«ã®æ©ã段éã§åé¡ãæ€åºããŠå質ã確ä¿ããäžã§éèŠãªåœ¹å²ãæãããŸãã SMART TS XL é«åºŠã§ç¿åŸããããéçã³ãŒãåæããŒã«ãæäŸããããšã§ãéçºããŒã ã«éç«ã£ãŠããŸãã
éçåææ©èœãè€éãªã³ãŒãã®åé¡ãã»ãã¥ãªãã£ã®è匱æ§ãããã©ãŒãã³ã¹ã®åé¡ã®ç¹å®ãªã©ã¯ãã»ãã®äžäŸã§ãããã®åŒ·åãªæ©èœã«ãããéçºè ã¯æ¥çæšæºãšãã¹ã ãã©ã¯ãã£ã¹ã«æºæ ããªããã³ãŒãã匷åã§ããŸãã
SMART TS XLã®å æ¬çãªéçã³ãŒãåæããŒã«ã¯ãã¯ãªãŒã³ãã€ä¿å®å¯èœã§æé©åãããã³ãŒãããŒã¹ã®ç¶æããœãããŠã§ã¢å質ã®åäžããããã°æéã®ççž®ããããŠæçµçã«ã¯ä¿¡é Œæ§ãšå¹çæ§ãåäžããã¢ããªã±ãŒã·ã§ã³ã®æäŸãæ¯æŽããéçºããŒã ã®æåã«å€§ããè²¢ç®ããŸãã