å šäžçã®éçºè ãšãã¹ã¿ãŒã«åããå ç¢ãªãã°ç¹å®ã¹ãã«ãæ§ç¯ããããã®è©³çްã¬ã€ãããã¯ããã¯ãããŒã«ããã¹ããã©ã¯ãã£ã¹ãç¶²çŸ ã
ãã°ç¹å®ããã¹ã¿ãŒããïŒå šäžçã®ãœãããŠã§ã¢å°éå®¶ã®ããã®ç·åã¬ã€ã
ããŒã¹ã®éããœãããŠã§ã¢éçºã®äžçã«ãããŠããã°ãå¹ççã«ç¹å®ã解決ããèœåã¯éåžžã«éèŠãªã¹ãã«ã§ãããã°ã¯ãæ¬ é¥ããšã©ãŒãšããŠãç¥ããããããžã§ã¯ãã®èŠæš¡ãè€éãã«é¢ãããããœãããŠã§ã¢ã«ã¯ã€ããã®ã§ãããã°ç¹å®ããã¹ã¿ãŒããããšã¯ãåã«åé¡ãèŠã€ããããšã ãã§ã¯ãããŸãããæ ¹æ¬åå ãçè§£ããå°æ¥ã®åçºãé²ããæçµçã«é«å質ãªãœãããŠã§ã¢ãäžçäžã®ãŠãŒã¶ãŒã«å±ããããšãªã®ã§ãã
ãã°ç¹å®ã¹ãã«ãéèŠã§ããçç±
匷åãªãã°ç¹å®ã¹ãã«ã¯ãããã€ãã®çç±ã§äžå¯æ¬ ã§ãïŒ
- ãœãããŠã§ã¢å質ã®åäžïŒ éçºãµã€ã¯ã«ã®æ©ã段éã§ãã°ãç¹å®ãä¿®æ£ããããšã§ãããå®å®ãä¿¡é Œæ§ã®é«ããœãããŠã§ã¢ã«ã€ãªãããŸããããã¯ãããè¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšé¡§å®¢æºè¶³åºŠã®åäžã«çŽçµããŸãã
- éçºã³ã¹ãã®åæžïŒ éçºããã»ã¹ã®åŸåããããã¯ãªãªãŒã¹åŸã«ãã°ãä¿®æ£ããããšã¯ãæ©æã«å¯ŸåŠãããããã¯ããã«ã³ã¹ããããããŸããç©æ¥µçãªãã°ç¹å®ã¯ããããã®ã³ã¹ããæå°éã«æããã®ã«åœ¹ç«ã¡ãŸãã
- ã³ã©ãã¬ãŒã·ã§ã³ã®åŒ·åïŒ çç·Žãããã°ç¹å®ã¯ãéçºè ããã¹ã¿ãŒããã®ä»ã®ã¹ããŒã¯ãã«ããŒéã®ããè¯ãã³ãã¥ãã±ãŒã·ã§ã³ãä¿é²ããŸããæç¢ºã§ç°¡æœãªãã°å ±åã¯ãããè¿ éãªè§£æ±ºãå¯èœã«ããŸãã
- éçºãµã€ã¯ã«ã®é«éåïŒ ãã°ãè¿ éã«ç¹å®ã解決ããããšã§ãéçºããŒã ã¯å¢ããç¶æããããéãæ©èœãæäŸã§ããŸãã
- ã»ãã¥ãªãã£ã®åäžïŒ å€ãã®ã»ãã¥ãªãã£è匱æ§ã¯ãã³ãŒãå ã®æœåšçãªãã°ãåå ã§ãã广çãªãã°ç¹å®ã¯ããããã®ãªã¹ã¯ãç¹å®ãã軜æžããã®ã«åœ¹ç«ã¡ãŸãã
ãã°ã®ã©ã€ããµã€ã¯ã«ãçè§£ãã
å ·äœçãªãã¯ããã¯ã«å ¥ãåã«ãå žåçãªãã°ã®ã©ã€ããµã€ã¯ã«ãçè§£ããããšãéèŠã§ãïŒ
- æ··å ¥ïŒ ãã°ãã³ãŒãããŒã¹ã«æ··å ¥ããŸããéåžžã¯éçºäžãŸãã¯ä¿®æ£äžã«è¡ãããŸãã
- æ€åºïŒ ãã¹ããã³ãŒãã¬ãã¥ãŒããŸãã¯ãŠãŒã¶ãŒå ±åã«ãã£ãŠãã°ãæ€åºãããŸãã
- å ±åïŒ ãã°ãéçºããŒã ã«å ±åãããŸããéåžžã¯ãã°è¿œè·¡ã·ã¹ãã ãéããŠè¡ãããŸãã
- ããªã¢ãŒãžïŒ ãã°ãã¬ãã¥ãŒãããåªå é äœãä»ãããã解決ã®ããã«éçºè ã«å²ãåœãŠãããŸãã
- è§£æ±ºïŒ éçºè ããã°ãä¿®æ£ãããã®ä¿®æ£ãæ€èšŒããŸãã
- æ€èšŒïŒ ä¿®æ£ãå ã®åé¡ã解決ããæ°ããªåé¡ãåŒãèµ·ãããŠããªãããšããã¹ã¿ãŒãæ€èšŒããŸãã
- ã¯ããŒãºïŒ ãã°ã远跡ã·ã¹ãã ã§ã¯ããŒãºãããŸãã
å¿ é ã®ãã°ç¹å®ãã¯ããã¯
ããã§ã¯ããã°ç¹å®ã¹ãã«ãåäžãããã®ã«åœ¹ç«ã€ãããã€ãã®ã³ã¢ãã¯ããã¯ã玹ä»ããŸãïŒ
1. 培åºçãªãã¹ã
ãã¹ãã¯ãã°ç¹å®ã®åºç€ã§ãããœãããŠã§ã¢ã®ããŸããŸãªåŽé¢ãã«ããŒããããã«ã倿§ãªãã¹ãææ³ãçšããŸãããïŒ
- åäœãã¹ãïŒ ã³ãŒãã®åã ã®ã³ã³ããŒãã³ããã¢ãžã¥ãŒã«ãåé¢ããŠãã¹ãããŸããããã«ãããéçºããã»ã¹ã®æ©ã段éã§ãã°ãç¹å®ã§ããŸããJUnit (Java)ãpytest (Python)ãNUnit (.NET) ãªã©ã®ãã¬ãŒã ã¯ãŒã¯ãäžè¬çã«äœ¿çšãããŸãã
- çµ±åãã¹ãïŒ ç°ãªãã³ã³ããŒãã³ããã¢ãžã¥ãŒã«éã®çžäºäœçšããã¹ãããŸããããã¯ãããŒã¿ãããŒãéä¿¡ãäŸåé¢ä¿ã«é¢é£ãããã°ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- ã·ã¹ãã ãã¹ãïŒ ã·ã¹ãã å šäœããã¹ãããŸããããã«ããããã¹ãŠã®ã³ã³ããŒãã³ããæ£ãã飿ºããå šäœçãªèŠä»¶ãæºãããŠããããšã確èªããŸãã
- åãå ¥ããã¹ãïŒ ãšã³ããŠãŒã¶ãŒã®èŠç¹ããã·ã¹ãã ããã¹ãããŸããããã«ããããœãããŠã§ã¢ããŠãŒã¶ãŒã®ããŒãºãšæåŸ ãæºãããŠããããšãæ€èšŒããŸããããã¯ãŠãŒã¶ãŒåãå ¥ããã¹ãïŒUATïŒãšãåŒã°ããŸãã
- ãªã°ã¬ãã·ã§ã³ãã¹ãïŒ ã³ãŒã倿ŽåŸã«æ¢åã®ãã¹ããåå®è¡ããæ°ããªãã°ãæ··å ¥ããŠããªãããšã確èªããŸããããã¯ããœãããŠã§ã¢ã®å質ãé·æã«ããã£ãŠç¶æããããã«äžå¯æ¬ ã§ãã广çãªãªã°ã¬ãã·ã§ã³ãã¹ãã«ã¯èªååãéµãšãªããŸããSeleniumãCypressãPlaywrightãªã©ã®ããŒã«ã§ããã©ãŠã¶ããŒã¹ã®ãªã°ã¬ãã·ã§ã³ãã¹ããèªååã§ããŸãã
- ããã©ãŒãã³ã¹ãã¹ãïŒ ããŸããŸãªè² è·æ¡ä»¶äžã§ã®ã·ã¹ãã ã®ããã©ãŒãã³ã¹ãè©äŸ¡ããŸããããã«ãããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããã·ã¹ãã ãæåŸ ãããäœæ¥è² è·ãåŠçã§ããããšã確èªããŸããJMeterãGatlingãªã©ã®ããŒã«ãåºã䜿çšãããŠããŸãã
- ã»ãã¥ãªãã£ãã¹ãïŒ ã·ã¹ãã ã®ã»ãã¥ãªãã£è匱æ§ãç¹å®ããŸããããã«ã¯ããããã¬ãŒã·ã§ã³ãã¹ããè匱æ§ã¹ãã£ã³ãã³ãŒãåæãªã©ã®æè¡ãå«ãŸããŸããOWASP ZAPãBurp Suiteãªã©ã®ããŒã«ã人æ°ã®ããéžæè¢ã§ãã
- ãŠãŒã¶ããªãã£ãã¹ãïŒ ãœãããŠã§ã¢ã®äœ¿ãããããè©äŸ¡ããŸããããã«ã¯ããŠãŒã¶ãŒãã·ã¹ãã ãæäœããæ§åã芳å¯ãããã®äœéšã«é¢ãããã£ãŒãããã¯ãåéããããšãå«ãŸããŸãã
äŸïŒ ãŠãŒã¶ãŒãããã¥ã¡ã³ããäœæã»å ±æã§ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãæ³åããŠã¿ãŠãã ãããåäœãã¹ãã§ã¯ãããã¥ã¡ã³ãäœææ©èœãããã¥ã¡ã³ããæ£ããããŒã¿ããŒã¹ã«ä¿åããããšãæ€èšŒãããããããŸãããçµ±åãã¹ãã§ã¯ãããã¥ã¡ã³ãå ±ææ©èœãä»ã®ãŠãŒã¶ãŒã«æ£ããã¢ã¯ã»ã¹æš©ãä»äžããããšãæ€èšŒãããããããŸãããã·ã¹ãã ãã¹ãã§ã¯ããŠãŒã¶ãŒèªèšŒãããã¥ã¡ã³ãã®äœæãå ±æãç·šéãå«ãã¢ããªã±ãŒã·ã§ã³å šäœãæåŸ éãã«åäœããããšãæ€èšŒããŸããããã©ãŒãã³ã¹ãã¹ãã§ã¯ã倿°ã®åæãŠãŒã¶ãŒã«å¯ŸããŠã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«å¿çããããè©äŸ¡ããŸããã»ãã¥ãªãã£ãã¹ãã§ã¯ãã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒãSQLã€ã³ãžã§ã¯ã·ã§ã³ã®ãããªè匱æ§ãæ¢ããŸãã
2. ã³ãŒãã¬ãã¥ãŒ
ã³ãŒãã¬ãã¥ãŒã§ã¯ãä»ã®éçºè ã«ããªãã®ã³ãŒãã調ã¹ãŠããããæœåšçãªãã°ããšã©ãŒãæ¹åç¹ãææããŠããããŸããã³ãŒãã¬ãã¥ãŒã¯ãéçºããã»ã¹ã®æ©ã段éã§ãã°ãçºèŠããéåžžã«å¹æçãªæ¹æ³ã§ããGitHubãGitLabãBitbucketãªã©ã®ãã©ãããã©ãŒã ã«ã¯ãçµã¿èŸŒã¿ã®ã³ãŒãã¬ãã¥ãŒæ©èœãåãã£ãŠããŸãã
ã³ãŒãã¬ãã¥ãŒã®å©ç¹ïŒ
- æ©æã®ãã°æ€åºïŒ ã³ãŒãã¬ãã¥ãŒã¯ãèªåãã¹ãã§ã¯èŠéããããã°ããã°ãã°çºèŠããŸãã
- ã³ãŒãå質ã®åäžïŒ ã¬ãã¥ã¢ãŒã¯ãã³ãŒãã¹ã¿ã€ã«ããã¹ããã©ã¯ãã£ã¹ãæœåšçãªããã©ãŒãã³ã¹åé¡ã«ã€ããŠãã£ãŒãããã¯ãæäŸã§ããŸãã
- ç¥èã®å ±æïŒ ã³ãŒãã¬ãã¥ãŒã¯ãããŒã å šäœã«ç¥èãåºããå šå¡ãã³ãŒãããŒã¹ã«ç²Ÿéããããšãä¿èšŒããã®ã«åœ¹ç«ã¡ãŸãã
- ã¡ã³ã¿ãªã³ã°ïŒ ã³ãŒãã¬ãã¥ãŒã¯ãè¥æéçºè ã«ãšã£ãŠè²Žéãªã¡ã³ã¿ãªã³ã°ã®æ©äŒãšãªãåŸãŸãã
广çãªã³ãŒãã¬ãã¥ãŒã®ãã³ãïŒ
- ã¬ãã¥ãŒãå°ããä¿ã€ïŒ 倧ããªã³ãŒã倿Žã®ã¬ãã¥ãŒã¯å§åãããããšããããŸãã倧ããªå€æŽã¯ãããå°ãã管çããããå¡ã«åå²ããŸãããã
- éèŠãªé åã«éäžããïŒ è€éãªããžãã¯ãããŒã¿æ€èšŒãã»ãã¥ãªãã£ã«ææãªã³ãŒããªã©ããã°ãå«ãŸããå¯èœæ§ãæãé«ãé åãåªå ããŸãã
- 建èšçãªãã£ãŒãããã¯ãæäŸããïŒ å ·äœçã§å®è¡å¯èœãªãã£ãŒãããã¯ãæäŸããããšã«éäžããŸãããªãç¹å®ã®å€æŽãå¿ èŠãªã®ãã説æããæ¹åã®ããã®ææ¡ãããŸãã
- ãã§ãã¯ãªã¹ãã䜿çšããïŒ ã³ãŒãã¬ãã¥ãŒäžã«æ¢ãã¹ãäžè¬çãªåé¡ã®ãã§ãã¯ãªã¹ããäœæããŸããããã«ãããäžè²«æ§ãšç¶²çŸ æ§ã確ä¿ã§ããŸãã
äŸïŒ ã³ãŒãã¬ãã¥ãŒäžãã¬ãã¥ã¢ãŒã¯éçºè ããŠãŒã¶ãŒå ¥åãããŒã¿ããŒã¹ã«ä¿åããåã«æ€èšŒãå¿ããŠããããšã«æ°ã¥ããããããŸãããããã¯ãã»ãã¥ãªãã£ã®è匱æ§ãããŒã¿ã®ç Žæã«ã€ãªããå¯èœæ§ããããŸããã¬ãã¥ã¢ãŒã¯ãã®åé¡ãææãããããã®åé¡ãæªç¶ã«é²ãããã«æ€èšŒã³ãŒãã远å ããããææ¡ããŸãã
3. éçè§£æ
éçè§£æããŒã«ã¯ãã³ãŒããå®éã«å®è¡ããããšãªããæœåšçãªãã°ãã»ãã¥ãªãã£è匱æ§ãã³ãŒãå質ã®åé¡ãèªåçã«åæããŸãããããã®ããŒã«ã¯ããã«ãã€ã³ã¿äŸå€ãã¡ã¢ãªãªãŒã¯ãã»ãã¥ãªãã£æ¬ é¥ãªã©ãå¹ åºãåé¡ãç¹å®ã§ããŸãã
人æ°ã®éçè§£æããŒã«ïŒ
- SonarQubeïŒ ã³ãŒãå質ãç¶ç¶çã«æ€æ»ããããã®äººæ°ã®ãããªãŒãã³ãœãŒã¹ãã©ãããã©ãŒã ãå¹ åºãããã°ã©ãã³ã°èšèªããµããŒããã人æ°ã®IDEããã«ãããŒã«ãšçµ±åããŸãã
- FindBugsïŒ Javaã³ãŒãçšã®ç¡æã®éçè§£æããŒã«ããã«ãã€ã³ã¿ã®åç §è§£é€ãæªäœ¿çšã®å€æ°ãæœåšçãªã»ãã¥ãªãã£è匱æ§ãªã©ãäžè¬çãªãã°ãã¿ãŒã³ãç¹å®ããŸãã
- ESLintïŒ JavaScriptã³ãŒãçšã®äººæ°ã®ãªã³ã¿ãŒãã³ãŒãã¹ã¿ã€ã«ã«ãŒã«ã匷å¶ããæœåšçãªãšã©ãŒãã¢ã³ããã¿ãŒã³ãç¹å®ããŸãã
- PMDïŒ JavaãJavaScriptãApexãå«ãè€æ°ã®ããã°ã©ãã³ã°èšèªããµããŒããããªãŒãã³ãœãŒã¹ã®ã³ãŒãè§£æããŒã«ã
- CoverityïŒ é«åºŠãªãã°æ€åºãšã»ãã¥ãªãã£åææ©èœãæäŸããåçšã®éçè§£æããŒã«ã
äŸïŒ éçè§£æããŒã«ã¯ãJavaã³ãŒãã§å€æ°ãnullãã§ãã¯ãããã«äœ¿çšãããå Žåã«ãæœåšçãªãã«ãã€ã³ã¿äŸå€ãèŠåããããšããããŸããããŒã«ã¯ãæœåšçãªäŸå€ãçºçããå¯èœæ§ã®ããã³ãŒãè¡ããã€ã©ã€ã衚瀺ããéçºè ãå®è¡æãšã©ãŒãçºçããåã«å¯ŸåŠã§ããããã«ããŸãã
4. åçè§£æ
åçè§£æã¯ããœãããŠã§ã¢ãå®è¡ãããŠããéã®æ¯ãèããåæããããšãå«ã¿ãŸããããã¯ãéçè§£æãã³ãŒãã¬ãã¥ãŒã§ã¯æ€åºãã«ãããã°ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
åçè§£æã®ãã¯ããã¯ïŒ
- ãããã°ïŒ ãããã¬ã䜿çšããŠã³ãŒããã¹ãããå®è¡ãã倿°ã®å€ãå®è¡ãããŒã調ã¹ãŸãããããã¬ã¯ããã°ãç¹å®ã解決ããããã®äžå¯æ¬ ãªããŒã«ã§ãã人æ°ã®ãããã¬ã«ã¯ãGDB (C/C++çš)ãpdb (Pythonçš)ãããã³IntelliJ IDEAãVisual Studioãªã©ã®IDEã«çµã¿èŸŒãŸãããããã¬ããããŸãã
- ãããã¡ã€ãªã³ã°ïŒ ãœãããŠã§ã¢ã®ããã©ãŒãã³ã¹ã枬å®ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŸãããããã¡ã€ã©ã¯ãã³ãŒãã®é ãéšåãéå¹çãªéšåãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- ã¡ã¢ãªåæïŒ ã¡ã¢ãªãªãŒã¯ããã®ä»ã®ã¡ã¢ãªé¢é£ã®ãšã©ãŒãæ€åºããŸããã¡ã¢ãªåæããŒã«ã¯ãã¡ã¢ãªãªãŒã¯ããããã¡ãªãŒããŒãããŒããã®ä»ã®ã¡ã¢ãªé¢é£ã®åé¡ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸããValgrindã¯ãC/C++çšã®äººæ°ã®ã¡ã¢ãªåæããŒã«ã§ãã
- ãã¡ãžã³ã°ïŒ ãœãããŠã§ã¢ã«ã©ã³ãã ãŸãã¯ç¡å¹ãªå ¥åãæäŸããŠãã¯ã©ãã·ã¥ãããäºæãã¬åäœã瀺ããããããã©ããã確èªããŸãããã¡ãžã³ã°ã¯ãã»ãã¥ãªãã£è匱æ§ããã®ä»ã®å ç¢æ§ã®åé¡ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒ ãããã¬ã䜿çšããŠããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ããéã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒããã¹ãããå®è¡ãã倿°ã®å€ã調ã¹ãããšãã§ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããåå ãšãªã£ãŠãããã°ã®æ ¹æ¬åå ãç¹å®ã§ããŸããã¡ã¢ãªåæããŒã«ã¯ãæéãšãšãã«ãŸããŸãå€ãã®ã¡ã¢ãªãæ¶è²»ããŠããC++ããã°ã©ã ã®ã¡ã¢ãªãªãŒã¯ãç¹å®ããããã«äœ¿çšãããããšããããŸãã
5. ãã°åæ
ãã°ã¯ããœãããŠã§ã¢ã®æ¯ãèãã«é¢ãã貎éãªæ å ±ãæäŸããŸãããã°ãåæããããšã§ããšã©ãŒãèŠåããã®ä»ã®éèŠãªã€ãã³ããç¹å®ã§ããŸããELKã¹ã¿ãã¯ïŒElasticsearchãLogstashãKibanaïŒãSplunkã®ãããªéäžãã°ç®¡çã·ã¹ãã ã¯ãå€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã®ãã°åæã§äžè¬çã«äœ¿çšãããŸãã
广çãªãã°åæã®ãã³ãïŒ
- äžè²«ãããã°èšé²ã®å®è·µïŒ äžè²«ãããã°åœ¢åŒã䜿çšããåãã°ã¡ãã»ãŒãžã«ã¿ã€ã ã¹ã¿ã³ããéèŠåºŠã¬ãã«ããŠãŒã¶ãŒIDãªã©ã®é¢é£æ å ±ãå«ããŸãã
- ãã°ã®éäžç®¡çïŒ ã·ã¹ãã ã®ãã¹ãŠã®ã³ã³ããŒãã³ãããã®ãã°ãäžå€®ã®å Žæã«åéããŸããããã«ããããã°ã®åæãšãã¿ãŒã³ã®ç¹å®ã容æã«ãªããŸãã
- ãã°åæããŒã«ã®äœ¿çšïŒ ãã°åæããŒã«ã䜿çšããŠããã°ãæ€çŽ¢ããã£ã«ã¿ãªã³ã°ãåæããŸãããããã®ããŒã«ã¯ããšã©ãŒããã®ä»ã®éèŠãªã€ãã³ããè¿ éã«ç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- ã¢ã©ãŒãã®èšå®ïŒ ãšã©ãŒãã»ãã¥ãªãã£äŸµå®³ãªã©ãç¹å®ã®ã€ãã³ããçºçãããšãã«éç¥ããã¢ã©ãŒããèšå®ããŸãã
äŸïŒ ãŠã§ããµãŒããŒã®ãã°ãåæãããšãç¹å®ã®APIãšã³ããã€ã³ãã倿°ã®500ãšã©ãŒãè¿ããŠããããšãæããã«ãªããããããŸãããããã¯ããã®ãšã³ããã€ã³ããžã®ãªã¯ãšã¹ããåŠçããŠããã³ãŒãã«ãã°ãããããšã瀺ããŠããå¯èœæ§ããããŸããããŒã¿ããŒã¹ãµãŒããŒã®ãã°ãåæãããšãç¹å®ã®ã¯ãšãªã®å®è¡ã«æéãããã£ãŠããããšãæããã«ãªããããããŸãããããã¯ãããŒã¿ããŒã¹ã«ããã©ãŒãã³ã¹ã®ããã«ããã¯ãããããšã瀺ããŠããå¯èœæ§ããããŸãã
6. ãã°è¿œè·¡ã·ã¹ãã
ãã°è¿œè·¡ã·ã¹ãã ã¯ãéçºã©ã€ããµã€ã¯ã«å šäœãéããŠãã°ã远跡ã»ç®¡çããã®ã«åœ¹ç«ã€ãœãããŠã§ã¢ã¢ããªã±ãŒã·ã§ã³ã§ãããããã®ã·ã¹ãã ã¯ããã°ã®å ±åã远跡ã解決ã®ããã®äžå€®éæš©çãªå ŽæãæäŸããŸãã人æ°ã®ãã°è¿œè·¡ã·ã¹ãã ã«ã¯ãJiraãBugzillaãRedmineããããŸãã
ãã°è¿œè·¡ã·ã¹ãã ã®äž»ãªæ©èœïŒ
- ãã°å ±åïŒ ãŠãŒã¶ãŒãåçŸæé ãæåŸ ãããçµæãå®éã®çµæãªã©ã®è©³çްæ å ±ãšãšãã«ãã°ãå ±åã§ããŸãã
- ãã°è¿œè·¡ïŒ åãã°ã®ã¹ããŒã¿ã¹ããæåã®å ±åããè§£æ±ºãæ€èšŒãŸã§è¿œè·¡ããŸãã
- ãã°ã®å²ãåœãŠïŒ ãã°ã解決ã®ããã«ç¹å®ã®éçºè ã«å²ãåœãŠãããšãã§ããŸãã
- åªå é äœä»ãïŒ ãã°ã®éèŠåºŠãšåœ±é¿ã«åºã¥ããŠåªå é äœãä»ããããšãã§ããŸãã
- ã¬ããŒãã£ã³ã°ïŒ ãªãŒãã³ãªãã°ã®æ°ã解決æžã¿ã®ãã°ã®æ°ãå¹³å解決æéãªã©ããã°ã®ã¹ããŒã¿ã¹ã«é¢ããã¬ããŒããæäŸããŸãã
- ã¯ãŒã¯ãããŒç®¡çïŒ ãã°ã解決ããããã«å¿ èŠãªã¹ããããåããŒã ã¡ã³ããŒã®åœ¹å²ãšè²¬ä»»ãªã©ããã°ã管çããããã®ã¯ãŒã¯ãããŒãå®çŸ©ããŸãã
äŸïŒ ãã¹ã¿ãŒããœãããŠã§ã¢ã§ãã°ãçºèŠããå Žåããã°è¿œè·¡ã·ã¹ãã ã§æ°ãããã°å ±åãäœæããŸãããã°å ±åã«ã¯ãåçŸæé ãæåŸ ãããçµæãå®éã®çµæãªã©ããã°ã«é¢ããæ å ±ãå«ãŸããŸãããã®åŸããã°å ±åã¯è§£æ±ºã®ããã«éçºè ã«å²ãåœãŠãããŸããéçºè ã¯ãã°ãä¿®æ£ãããã°å ±åã解決æžã¿ãšããŠããŒã¯ããŸãããã®åŸããã¹ã¿ãŒãä¿®æ£ãæ€èšŒãããã°å ±åãã¯ããŒãºæžã¿ãšããŠããŒã¯ããŸãã
ãã°çºèŠãã€ã³ãã»ãããæ§ç¯ãã
匷åãªãã°ç¹å®ã¹ãã«ã身ã«ã€ããããšã¯ãç¹å®ã®ãã¯ããã¯ãåŠã¶ã ãã§ãªãããã°çºèŠãã€ã³ãã»ãããé€ãããšã§ããããŸããããã«ã¯ã奜å¥å¿æºçã§ã现éšã«æ³šæãæãããã°ã®è¿œåã«ç²ã匷ãããããšãå«ãŸããŸãã
ãã°çºèŠãã€ã³ãã»ããã®äž»ãªç¹åŸŽïŒ
- 奜å¥å¿ïŒ ãœãããŠã§ã¢ãã©ã®ããã«æ©èœããã©ã®ããã«å£ããå¯èœæ§ãããã®ãã«ã€ããŠå¥œå¥å¿ãæã¡ãŸããããããŸããŸãªã·ããªãªããšããžã±ãŒã¹ãæ¢æ±ããŸãã
- 现éšãžã®æ³šæïŒ ãœãããŠã§ã¢ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®çްéšã«çްå¿ã®æ³šæãæããŸããå°ããªççŸããšã©ãŒã§ãããæœåšçãªãã°ã®å åã§ããå¯èœæ§ããããŸãã
- ç²ã匷ãïŒ ãã°ãåçŸããããšãããšããç°¡åã«ãããããªãã§ãã ãããåé¡ãäžè²«ããŠåçŸã§ããããã«ãªããŸã§ãããŸããŸãªå ¥åãã·ããªãªã§å®éšãç¶ããŸãã
- æ¹å€çæèïŒ ãœãããŠã§ã¢ã«ã€ããŠããããŠãããã©ã®ããã«å€±æããå¯èœæ§ããããã«ã€ããŠæ¹å€çã«èããŸããããŸããŸãªé害ã¢ãŒããšæœåšçãªè匱æ§ãèæ ®ããŸãã
- å ±æïŒ ãšã³ããŠãŒã¶ãŒã®ç«å Žã«ç«ã£ãŠã圌ãããœãããŠã§ã¢ãã©ã®ããã«äœ¿çšããã©ã®ãããªåé¡ã«ééããå¯èœæ§ãããããäºæž¬ããããšããŸãã
- ææžåïŒ ãã°ç¹å®ããã»ã¹äžã®ãã¹ãŠã®ã¹ãããã芳å¯ãçºèŠãæç¢ºã«ææžåããŸããããã¯ãåŸã§ãã°ãåçŸããä»ã®äººã«å¹æçã«äŒããã®ã«åœ¹ç«ã¡ãŸãã
ãã°ç¹å®ã«ãããäžè¬çãªèª²é¡ãžã®å¯ŸåŠ
ãã°ã®ç¹å®ã¯ãç¹ã«è€éãªãœãããŠã§ã¢ã·ã¹ãã ã§ã¯å°é£ãªå ŽåããããŸãã以äžã¯ãäžè¬çãªèª²é¡ãšãã®å ææ¹æ³ã§ãïŒ
- æç¶çãªãã°ïŒ æã ããçºçããªããã°ã¯ãåçŸããŠèšºæããã®ãé£ããããšããããŸãããã°ãåŒãèµ·ããæ¡ä»¶ãç¹å®ãããã°ãçºçãããšãã®ã·ã¹ãã ç¶æ ã«é¢ããæ å ±ãã§ããã ãå€ãåéããããã«ããŠãã ããããã®ã³ã°ãšãããã°æè¡ã䜿çšããŠå®è¡ãããŒã远跡ããæ ¹æ¬åå ãç¹å®ããŸãã
- ãã€ãŒã³ãã°ïŒ ãããã°ããããšãããšæ¶ããŠããŸããã°ãããã¯ããããã¬ãã¢ã¿ããããããšãã«ã·ã¹ãã ã®ã¿ã€ãã³ã°ãç°å¢ãå€åããããšãåå ã§ããããšãå€ãã§ããã·ã¹ãã ã®åäœãžã®åœ±é¿ãæå°éã«æããããã«ããã®ã³ã°ãªã©ã®éäŸµå ¥çãªãããã°æè¡ã䜿çšããŠã¿ãŠãã ããã
- è€éãªã³ãŒãããŒã¹ïŒ å€§èŠæš¡ã§è€éãªã³ãŒãããŒã¹ã¯ãããã²ãŒãããŠçè§£ããã®ãé£ããããšããããŸããIDEãªã©ã®ã³ãŒãããã²ãŒã·ã§ã³ããŒã«ã䜿çšããŠã³ãŒãããŒã¹ãæ¢çŽ¢ããããŸããŸãªã³ã³ããŒãã³ãéã®é¢ä¿ãçè§£ããŸããã³ãŒãã¬ãã¥ãŒãšéçè§£æã䜿çšããŠãæœåšçãªåé¡ãç¹å®ããŸãã
- ããã¥ã¡ã³ãã®æ¬ åŠïŒ ããã¥ã¡ã³ããäžååãªã³ãŒãã¯ãçè§£ãšä¿å®ãå°é£ã§ããéçºè ã«ãã³ãŒãã®æç¢ºã§ç°¡æœãªããã¥ã¡ã³ããæžããã奚å±ããŸããã³ãŒãçæããŒã«ã䜿çšããŠãã³ãŒãããããã¥ã¡ã³ããèªåçã«çæããŸãã
- ã³ãã¥ãã±ãŒã·ã§ã³ã®éå£ïŒ éçºè ããã¹ã¿ãŒããã®ä»ã®ã¹ããŒã¯ãã«ããŒéã®ã³ãã¥ãã±ãŒã·ã§ã³ã®éå£ã¯ããã°ç¹å®ããã»ã¹ã劚ããå¯èœæ§ããããŸããæç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ãã£ãã«ã確ç«ãããªãŒãã³ã§æ£çŽãªã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ããŸãããã°è¿œè·¡ã·ã¹ãã ã䜿çšããŠãã³ãã¥ãã±ãŒã·ã§ã³ãšã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããŸãã
ãã°ç¹å®ã®ããã®ããŒã«ãšãã¯ãããžãŒ
ãã°ç¹å®ãæ¯æŽããããã«ãå¹ åºãããŒã«ãšãã¯ãããžãŒãå©çšå¯èœã§ãã以äžã¯ãæã人æ°ã®ããã«ããŽãªã®äžéšã§ãïŒ
- IDEïŒçµ±åéçºç°å¢ïŒïŒ IDEã¯ããœãããŠã§ã¢ã®éçºããããã°ããã¹ãã®ããã®å æ¬çãªããŒã«ã»ãããæäŸããŸãã人æ°ã®IDEã«ã¯ãIntelliJ IDEAãVisual StudioãEclipseããããŸãã
- ãããã¬ïŒ ãããã¬ã䜿çšãããšãã³ãŒããã¹ãããå®è¡ãã倿°ã®å€ãå®è¡ãããŒã調ã¹ãããšãã§ããŸãã人æ°ã®ãããã¬ã«ã¯ãGDBãpdbãããã³IDEã«çµã¿èŸŒãŸãããããã¬ããããŸãã
- éçè§£æããŒã«ïŒ éçè§£æããŒã«ã¯ãã³ãŒããèªåçã«åæããŠãæœåšçãªãã°ãã»ãã¥ãªãã£è匱æ§ãã³ãŒãå質ã®åé¡ãç¹å®ããŸãã人æ°ã®éçè§£æããŒã«ã«ã¯ãSonarQubeãFindBugsãESLintããããŸãã
- åçè§£æããŒã«ïŒ åçè§£æããŒã«ã¯ããœãããŠã§ã¢ãå®è¡ãããŠããéã®æ¯ãèããåæããŸãããããã®ããŒã«ã«ã¯ããããã¡ã€ã©ãã¡ã¢ãªåæããŒã«ããã¡ã¶ãŒãå«ãŸããŸãã
- ãã°è¿œè·¡ã·ã¹ãã ïŒ ãã°è¿œè·¡ã·ã¹ãã ã¯ãéçºã©ã€ããµã€ã¯ã«å šäœãéããŠãã°ã远跡ã»ç®¡çããã®ã«åœ¹ç«ã¡ãŸãã人æ°ã®ãã°è¿œè·¡ã·ã¹ãã ã«ã¯ãJiraãBugzillaãRedmineããããŸãã
- ãã¹ãèªååãã¬ãŒã ã¯ãŒã¯ïŒ ãã¹ãèªååãã¬ãŒã ã¯ãŒã¯ã䜿çšãããšããã¹ãã®å®è¡ãèªååããçµæã«é¢ããã¬ããŒããçæã§ããŸãã人æ°ã®ãã¹ãèªååãã¬ãŒã ã¯ãŒã¯ã«ã¯ãSeleniumãCypressãJUnitããããŸãã
- ãã°ç®¡çããŒã«ïŒ ãã°ç®¡çããŒã«ã¯ãã·ã¹ãã ã®ããŸããŸãªã³ã³ããŒãã³ãããã®ãã°ãåéãåæã管çããã®ã«åœ¹ç«ã¡ãŸãã人æ°ã®ãã°ç®¡çããŒã«ã«ã¯ãELKã¹ã¿ãã¯ïŒElasticsearchãLogstashãKibanaïŒãšSplunkããããŸãã
ãã°å ±åã®ãã¹ããã©ã¯ãã£ã¹
æç¢ºã§ç°¡æœãªãã°å ±åã¯ã广çãªãã°è§£æ±ºã«äžå¯æ¬ ã§ãã以äžã¯ããã°å ±åãäœæããããã®ãã¹ããã©ã¯ãã£ã¹ã§ãïŒ
- æç¢ºã§ç°¡æœãªèŠçŽãæäŸããïŒ èŠçŽã§ã¯ããã°ãšãã®åœ±é¿ãç°¡æœã«èª¬æããå¿ èŠããããŸãã
- 詳现ãªåçŸæé ãå«ããïŒ ãã°ãåçŸããæ¹æ³ã«ã€ããŠãã¹ããããã€ã¹ãããã®ã¬ã€ããæäŸããŸããããã¯ãã°å ±åã®æãéèŠãªéšåã§ãã
- æåŸ ãããçµæãšå®éã®çµæãèšè¿°ããïŒ ãœãããŠã§ã¢ãäœããã¹ãã ã£ããããããŠå®éã«äœãããããæç¢ºã«è¿°ã¹ãŸãã
- é¢é£æ å ±ãå«ããïŒ ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããã©ãŠã¶ã®ããŒãžã§ã³ãããŒããŠã§ã¢æ§æãªã©ãéçºè ããã°ãçè§£ã解決ããã®ã«åœ¹ç«ã€å¯èœæ§ã®ããé¢é£æ å ±ãå«ããŸãã
- ã¹ã¯ãªãŒã³ã·ã§ããããããªãæ·»ä»ããïŒ å¯èœã§ããã°ããã°ã説æããããã«ã¹ã¯ãªãŒã³ã·ã§ããããããªãæ·»ä»ããŸãã
- äžè²«ãããã©ãŒãããã䜿çšããïŒ ãã¹ãŠã®ãã°å ±åã«äžè²«ãããã©ãŒãããã䜿çšããŸããããã«ãããéçºè ãå ±åãçè§£ãåŠçãããããªããŸãã
- ææ§ãŸãã¯äž»èгçãªèšèãé¿ããïŒ ãã°ã説æããéã¯ãæ£ç¢ºã§å®¢èгçãªèšèã䜿çšããŸãã
- ãã°å ±åãæ ¡æ£ããïŒ ãã°å ±åãæåºããåã«ããšã©ãŒãè±èœããªããæ³šææ·±ãæ ¡æ£ããŸãã
ãã°ç¹å®ã®ã°ããŒãã«ãªèŠç¹
ãã°ç¹å®ã®æ £è¡ã¯ãå°åãæåã«ãã£ãŠç°ãªãå ŽåããããŸããããšãã°ãäžéšã®æåã§ã¯æ£åŒãªãã¹ãããã»ã¹ã«éç¹ã眮ãå ŽåããããŸãããä»ã®æåã§ã¯éå ¬åŒãªã³ãŒãã¬ãã¥ãŒã«äŸåããå ŽåããããŸãããããã®æåçãªéããèªèããããã«å¿ããŠã¢ãããŒããé©å¿ãããããšãéèŠã§ãã
ã°ããŒãã«ããŒã ã®ããã®èæ ®äºé ïŒ
- èšèªã®å£ïŒ ãã¹ãŠã®ããŒã ã¡ã³ããŒãå ±éã®èšèªã§å¹æçã«ã³ãã¥ãã±ãŒã·ã§ã³ã§ããããšã確èªããŸãããã°å ±åããã®ä»ã®ã³ãã¥ãã±ãŒã·ã§ã³ã§ã¯ãæç¢ºã§ç°¡æœãªèšèã䜿çšããŸãã
- ã¿ã€ã ãŸãŒã³ã®éãïŒ ç°ãªãã¿ã€ã ãŸãŒã³éã§ãã¹ãããã³ãããã°æŽ»åã調æŽããŸããã¡ãŒã«ããã£ãããªã©ã®éåæã³ãã¥ãã±ãŒã·ã§ã³ããŒã«ã䜿çšããŠãã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããŸãã
- æåçãªéãïŒ ã³ãã¥ãã±ãŒã·ã§ã³ã¹ã¿ã€ã«ãåé¡è§£æ±ºã¢ãããŒãã«ãããæåçãªéããèªèããŸããç°ãªãèŠç¹ãå°éããæ°ããã¢ã€ãã¢ã«ãªãŒãã³ã§ããããšã
- ãã¹ãç°å¢ïŒ ã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹ã®å€æ§æ§ãåæ ããç°å¢ã§ãã¹ãã宿œãããããšã確èªããŸããããã«ã¯ãç°ãªãããã€ã¹ããã©ãŠã¶ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã®ãã¹ããããã³ç°ãªãèšèªããã±ãŒã«ã§ã®ãã¹ããå«ãŸããŸãã
ãã°ç¹å®ã®æªæ¥
ãã°ç¹å®ã®åéã¯ãæ°ããæè¡ããã¯ããã¯ã®åºçŸãšãšãã«çµ¶ããé²åããŠããŸããæ³šç®ãã¹ããã¬ã³ãã¯æ¬¡ã®ãšããã§ãïŒ
- 人工ç¥èœïŒAIïŒïŒ AIã¯ãéçè§£æããã¡ãžã³ã°ããã°åæãªã©ããã°ç¹å®ã®ããŸããŸãªåŽé¢ãèªååããããã«äœ¿çšãããŠããŸããAIã¯ãŸããã³ãŒãã®ã©ã®é åã«ãã°ãå«ãŸããå¯èœæ§ãé«ãããäºæž¬ããããã«ã䜿çšã§ããŸãã
- æ©æ¢°åŠç¿ïŒMLïŒïŒ MLã¯ãã³ãŒãã®ãã¿ãŒã³ãèå¥ããæœåšçãªãã°ãäºæž¬ã§ããã¢ãã«ããã¬ãŒãã³ã°ããããã«äœ¿çšãããŠããŸããMLã¯ãŸãããœãããŠã§ã¢ã®ç¹æ§ã«åºã¥ããŠãã¹ãæŠç¥ãããŒãœãã©ã€ãºããããã«ã䜿çšã§ããŸãã
- DevSecOpsïŒ DevSecOpsã¯ãã»ãã¥ãªãã£ãã©ã¯ãã£ã¹ãDevOpsãã€ãã©ã€ã³ã«çµ±åããããšã§ããããã«ã¯ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ããã³ç¶ç¶çããªããªãŒïŒCI/CDïŒããã»ã¹ã«ã»ãã¥ãªãã£ãã¹ããçµã¿èŸŒãããšãå«ãŸããŸãã
- ã¯ã©ãŠãããŒã¹ã®ãã¹ãïŒ ã¯ã©ãŠãããŒã¹ã®ãã¹ããã©ãããã©ãŒã ã¯ãå¹ åºããã¹ãç°å¢ãšããŒã«ãžã®ã¢ã¯ã»ã¹ãæäŸããŸããããã«ãããç°ãªãããã€ã¹ããã©ãŠã¶ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãœãããŠã§ã¢ããã¹ãããããšã容æã«ãªããŸãã
- ããŒã³ãŒã/ããŒã³ãŒããã¹ãïŒ ããŒã³ãŒã/ããŒã³ãŒããã©ãããã©ãŒã ã®äººæ°ãé«ãŸãã«ã€ããŠãåžæ°éçºè ããã¹ã¿ãŒãåºç¯ãªã³ãŒãã£ã³ã°ç¥èãªãã«ãã¹ããç°¡åã«äœæã»å®è¡ã§ããããã«ããã¹ãã¢ãããŒããé©å¿ããŠããŸãã
çµè«
ãã°ç¹å®ããã¹ã¿ãŒããããšã¯ãæè¡çãªã¹ãã«ããã°çºèŠã®ãã€ã³ãã»ããããããŠç¶ç¶çãªåŠç¿ãžã®ã³ãããã¡ã³ãã®çµã¿åãããå¿ èŠãšããç¶ç¶çãªããã»ã¹ã§ãããã®ã¬ã€ãã§æŠèª¬ãããã¯ããã¯ãšãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ããã°ãç¹å®ã解決ããèœåãå€§å¹ ã«åäžãããé«å質ã®ãœãããŠã§ã¢ãæäŸããããŒã ãšçµç¹ã®æåã«è²¢ç®ããããšãã§ããŸããã°ããŒãã«ãªèŠç¹ãæã¡ãäžçäžã®ãŠãŒã¶ãŒã®å€æ§ãªããŒãºã«åãããŠã¢ãããŒããé©å¿ãããããšãå¿ããªãã§ãã ããã