ãã®èšäºãæžããã£ãããšãªã£ãã®ã¯ãéç解æã«é¢ãã倧éã®è³æããŸããŸãç§ã®æ³šç®ãéããããã«ãªã£ãããšã§ããã ãŸãããã
ãã®ãããªã¬ãã¥ãŒãèªããšãç§ãã¡ãéæ³ã®ãšãªã¯ãµãŒã«ã€ããŠè©±ããŠããããã«æããããŸãããã¿ã³ãæŒããšãç®ã®åã«æ¬ é¥ã®ãªã¹ãã衚瀺ãããŸãã ã¢ãã©ã€ã¶ãŒãæ¹è¯ãããã«ã€ããŠãç§ãã¡ãäœã®åªåãããªããŠããããå€ãã®ãã°ãèªåçã«çºèŠããããããã®ããããã«ãã£ãŠã¹ãã£ã³ããã補åã¯ãŸããŸãè¯ããªãããã§ãã
ããããéæ³ã®ãšãªã¯ãµãŒã¯ãããŸããã ãç§ãã¡ã®ãããããèŠã€ãããããã®ã¯æ¬¡ã®ãšããã§ããã®ãããªæçš¿ã§ã¯éåžžã¯èªãããªãããšãã€ãŸãã¢ãã©ã€ã¶ãŒã«ã§ããªãããšããœãããŠã§ã¢é ä¿¡ããã»ã¹ã«ãããã¢ãã©ã€ã¶ãŒã®æ¬åœã®åœ¹å²ãšäœçœ®ã¥ãããããŠã¢ãã©ã€ã¶ãŒãæ£ããå®è£ ããæ¹æ³ã«ã€ããŠè©±ããããšæããŸãã ã
ã©ãã§ãã (åºå
ž:
éçã¢ãã©ã€ã¶ãŒã§ã¯æ±ºããŠã§ããªãããš
å®çšçãªèŠ³ç¹ããèŠããœãŒã¹ã³ãŒãåæãšã¯äœã§ãã? ãœãŒã¹ ã³ãŒããå ¥åããã³åºåãšããŠæäŸãããšãçæé (ãã¹ãã®å®è¡ãããã¯ããã«çã) ã§ã·ã¹ãã ã«é¢ããæ å ±ãååŸãããŸãã åºæ¬çãã€æ°åŠçã«å æã§ããªãå¶éã¯ããã®æ¹æ³ã§ã¯ããªãçãã¯ã©ã¹ã®æ å ±ããååŸã§ããªãããšã§ãã
éç解æã§ã¯è§£æ±ºã§ããªãåé¡ã®æãæåãªäŸã¯æ¬¡ã®ãšããã§ãã
ãããã£ãŠãéçã¢ãã©ã€ã¶ãŒã®æ©èœã«ã¯å æã§ããªãå¶éããããŸãã éçã¢ãã©ã€ã¶ãŒã¯ãããšãã°ãnull å€ãèš±å¯ããèšèªã§ã®ãnull ãã€ã³ã¿ãŒäŸå€ãã®çºçãªã©ãããããå Žåã«æ€åºããããããã®çºçãå€æãããããããšã¯ã§ããŸãããåçåä»ãèšèªã§ã¯ãå±æ§ãèŠã€ãããŸããããšããã¡ãã»ãŒãžã衚瀺ãããŸãã æãé«åºŠãªéçã¢ãã©ã€ã¶ãŒãã§ããããšã¯ããœãŒã¹ ã³ãŒãã§èããããããããåé¡ã®äžã§ãèªåŒµã§ã¯ãªã倧海ã®äžæ»Žã»ã©ã®ç¹æ®ãªã±ãŒã¹ã匷調ããããšã ãã§ãã
éçåæã¯ãã°ãèŠã€ããããšã§ã¯ãããŸãã
äžèšã®ããšãããéç解æã¯ããã°ã©ã å ã®æ¬ é¥ã®æ°ãæžããæ段ã§ã¯ãªããšããçµè«ãåŸãããŸãã ãããŠèšãã°ããããžã§ã¯ãã«åããŠé©çšãããšãã³ãŒãå ã®ãèå³æ·±ããå Žæãæ€åºãããŸãããããã°ã©ã ã®å質ã«åœ±é¿ãäžããæ¬ é¥ã¯ã»ãšãã©æ€åºãããªãã§ãããã
ã¢ãã©ã€ã¶ãŒã«ãã£ãŠèªåçã«æ€åºãããæ¬ é¥ã®äŸã¯å°è±¡çã§ããããããã®äŸã¯å€§èŠæš¡ãªã³ãŒãããŒã¹ã®å€§èŠæš¡ãªã»ãããã¹ãã£ã³ããããšã«ãã£ãŠæ€åºãããããšãå¿ããŠã¯ãªããŸããã åãåçã«ãããããã«ãŒã¯å€æ°ã®ã¢ã«ãŠã³ãã«å¯ŸããŠããã€ãã®åçŽãªãã¹ã¯ãŒããè©Šãæ©äŒããããæçµçã«ã¯åçŽãªãã¹ã¯ãŒããæã€ã¢ã«ãŠã³ããèŠã€ããŸãã
ããã¯éç解æã䜿çšãã¹ãã§ã¯ãªããšããæå³ã§ãã? ãã¡ããéããŸãïŒ ãŸãããŸã£ããåãçç±ã§ãæ°ãããã¹ã¯ãŒãããã§ãã¯ãããã³ã«ãããããåçŽãªããã¹ã¯ãŒãã®åæ¢ãªã¹ãã«å«ãŸããŠããããšã確èªãã䟡å€ããããŸãã
éçåæã¯ãã°ãèŠã€ããã ãã§ã¯ãããŸãã
å®éãåæã«ãã£ãŠå®éã«è§£æ±ºãããåé¡ã¯ããã«åºç¯å²ã«ããããŸãã çµå±ã®ãšãããäžè¬çã«éçåæãšã¯ããœãŒã¹ ã³ãŒããèµ·åãããåã«å®è¡ãããæ€èšŒã®ããšã§ãã 以äžã«ã§ããããšãããã€ã瀺ããŸãã
- æãåºãæå³ã§ã®ã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ããã§ãã¯ããŸãã ããã«ã¯ãæžåŒèšå®ã®ãã§ãã¯ã空ã®æ¬åŒ§ãäœåãªæ¬åŒ§ã®äœ¿çšã®æç¡ã®ç¢ºèªãã¡ãœããã®è¡æ°ã埪ç°çè€éããªã©ã®ã¡ããªã¯ã¹ã®ãããå€ã®èšå®ãªã©ãã³ãŒãã®å¯èªæ§ãä¿å®æ§ã劚ããå¯èœæ§ã®ãããããããã®ãå«ãŸããŸãã Java ã§ã¯ããã®ãããªããŒã«ã¯ CheckstyleãPython ã§ã¯ flake8 ã§ãã ãã®ã¯ã©ã¹ã®ããã°ã©ã ã¯éåžžããªã³ã¿ãŒããšåŒã°ããŸãã
- 解æã§ããã®ã¯å®è¡ã³ãŒãã ãã§ã¯ãããŸããã JSONãYAMLãXMLã.properties ãªã©ã®ãªãœãŒã¹ ãã¡ã€ã«ã¯ãæå¹æ§ãèªåçã«ãã§ãã¯ã§ããŸã (ãŸããããã¹ãã§ã!)ã çµå±ã®ãšããããã¢ã«ãªã£ãŠããªãåŒçšç¬Šãåå 㧠JSON æ§é ãå£ããŠããããšãããã¹ãå®è¡æãå®è¡æãããèªåãã« ãªã¯ãšã¹ãæ€èšŒã®æ©ã段éã§çºèŠããæ¹ãããã§ãããã? é©åãªããŒã«ãå©çšå¯èœã§ãã
YAMLlint ,JSONLint . - ã³ã³ãã€ã« (åçããã°ã©ãã³ã°èšèªã®å Žåã¯è§£æ) ãéçåæã®äžçš®ã§ãã äžè¬ã«ãã³ã³ãã€ã©ã¯ãœãŒã¹ ã³ãŒãã®å質ã«åé¡ãããããšã瀺ãèŠåãçæããããšãã§ãããããç¡èŠãã¹ãã§ã¯ãããŸããã
- ã³ã³ãã€ã«ã¯ãå®è¡å¯èœã³ãŒããã³ã³ãã€ã«ããã ãã§ã¯ãªãå ŽåããããŸãã ããšãã°ã次ã®åœ¢åŒã®ããã¥ã¡ã³ããããå Žåã
ã¢ã¹ããŒãã¯ã¿ãŒ ãããã HTML/PDF ã«å€æããç¬éã«ãAsciiDoctor ãã³ãã©ãŒ (Mavenãã©ã°ã€ã³ ) å éšãªã³ã¯ã®ç Žæãªã©ã®èŠåãçºè¡ã§ããŸãã ããã¯ãããã¥ã¡ã³ãã®å€æŽã䌎ããã« ãªã¯ãšã¹ããåãå ¥ããªãååãªçç±ã«ãªããŸãã - ã¹ãã«ãã§ãã¯ãéçåæã®äžçš®ã§ãã ãŠãŒãã£ãªãã£
ã¹ãã« ããã¥ã¡ã³ãã ãã§ãªããC/C++ãJavaãPython ãªã©ã®ããŸããŸãªããã°ã©ãã³ã°èšèªã®ããã°ã©ã ãœãŒã¹ ã³ãŒã (ã³ã¡ã³ãããªãã©ã«) ã®ã¹ãã« ãã§ãã¯ãå¯èœã§ãã ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ãããã¥ã¡ã³ãã®ã¹ãã« ãã¹ãæ¬ é¥ã§ãã - æ§æãã¹ã (å
容ã«ã€ããŠã¯ããæ§æãã¹ãããåç
§)ã
ã㮠Оãã® reports) ã¯ãpytest ãªã©ã®åäœãã¹ã ã©ã³ã¿ã€ã ã§å®è¡ãããŸãããå®è¡äžã«ãœãŒã¹ ã³ãŒããå®è¡ããªããããå®éã«ã¯éçåæã®äžçš®ã§ããããŸãã
ã芧ã®ãšããããã®ãªã¹ãã§ã®ãã°ã®æ€çŽ¢ã¯æãéèŠãªåœ¹å²ãæãããŸããããã®ä»ã¯ãã¹ãŠãç¡æã®ãªãŒãã³ãœãŒã¹ ããŒã«ã䜿çšããŠè¡ãããšãã§ããŸãã
ãããžã§ã¯ãã§ã¯æ¬¡ã®ã¿ã€ãã®éç解æã®ãã¡ã©ãã䜿çšããå¿ èŠããããŸãã? ãã¡ãããå€ããã°å€ãã»ã©è¯ãã§ãïŒ äž»ãªããšã¯ãããæ£ããå®è£ ããããšã§ããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
å€æ®µéãã£ã«ã¿ãŒãšããŠã®é ä¿¡ãã€ãã©ã€ã³ãšãã®æåã®æ®µéãšããŠã®éçåæ
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã®å€å žçãªæ¯å©ã¯ããœãŒã¹ ã³ãŒãã®å€æŽããéçšç°å¢ãžã®é ä¿¡ãŸã§ãå€æŽãæµãããã€ãã©ã€ã³ã§ãã ãã®ãã€ãã©ã€ã³ã®æšæºçãªã¹ããŒãžã®ã·ãŒã±ã³ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
- éç解æ
- ç·šé
- åäœãã¹ã
- çµ±åãã¹ã
- UIãã¹ã
- æåãã§ãã¯
ãã€ãã©ã€ã³ã® N çªç®ã®ã¹ããŒãžã§æåŠãããå€æŽã¯ãã¹ããŒãž N+1 ã«ã¯è»¢éãããŸããã
ä»ã®æ¹æ³ã§ã¯ãªãããªããŸãã«ãã®æ¹æ³ãªã®ã§ãããã? ãã€ãã©ã€ã³ã®ãã¹ãéšåã§ã¯ããã¹ã¿ãŒã¯ããç¥ããããã¹ã ãã©ããããèªèããŸãã
ãã¹ããã©ãããã ãœãŒã¹ïŒ
ãã®ãã©ãããã®æäžäœã«ããã®ã¯ãèšè¿°ãç°¡åã§ãå®è¡ãéãã倱æããåŸåã®ãªããã¹ãã§ãã ãããã£ãŠãããå€ãã®ã³ãŒããååšããããå€ãã®ã³ãŒããã«ããŒããæåã«å®è¡ãããå¿ èŠããããŸãã ãã©ãããã®é ç¹ã§ã¯ãã®éãšãªããããçµ±åãã¹ããš UI ãã¹ãã®æ°ã¯å¿ èŠæå°éã«æžããå¿ èŠããããŸãã ãã®ãã§ãŒã³å ã®æ åœè ã¯æãé«äŸ¡ã§ãæéãããããä¿¡é Œæ§ãäœããªãœãŒã¹ã§ãããããæåŸå°Ÿã«ããŠãåã®æ®µéã§æ¬ é¥ãèŠã€ãããªãã£ãå Žåã«ã®ã¿äœæ¥ãå®è¡ããŸãã ãã ãããã¹ãã«çŽæ¥é¢ä¿ããªãéšåã®ãã€ãã©ã€ã³ã®æ§ç¯ã«ãåãååã䜿çšãããŸãã
å€æ®µéã®æ°Žãéã·ã¹ãã ã®åœ¢ã§äŸããŠã¿ãããšæããŸãã æ±ããæ°ŽïŒæ¬ é¥ã®ããæ°ŽïŒãå ¥åã«äŸçµŠãããŸãããåºåã§ã¯ãäžèŠãªæ±æç©è³ªããã¹ãŠé€å»ãããããããªæ°Žãåãåãå¿ èŠããããŸãã
å€æ®µãã£ã«ã¿ãŒã ãœãŒã¹ïŒ
ãåç¥ã®ãšãããæŽæµãã£ã«ã¿ãŒã¯ãåŸç¶ã®åã«ã¹ã±ãŒãã§ãã埮现ãªæ±æç©è³ªãæ¿Ÿéã§ããããã«èšèšãããŠããŸãã åæã«ãããç²ã粟補ã®ã«ã¹ã±ãŒãã¯ãããé«ãã¹ã«ãŒããããšããäœãã³ã¹ãããããããŸãã ããã¯ãå ¥åå質ã²ãŒããããé«éã§ãéå§ã«å¿ èŠãªåŽåãå°ãªããæäœèªäœãããæ°åããªãããšãæå³ããŸããããããå ¥åå質ã²ãŒããæ§ç¯ãããé åºã§ãã ç§ãã¡ãä»ç解ããŠããããã«ãæãé倧ãªæ¬ é¥ã®ã¿ãåãé€ãããšãã§ããéçåæã®åœ¹å²ã¯ããã£ã«ã¿ãŒ ã«ã¹ã±ãŒãã®æåã®ãæ³¥ãã°ãªããã®åœ¹å²ã§ãã
ãæ³¥ãã£ã«ã¿ãŒãã§ã¯æ°Žã飲æã«é©ããªãã®ãšåãããã«ãéçåæã ãã§ã¯æçµè£œåã®å質ã¯åäžããŸããã ãããããã€ãã©ã€ã³ã®ä»ã®èŠçŽ ãšçµã¿åããããšããã®éèŠæ§ã¯æããã§ãã å€æ®µãã£ã«ã¿ãŒã§ã¯ãåºå段ã¯å ¥å段ã®ãã¹ãŠãææã§ããå¯èœæ§ããããŸãããå ¥å段ã䜿çšããã«ç²Ÿå¯ç²Ÿè£œæ®µã ãã§å¯Ÿå¿ããããšãããšãã©ã®ãããªçµæãçãããã¯æããã§ãã
ãããã ãã©ãããã®ç®çã¯ãåŸç¶ã®ã«ã¹ã±ãŒãã§é倧ãªæ¬ é¥ãçºçããã®ãé²ãããšã§ãã ããšãã°ãã³ãŒã ã¬ãã¥ãŒãè¡ã人ã¯ãå°ãªããšããééã£ã圢åŒã®ã³ãŒãã確ç«ãããã³ãŒãã£ã³ã°æšæºãžã®éå (äœåãªæ¬åŒ§ãæ·±ãããåå²ãªã©) ã«æ°ãåãããŠã¯ãªããŸããã NPE ã®ãããªãã°ã¯åäœãã¹ãã§æ€åºããå¿ èŠããããŸããããã¹ãåã§ãã£ãŠãã¢ãã©ã€ã¶ãŒããã°ã確å®ã«çºçããããšã瀺ããŠããã°ãä¿®æ£ãå€§å¹ ã«è¿ éåãããŸãã
éç解æãæã 䜿çšããŠã補åã®å質ãåäžãããé倧ãªæ¬ é¥ã䌎ãå€æŽãé€å€ããããã«åžžã«äœ¿çšããå¿ èŠãããçç±ãæããã«ãªã£ããšæããŸãã éé»æ°åæè£ çœ®ã䜿çšãããšè£œåã®å質ãåäžãããã©ãããšãã質åã¯ããæ±ããæ± ããåãããæ°Žãã¶ã«ã«éããã飲æã®å質ã¯åäžããŸãã?ããšå°ããããšãšã»ãŒåãã§ãã
ã¬ã¬ã·ãŒãããžã§ã¯ããžã®å®è£
éèŠãªå®è·µçãªè³ªå: éçåæããå質ã²ãŒãããšããŠç¶ç¶ççµ±åããã»ã¹ã«å®è£ ããã«ã¯ã©ãããã°ããã§ãããã? èªåãã¹ãã®å Žåããã¹ãŠãæçœã§ããäžé£ã®ãã¹ããããããã®ããããã倱æããå Žåã§ããã¢ã»ã³ããªãå質ã²ãŒããééããŠããªããšèããååãªçç±ã«ãªããŸãã éç解æã®çµæã«åºã¥ããŠåãæ¹æ³ã§ã²ãŒããã€ã³ã¹ããŒã«ããããšãããšå€±æããŸããåŸæ¥ã®ã³ãŒãã«ã¯è§£æèŠåãå€ããããããããããå®å šã«ç¡èŠããå¿ èŠã¯ãããŸãããã補åã®åºè·ãåæ¢ããããšãã§ããŸãããã¢ãã©ã€ã¶ãŒã®èŠåãå«ãŸããŠããããã§ãã
åããŠäœ¿çšãããšãã¢ãã©ã€ã¶ãŒã¯ãããžã§ã¯ãã«é¢ããŠèšå€§ãªæ°ã®èŠåãçæããŸããããã®å€§éšåã¯è£œåã®é©åãªæ©èœãšã¯é¢ä¿ãããŸããã ãããã®ã³ã¡ã³ããã¹ãŠãäžåºŠã«ä¿®æ£ããããšã¯äžå¯èœã§ãããå€ãã¯å¿ èŠãããŸããã çµå±ã®ãšãããç§ãã¡ã¯éç解æãå°å ¥ããåããã補åå šäœãæ©èœããããšãç¥ã£ãŠããŸãã
ãã®çµæãå€ãã¯éç解æãææ䜿çšããããã¢ã»ã³ããªäžã«ã¢ãã©ã€ã¶ ã¬ããŒããçºè¡ãããã ãã®æ å ±ã¢ãŒãã§ã®ã¿äœ¿çšããããšã«éå®ãããŠããŸãã ããã¯ãåæãè¡ãããŠããªãããšãšåãã§ãããã§ã«å€ãã®èŠåãããå Žåãã³ãŒããå€æŽãããšãã«å¥ã®èŠåã (ã©ãã»ã©æ·±å»ã§ãã£ãŠã) çºçããŠãæ°ã¥ãããªãããã§ãã
å質ã²ãŒããå°å ¥ãã次ã®æ¹æ³ãç¥ãããŠããŸãã
- èŠåã®åèšæ°ããŸãã¯èŠåã®æ°ãã³ãŒãè¡æ°ã§å²ã£ãå€ã«å¶éãèšå®ããŸãã ãã®ãããªã²ãŒãã§ã¯ãå¶éãè¶ ããªãéããæ°ããæ¬ é¥ã䌎ãå€æŽãèªç±ã«ééã§ããããããã®æ¹æ³ã¯ããŸãæ©èœããŸããã
- ç¹å®ã®æç¹ã§ãã³ãŒãå ã®ãã¹ãŠã®å€ãèŠåãç¡èŠãããããã«ä¿®æ£ãããæ°ããèŠåãçºçãããšãã«ãã«ããæåŠãããŸãã ãã®æ©èœã¯ãPVS-studio ããã³äžéšã®ãªã³ã©ã€ã³ ãªãœãŒã¹ (Codacy ãªã©) ã«ãã£ãŠæäŸãããŸãã ç§ã«ã¯ PVS ã¹ã¿ãžãªã§äœæ¥ããæ©äŒããããŸããã§ãããCodacy ã§ã®çµéšããèšãã°ãäž»ãªåé¡ã¯ãäœããå€ãããšã©ãŒã§äœããæ°ããããšã©ãŒã§ããããå€æããã®ã¯ããªãè€éãªã¢ã«ãŽãªãºã ã§ãããåžžã«æ©èœãããšã¯éããªãããšã§ããç¹ã«ãã¡ã€ã«ãå€§å¹ ã«å€æŽããããååãå€æŽããããããå Žåã¯ãæ£ããå®è¡ãããŸãã ç§ã®çµéšã§ã¯ãCodacy ã¯ãã« ãªã¯ãšã¹ãå ã®æ°ããèŠåãç¡èŠããããšãã§ããŸããããåæã«ãç¹å®ã® PR ã®ã³ãŒãã®å€æŽã«é¢é£ããªãèŠåãåå ã§ãã« ãªã¯ãšã¹ããééã§ããŸããã§ããã
- ç§ã®æèŠã§ã¯ãæãå¹æçãªè§£æ±ºçã¯ããã®æ¬ã§èª¬æãããŠãããã®ã§ã
é£ç¶æŸåº ãã©ãã§ããæ¹åŒãã åºæ¬çãªèãæ¹ã¯ãéç解æã®èŠåã®æ°ã¯åãªãªãŒã¹ã®ããããã£ã§ãããèŠåã®ç·æ°ãå¢ãããªãå€æŽã®ã¿ãèš±å¯ããããšããããšã§ãã
ã©ãã§ãã
ããã¯æ¬¡ã®ããã«æ©èœããŸãã
- åæ段éã§ã¯ãã¢ãã©ã€ã¶ãŒã«ãã£ãŠæ€åºãããã³ãŒãå ã®èŠåã®ãªãªãŒã¹æ°ã«é¢ããèšé²ãã¡ã¿ããŒã¿ã«äœæãããŸãã ãããã£ãŠãã¢ããã¹ããªãŒã ããã«ããããšãããªããžã㪠ãããŒãžã£ãŒã¯åã«ããªãªãŒã¹ 7.0.2ãã§ã¯ãªããã7.0.2 åã®ãã§ãã¯ã¹ã¿ã€ã«èŠåãå«ããªãªãŒã¹ 100500ããšæžããŸãã é«åºŠãªãªããžã㪠ãããŒãžã£ãŒ (Artifactory ãªã©) ã䜿çšããŠããå Žåã¯ããªãªãŒã¹ã«é¢ããã¡ã¿ããŒã¿ãç°¡åã«ä¿åã§ããŸãã
- åãã« ãªã¯ãšã¹ãã¯ããã«ãæã«ãçæãããèŠåã®æ°ãšçŸåšã®ãªãªãŒã¹ã§å©çšå¯èœãªèŠåã®æ°ãæ¯èŒããŸãã PR ã«ãã£ãŠãã®æ°å€ãå¢å ããå Žåãã³ãŒãã¯éçåæã®å質ã²ãŒããééããŸããã èŠåã®æ°ãæžå°ãããå€åããªãå Žåã¯åæ Œã§ãã
- 次ã®ãªãªãŒã¹ã§ã¯ãåèšç®ãããèŠåã®æ°ããªãªãŒã¹ ã¡ã¿ããŒã¿ã«å床èšé²ãããŸãã
ãããã£ãŠãå°ããã€ããããçå®ã«ïŒã©ãã§ãããæ©èœãããšãã®ããã«ïŒãèŠåã®æ°ã¯ãŒãã«ãªãåŸåããããŸãã ãã¡ãããæ°ããèŠåãå°å ¥ããŠä»ã®äººã®èŠåãä¿®æ£ããããšã§ãã·ã¹ãã ãã ãŸãããšã¯ã§ããŸãã é·è·é¢ã§ã¯çµæãåŸããããããããã¯æ£åžžã§ããèŠåã¯ãååãšããŠåå¥ã«ã§ã¯ãªããç¹å®ã®ã¿ã€ãã®ã°ã«ãŒãã§äžåºŠã«ä¿®æ£ãããç°¡åã«åé€ã§ããèŠåã¯ãã¹ãŠéåžžã«è¿ éã«åé€ãããŸãã
ãã®ã°ã©ãã¯ããã®ãããªãã©ãã§ãããã XNUMX ãæéæäœããå Žåã® Checkstyle èŠåã®åèšæ°ã瀺ããŠããŸãã
ç§ã¯ãã®æ¹æ³ã®ä¿®æ£ããŒãžã§ã³ã䜿çšãããããžã§ã¯ã ã¢ãžã¥ãŒã«ãšåæããŒã«ããšã«èŠåãåå¥ã«ã«ãŠã³ãããŸãããã®çµæã次ã®ãããªãã«ã ã¡ã¿ããŒã¿ãå«ã YAML ãã¡ã€ã«ãäœæãããŸãã
celesta-sql:
checkstyle: 434
spotbugs: 45
celesta-core:
checkstyle: 206
spotbugs: 13
celesta-maven-plugin:
checkstyle: 19
spotbugs: 0
celesta-unit:
checkstyle: 0
spotbugs: 0
é«åºŠãª CI ã·ã¹ãã ã§ã¯ããã©ã°ã€ã³ããµãŒãããŒã㣠ããŒã«ã«äŸåããã«ãã©ãã§ãããéçåæããŒã«ã«å®è£
ã§ããŸãã åã¢ãã©ã€ã¶ãŒã¯ãåæããããåçŽãªããã¹ããŸã㯠XML 圢åŒã§ç¬èªã®ã¬ããŒããäœæããŸãã æ®ã£ãŠããã®ã¯ãCI ã¹ã¯ãªããã«å¿
èŠãªããžãã¯ãèšè¿°ããããšã ãã§ãã Jenkins ãš Artifactory ã«åºã¥ãããªãŒãã³ãœãŒã¹ ãããžã§ã¯ãã§ãããã©ã®ããã«å®è£
ãããŠãããã確èªã§ããŸãã countWarnings()
éåžžã®æ¹æ³ã§ Checkstyle ãš Spotbugs ã«ãã£ãŠçæããããã¡ã€ã«å
ã® XML ã¿ã°ãã«ãŠã³ãããŸãã compareWarningMaps()
ã¯åãã©ãã§ãããå®è£
ããããããã®ã«ããŽãªã®èŠåæ°ãå¢å ãããšãšã©ãŒãã¹ããŒããŸãã
ãã©ãã§ãããã®èå³æ·±ãå®è£
ã¯ãaspell ã䜿çšããŠã³ã¡ã³ããããã¹ã ãªãã©ã«ãããã³ããã¥ã¡ã³ãã®ã¹ãã«ãåæããããã«å¯èœã§ãã ãåç¥ã®ãšãããã¹ãã« ãã§ãã¯ã®éãæšæºèŸæžã«ãªãåèªããã¹ãŠééã£ãŠããããã§ã¯ãªãããŠãŒã¶ãŒèŸæžã«è¿œå ãããå¯èœæ§ããããŸãã ãããžã§ã¯ãã®ãœãŒã¹ ã³ãŒãã®äžéšã«ã«ã¹ã¿ã èŸæžãäœæããå Žåãã¹ãã«å質ã²ãŒãã¯æ¬¡ã®ããã«å®åŒåã§ããŸã: æšæºèŸæžãšã«ã¹ã¿ã èŸæžã䜿çšã㊠aspell ãå®è¡ãã
ã¢ãã©ã€ã¶ãŒã®ããŒãžã§ã³ä¿®æ£ã®éèŠæ§ã«ã€ããŠ
çµè«ãšããŠã泚æãã¹ãç¹ã¯ãé ä¿¡ãã€ãã©ã€ã³ã«åæãå®è£ ããæ¹æ³ã«é¢ä¿ãªããã¢ãã©ã€ã¶ãŒã®ããŒãžã§ã³ãä¿®æ£ããå¿ èŠããããšããããšã§ãã ã¢ãã©ã€ã¶ãŒã®èªçºçãªæŽæ°ãèš±å¯ãããšã次ã®ãã« ãªã¯ãšã¹ããçµã¿ç«ãŠããšãã«ãã³ãŒãã®å€æŽãšã¯é¢ä¿ãªããæ°ããã¢ãã©ã€ã¶ãŒãåã«ããå€ãã®æ¬ é¥ãæ€åºã§ãããšããäºå®ã«é¢é£ããæ°ããæ¬ é¥ãããããã¢ãããããå¯èœæ§ããããŸããããã«ããããã« ãªã¯ãšã¹ããåãå ¥ããããã»ã¹ãäžæãããŸãã ã¢ãã©ã€ã¶ãŒã®ã¢ããã°ã¬ãŒãã¯æèçã«è¡ãå¿ èŠããããŸãã ãã ããåã¢ã»ã³ã㪠ã³ã³ããŒãã³ãã®ããŒãžã§ã³ããã£ãããšåºå®ããããšã¯äžè¬ã«å¿ èŠãªèŠä»¶ã§ãããå¥ã®è°è«ã®å¯Ÿè±¡ãšãªããŸãã
æèŠ
- éçåæã§ã¯ãã°ã¯æ€åºããããåäžã®ã¢ããªã±ãŒã·ã§ã³ã®çµæãšããŠè£œåã®å質ãåäžããããšããããŸããã å質ã«ãã©ã¹ã®å¹æãããããã«ã¯ãçŽåããã»ã¹äžã«ç¶ç¶çã«äœ¿çšããå¿ èŠããããŸãã
- ãã°ã®çºèŠã¯åæã®äž»ãªã¿ã¹ã¯ã§ã¯ãããŸããã䟿å©ãªæ©èœã®å€§éšåã¯ãªãŒãã³ãœãŒã¹ ããŒã«ã§å©çšã§ããŸãã
- ã¬ã¬ã·ãŒã³ãŒãã®ãã©ãã§ãããã䜿çšããŠãé ä¿¡ãã€ãã©ã€ã³ã®æåã®æ®µéã§éçåæã®çµæã«åºã¥ããå質ã²ãŒããå®è£ ããŸãã
ãªãã¡ã¬ã³ã¹
é£ç¶æŸåº A. ã¯ââããªã£ããã§ã: ããã°ã©ã åæ: èªåãåªããããã°ã©ããŒã§ããããšãç解ããæ¹æ³ ã³ãŒãåââæã®ããŸããŸãªæ¹æ³ (éçã ãã§ã¯ãªã!) ã«ã€ããŠã¬ããŒãããŸãã
åºæïŒ habr.com