ä»ã§ã¯ãã€ã¯ããµãŒãã¹ãå®è£ ããã®ãéåžžã«æµè¡ããŠããŸããã誰ãããããããŸãã§ããããã§ã¯ãããŸããã ç¹ã«å€§äŒæ¥ãéè¡ã·ã¹ãã ã«é¢ããŠã¯ã äœå¹Žã誰ãã圌ã®ã¢ããªã¹ãåæããããšã¯ã§ããŸããã誰ããèé害æ§ãªã©ã«ã€ããŠç¢ºä¿¡ãæã£ãŠããŸããã
ä»æ¥ã¯ã1991幎以æ¥éèã»ã¯ã¿ãŒã®æ å ±æè¡åéã§æŽ»åããäŒæ¥ã°ã«ãŒãã§ããéèæè¡ã»ã³ã¿ãŒïŒCFTïŒã§ã®ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®å®è£ ã«ã€ããŠã話ããŸãã ã€ãŸããããã¯è£œåã®åââ質ãéåžžã«éèŠãªçµç¹ã§ãããå®éã®ãéã¯ããã«äŸåããŠããŸãã
åæ§ã«ãéå»6幎éããŠã©ãžããŒã«ããªãºã¬ã¯CFTã®ã€ã³ã¿ãŒããããã³ã¯ãšé¢é£ãµãŒãã¹ã®ããã¯ãšã³ãã®éçºã«æ²¡é ããŠããããã€ã¯ããµãŒãã¹ããã®ä»ã®ãã¡ãã·ã§ããã«ãªãã®ã«ç©æ¥µçã«drããŠããŸãã 圌ãšè©±ãããããã«ãç§ã¯çŽæ¥CFTãªãã£ã¹ã«æ¥ãŠãèªåæ®ããšèµ€ã象ã®å¿ é åçãæ®ããŸãã:-)
è°è«ããããããã¯ïŒ
- ãã€ã¯ããµãŒãã¹ãå¿ èŠãªçç±;
- ããããšå ±åããæ¹æ³ïŒRESTãšSOAPã®éåœãã¹ããŒããã«ãšã¹ããŒãã¬ã¹ãã¢ããªã¹ãããã€ã¯ããµãŒãã¹ãžã®ç§»è¡ãã¬ã¬ã·ãŒãšã®äºææ§ãªã©ïŒã
- ãã€ã¯ããµãŒãã¹æè¡ïŒSpring Cloud NetflixãZuulã...ïŒããããã«ã©ããªåé¡ãããããäœãå®äºããå¿ èŠããããã
- ããã¥ã¡ã³ããŒã·ã§ã³ïŒãã·ã¢èªãŸãã¯è±èªã§ïŒ ããã¥ã¡ã³ãã®äœæãšçæïŒSwaggerãSpringMVCãSpringFoxïŒã 建ç¯å³-äœãæãã¹ãããã©ã®ããã«ä¿åãããã
- ç£èŠãé害ããã®å埩ã
- ãŸãããããŠæãéèŠãªããšïŒã²ãŒã ã¯ããããã«å€ãããïŒ
ïŒå·ŠåŽã«ãŠã©ãžããŒã«ãå³åŽã«ãªã¬ã°ãã« ïŒ
-ç§ã®ååã¯ãŠã©ãžããŒã«ã»ããªãºã¬ã§ããCFTäŒç€Ÿã§æ°å¹ŽéåããŠããŸãã äž»ã«Javaã§ããã¯ãšã³ãéçºãè¡ããŸãã ãã以åã¯ã圌ã¯ä»ã®åéã§ããªãåããŠããŸããããããã¯åŠçãšåŠçã®æéã«èµ·å ããå¯èœæ§ããããŸãã ãã£ãšæ£ç¢ºã«èšããšãç§ã¯çŸåšéèãµãŒãã¹ãéçºããŠããŸãããããŒã«ãŒãã¯ã©ãŒãã¯ãããéèããšããèšèãèããŠãã€ã³ã¿ãŒãããéè¡ãé¢é£ãµãŒãã¹ã§ããè³ã«ããŸãã ããšãã°ãã®ããã«ãŒã远跡ãµã€ããªã©ã®ããŒã«-çŸéã®ä»£ããã«ãŠãããŒãµã«ãã©ã³ãã®ã«ãŒããæäŸãããšããããã®ã«ãŒããåãå ¥ããããå Žæãªãã©ãã§ãæ¯æãããšãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãæ·»ä»ãããŠããããã®ã«ãŒãã䜿çšããŠããã®ã«ãŒãã®ã³ã¹ãã管çããããå±¥æŽã確èªããããã¢ã¯ãã£ãåããããä»ã®å©çãåãåã£ããã§ããŸãã
-ãã®èšŒææžã«ãŒãã¯å é»å¯èœã§ããïŒ
-補åã®å€æŽã®çš®é¡ã«ãã£ãŠç°ãªããŸãã ãããã®ã»ãšãã©ã¯è£å ãããŸããã ç²åŸè èªèº«ããããäžããè ã¯ã圌ã«ãšã£ãŠå¿«é©ãªéãéåžžã¯300ã«ãŒãã«ãã15,000ã«ãŒãã«ãŸã§ã«ãŒããè£å ãããšããããäžããŸãã è£å ã§ããåå¥ã®å€æŽããããŸãã ããããããã¯èšŒææžãããªãã¡æ¯æãã«ãŒãã§ã¯ãªããæ¬æ Œçãªéèååã§ãã ããããããã¯ãããæ ä¿ã§ãããç§ãã¡ã«ãšã£ãŠã®äž»ãªãã®ã¯æ£ç¢ºã«ããªãã€ãã«ãŒãã§ããã€ãŸãã人ã ã«ãšã£ãŠã¯ãé»åçãŸãã¯æ¬ç©ã®ãŠã©ã¬ãããžã®äžçš®ã®ã«ãŒãã§ãã ããã§ã¯ãä»»æã®äŸ¿å©ãªæ¹æ³ã§ãéã䜿ãããšãã§ããå°ãªããšãã€ã³ã¿ãŒãããäžã§ãå°ãªããšãåºèã§ãå°ãªããšãæ¯æãã¢ã«ãŠã³ãèªäœïŒéåžžããã€ã³ã¿ãŒããããã³ãã³ã°ãã§ã¯ãªããæ¯æãã¢ã«ãŠã³ãããšåŒã³ãŸãïŒãä»ããŠæ¯æããŸãã ã幌çšåã®æ¯æããããå ¬å ±æéã®æ¯æãããªã©ã®åºæ¬çãªæ¯æããµãŒãã¹ã«è³ããŸã§ã®ããŒãº-åèš5,000ãè¶ ãããµãŒãã¹ããµããŒããããŠããŸã-AliExpressãªã©ã§ã®ããããçš®é¡ã®æ¯æãã§çµãããŸãã ååãšããŠãããããé»åã
ãã®ãã¹ãŠã«ãããç§ã®åœ¹å²ã¯ãçŸæç¹ã§ã¯ãããã¯ãšã³ãã«é¢ããã¢ãŒããã¯ãã£äžã®æ±ºå®ãç§ã®äžãééãããšããäºå®ã«ãããŸãã ãã€ã¯ããµãŒãã¹ã«ã€ããŠã¯ä»¥äžã§ãã çŸåšãã¢ããªã¹ãããã€ã¯ããµãŒãã¹ãžã®ç§»è¡ã®éãæ©ãã§ãããåŸã ã«ã¢ããåãé¢ããã«ãŒã«ïŒãã§ã«éå±ããŠãã人ïŒã«åŸãããã«ã¢ããªã¹ã«æ°ããæ©èœãè¿œå ããããšã¯ãããããŸããã ãŸããã³ãŒãã¬ãã¥ãŒãªã©ãåºæ¬çã«æ°ããæ©èœã«é¢é£ãããã®ãå«ãå€ãã®ããžãã¹ã¿ã¹ã¯ãééããŸãã ãŸããããã³ããã©ãŒãã³ã¹ãã¢ãŒããã¯ãã£ã®æ¹åã«é¢ããé¢é£äºé ...ããæå³ã§ã¯ãããã¯ãšã³ãéçºè ã®å žåçãªä»äºã
-ããªãã¯çŽæ¥å»ºç¯å®¶å»ºç¯å®¶ã§ããããšãã£ã¿ãŒã§ãã¥ãŒããæããŸããïŒ
-ããããç§èªèº«ã¯ãŸã ããã€ãã®çºæããããããã¯ã®ã³ãŒããçŽæ¥æžããŠããã¢ããªã±ãŒã·ã§ã³éçºè ããæé·ããŠããã®ã§ãå®éçãªç®æšãšçŸå®ã«åºã¥ããŠæ§ç¯ããããšã¯ç§ã«è¿ãã§ãã æã«ã¯æœè±¡åã®ã¬ãã«ãäžããŠãããã€ãã®ç«æ¹äœãšå³ã«ãããã¬ã€ã¢ãŠãããããšããå¿ èŠããããŸãããç§ã¯ãããã®é²ã«æµ®ãã¶ã®ã§ã¯ãªããç§ãåããªããã°ãªããªãçŸå®ã«è¿ã¥ããããã«ããŸãã ãããããã€ã¯ããµãŒãã¹ã§ããå Žåãç¹å®ã®æŠå¿µãšããã«åºæã®ãã©ãã€ã ã«ãã£ãŠç€ºãããŸãã ç¹ã«æœè±¡åããªãããã«ããŸãã
-ããããããã§ããUMLãã€ã¢ã°ã©ã ãæç»ããŸããïŒ
-ã¯ããæç»ããŸãããæ§æãæ£ç¢ºããªã©ããµããŒããããšãã極端ãªããšã¯è¡ããŸããã
-ã€ãŸãããããã¯ã³ãŒãçæã®ãœãŒã¹ã§ã¯ãããŸããã
-ããããããã§ã¯ãããŸããã
-ç§ããã®ãããªçµéšãããã ãã§ãããèšå€§ãªæ°ã®ãã€ã¯ããµãŒãã¹ãããå Žåã«åé¡ãçºçããäœãèµ·ãã£ãŠããã®ããå®å šã«ææ¡ããããšèããŠããŸãã ãã®å šäœåãç¶æããæ¹æ³ãç®ã®åã§ãããä¿®æ£ããæ¹æ³ïŒ
-çŸæç¹ã§ã¯ãå察ããé²ãã§ããŸãã åçãããã€ã¯ããµãŒãã¹ãçæããã®ã§ã¯ãªãããã€ã¯ããµãŒãã¹ããåçããµããŒãããŸãã ããæå³ãããçš®ã®UMLã§ããã¹ããŒã ããããŸãã ããããç§ãã¡ã¯äž»ã«ãã®èªèããµããŒãã®å®¹æãã«éç¹ã眮ããæ§æãšã«ãŒã«ã®ãµããŒããç¡çããªãããšã匷調ããŸãã çŸæç¹ã§ã¯ãç§ãã¡ã¯ãã®æ¹åã«ã¯ããŸãåããŠããŸãããããã¯ç§ãã¡ãæºè¶³ããã以äžã®ãã®ã§ãã ç§ãã¡ã®ã¹ããŒã ã«ã¯ããã¥ã¡ã³ããžã®ãã€ããŒãªã³ã¯ãå«ãŸããŠãããããèªäœã«ã¯ããã€ãã®èŠåãããããããäœããã©ãã§ãã©ã®ããã«ç€ºãããŠãããã«ã€ããŠã®äŒèª¬ããããããã«ããç§ãã¡ã¯çŸåšãéåžžã®åãã«ãªã£ãŠããŸãã åé¡ãããŸããã
-ãœãŒã¹ããåçã«çæãããŸããïŒ
-ããããConfluenceã§åœŒå¥³ããµããŒãããŠããŸãã Gliffyãã©ã°ã€ã³ã䜿çšãããšãæœè±¡çãªå³ã®ã¬ãã«ã§ç»åãç°¡åã«ç®¡çã§ããŸãã 1ã€ã®ãããã¯ããã©ãã°ã¢ã³ãããããããŠãããªã³ã¯ãæåã§åæç»ããå¿ èŠã¯ãããŸããã æåéãããããã®åºæ¬çãªããšã¯ãããŸã§ã®ãšããç§ãã¡ãæºè¶³ãããŠããŸãã ã»ã¯ã·ã§ã³ãå¥ã ã®å³ã«åå²ãããšããäºå®ã«ãããå šäœåããµããŒãããå¿ èŠã¯ãããŸãããããã¯ããã®åœ¢åŒã®ç¥èŠã«ãé©ããŠããªãããã§ãã ããªããèœã¡ãŠå¥ã®å€ç«ãããšãªã¢ãèŠãããšãã§ãããããã¯ããããŸããããã¯çŽæ¥ç¥èŠã«ãé©ããŠããŸãã
-ã·ã¹ãã ã¯éåžžã«çŸãããæèœã§ãæ£ç¢ºã«èšèšãããŠããããããããã®ãããã¯ã¯å¥å šãªæ§é ãæäŸããŸããïŒ
-çŸæç¹ã§ã¯ãã¯ãã ç§ã¯ç¹ã«èªæ ¢ããŸããããããã¯æèœãªã¢ãŒããã¯ãã£ãããã·ã¹ãã ã®è¥è ã«ãã£ãŠããåºç¯å²ã«èª¬æããããšæããŸã:-)ãã¡ãããç§ãã¡ã¯ããããµããŒãããããšããŸãã å€ãã®åé¡ãçºçããå¯èœæ§ããããŸã-ç§ãã¡ã¯ããããå éšçã«æ瀺ããæºåããæŠè£ ããŸããããã®ã°ããŒãã«ãªåœ¢ã§ã¯ããŸã äœçŸãã®ãã€ã¯ããµãŒãã¹ã«ã€ããŠè©±ããŠããªãã®ã§ãã¿ã¹ã¯ã¯ãŸã çºçããŠããŸããã
-ããŠããã€ã¯ããµãŒãã¹ã¯ããã€ãããŸããïŒ
-æ°åã®åäœã
-ããæªããªãã å€ãã®ãã®ã¯ãããŸãã:-)
ãããããç§ãã¡ã¯ãŸã æ ã®å§ãŸãã«ããŸããã
-ãã®æåã®èª²é¡ã¯äœã§ããïŒ
-æè¡éçºã建ç¯ã®é¢ã§ã®ã¿ã¹ã¯ïŒ
-ããããé¢ã§ã®ã¿ã¹ã¯ã ããªãã¯ããã®å»ºç¯å®¶ã§ãïŒ
-ç§ã¯å»ºç¯å®¶ã§ããããŸã第äžã«ããžãã¹ã®ããŒãºããå§ããŸãã äŒæ¥ã¯ä»ãã䟡å€ãç²åŸããããšèããŠããŸãã ç§ãã¡ã¯ã¢ãžã£ã€ã«ã«ãªãããšããŠããã®ã§ãããã€ãã®ãã®ã¯åœ¹ã«ç«ããªããããããªããšä»®å®ããŸãã äœãã«æè³ããã°ãåå£ãå®éšããã¹ãã調æ»ããŠããããšãããããŸãã ããã«åºã¥ããŠãéçºãšã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠããã¹ãŠã®ãªããžã§ã³ãã§ããã ãå®ããªãããã«ããå¿ èŠããããŸããéåžžã«å®äŸ¡ãªã®ã§ãæšãŠãã®ã¯æ®å¿µã§ãããããŸããã ãã¡ãããããã¯çµ¶å¯Ÿçãªããšã§ã¯ãããŸããããããã§ããçŸåšã®æ¹åã®ãããã§ãã¢ããªã¹ã«æ£ãã°ãããšãªããäœããã®åœ¢ã§ããã€ãã®ããŒã¹ãåŸã ã«ã«ããããããšãã§ããŸãããã®æšªã«ãã®ãããªå€§ç¿ãäœããŸãã åçãããããã©ã®ããã«åäœãããã確èªãã䟡å€ã®èŠ³ç¹ãããšã³ããŠãŒã¶ãŒã«ã©ã®ãããªãã®ã«ãªããã確èªããå¿ èŠã«å¿ããŠç Žæ£ããŸãã ãããã®3ã€ã®åªå é äœã«åºã¥ããŠïŒé床ãå®ããããã³ä»ã®ã³ã³ããŒãã³ãããã®ç¬ç«æ§-ã³ã³ããŒãã³ããããã«éçºããããšããŠããŸãã
ç§ãã¡ã倧ããªèšèããè¡çºã«ç§»ããªãããããçŽç²ã«æè¡çã«æããã«ããããã®ã§ã ã¢ããªã¹ãäœããªãããã«ããªããã°ãªããŸããã ããã¯ãã§ã«ç§ãã¡ã«ãšã£ãŠéåžžã«å€§ãããç§ãã¡ã¯ããããã³ã¢ããšåŒã³ãŸã-ããã«é¢ä¿ãããã¹ãŠã¯ãæ žãããæ žããä»ã®äœããã®åœ¢ã§...äžè¬çã«ã¯ããã¯ãããã«å ¥ãæ¹æ³ã¯ãããŸãã åœç¶ããã®ã³ã¢ãšããã«ä»éãããµãã©ã€ãã®åå ãªãã«ãå€éšã¯ã©ã€ã¢ã³ãïŒããã¯WebãšããŸããŸãªã¢ãã€ã«ãã©ãããã©ãŒã ã®äž¡æ¹ã§ãïŒãšã®éä¿¡ãæ§ç¯ããå¿ èŠããããŸãã ã€ãŸãããã¹ãŠã®æ¥ç¶ããšã³ããªãã€ã³ããä»ããŠçŽæ¥è¡ããããã«ãŒãã¬ãã«ã§ãããŒããã©ã³ãµãŒã¬ãã«ã§ããã€ã§ãåæãããã®ãã©ãã£ãã¯ãåãæ¿ããŠãåäžã®ã¹ã¬ããã§ã«ãŒãã«ã«æ³šããšããããæè»ã«å¶åŸ¡ã§ããŸãã
ããã«ãã§ããéãå®äŸ¡ã«ãªãããã«ãéçºèªäœããã«ãããããšããŸãã ãã€ã¯ããµãŒãã¹å šäœããããŸã-æ¬æ Œçã§åäœããŠããŸãããäœãããŸããã ãããŠãããã¯ãã®å¯äžã®ç®çãæãããŸã-æ®ããäœæããããã®ãã³ãã¬ãŒãã«ãªãããšã ç§ãã¡ã¯ãããæãã«ã³ããŒãããã§ã«ãã¹ãŠãç¥ã£ãŠããããã®äžã§ãã¹ãŠãçºçããæ§æãããŠãããCIãã¹ãã«é©å¿ããæŠå Žã§ã®æ¡åŒµã«é©å¿ããŠããããã§ã«ç°¡åã«åçºããããšãã§ããŸãã ããã¯å ·äœçã«ã¯ãéçºè ãæ°ãããã€ã¯ããµãŒãã¹ãéå§ããããã®æå°éã®åŽåã§ãä»æ¥ãã¬ã€ããæç¹ãŸã§-ã²ã£ããè¿ããŠæšãŠãªããã°ãªããªãããã«ããããã«è¡ãããŸããã
-ãã®ãã³ãã¬ãŒãã¯äœã«åºã¥ããŠããŸããïŒ Spring Cloudã®ãããªäžè¬çãªãã®ãããããšãéããã®ãïŒ
ãæ¢è£œã®ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ã®å Žå...ããããããã®æ¹æ³ã¯æ¡çšããŸããããåå¥ã®ã©ã€ãã©ãªã䜿çšããŸããã ããã¯ãŸãããŠãŒã¬ã«ããºãŒã«-ãµãŒãã¹ã®ã¬ãžã¹ããªããšã³ããªãã€ã³ãã®æšæºãœãªã¥ãŒã·ã§ã³ã§ãã
-æ¢ã«äœ¿çšããŠããŸããããããšãéçºã®æ¹åã§ããïŒ
-ãã§ã«äœ¿çšããŠããŸãã ãšã³ããªãã€ã³ããšãµãŒãã¹ã¬ãžã¹ããªã¯ãã§ã«åäœããŠããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ããã¹ãããããã«ããšã³ããŠãŒã¶ãŒããã®æŠéãã©ãã£ãã¯ã§ã¯ãªããããŸãã¢ã¯ãã£ãã§ããŒããããŠããªãã³ãŒã«ã»ã³ã¿ãŒããã®è£å©ãã©ãã£ãã¯ãèªå°ããŸããã ãã€ã¯ããµãŒãã¹èªäœã®ããŒã¹ã«é¢ããŠã¯ãããã¯ååãšããŠä»ã®ãã¹ãŠã®äººã«ãšã£ãŠã®Spring Bootã§ãã ã裞ããšèŠãªãããã©ããããããŸããã ãã¡ãããããã€ãã®è¿œå ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãã»ãšãã©ã®å ŽåãåãSpringã®ãã¬ãŒã ã¯ãŒã¯ã§ãã ç§ãã¡ã¯æ¥ã®æ±ºå®ã«æãçŠç¹ãåœãŠãŠããŸãã
-ããããããªãã¯èªåã§ããããã蟌ã¿ãŸãããããããšãäœãåããŸãããïŒ ããšãã°ãSpring Cloud Netflixã ã€ãŸãã泚éãRestTemplateãªã©ã§ãã
-ã¯ãã ä»ãç§ãã¡ã®ãã€ã¯ããµãŒãã¹ã®çµéšã¯ããšã³ããªãã€ã³ããã€ãŸããµãŒãã¹ã¬ãžã¹ããª-ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®èŠ³ç¹ãã-ã¯éåžžã«å°ããããšã§ãã ã»ãšãã©ãã¹ãŠãã¢ãããŒã·ã§ã³ãè¿œå ãããšããäºå®ã«åž°çããæ®ãã®é åã¯Javaã³ãŒãã®å€åŽã«ãããŸãïŒãããã¯ãã«ãã¹ã¯ãªãããéå§ã¹ã¯ãªãããããã³ãã®ç°å¢ãšçŸå®ãCI / CDãããã«éçºè ãžã®é©å¿ã«é¢ãããã¹ãŠã§ãã ãã ãããšã³ããªãã€ã³ãã§ã¯ãè¿œå ã®ã¢ã¯ã»ã¹å¶åŸ¡ãã»ãã¥ãªãã£ã®åé¡ãããã³APIã®äžäœäºææ§ã確ä¿ããããã®ãã£ã«ã¿ãè¿œå ããŸãããäžè¬çã«ãç¬èªã®ã¢ããªã³ããããŸãã ãããããã£ã«ã¿ãŒã®æŠå¿µã§ããããZuulã©ã€ãã©ãªãŒèªäœããååŸããæœè±¡åã§ãããSpring Cloudã«åã蟌ãŸããŸãã
-ããã£ãã ãµãŒããããã¬ãŒã«ãŒãªã©ãããããçš®é¡ã®ãã®ã䜿çšããŸããïŒ
-ã¯ããè¡ããŸãã ããããç§ãã¡ãéãŸããããªç¶æ³ããããŸãããç§ãã¡èªèº«ã¯ãã§ã«ããã䜿çšããŠããŸãã Spring Cloudã®é ä¿¡ã§Zuulã«ã¯ãã§ã«Hystrixãå«ãŸããŠãããæ¢ã«æ©èœããŠãããã¿ã€ã ã¢ãŠããèšå®ãããŠããããšãèæ ®ããŠãèšå®ãåŠçããããšãæ¢ã«äœåãªããããŠããŸãã ç§ãã¡ã¯ããã䜿çšããŸãããå¯èœãªéãæèçã«ãããè¡ãããã¹ãŠãå¶åŸ¡ãããšã¯èšããŸããã
-äœããçµããããšãã欲æ±ã¯ãããŸãããïŒ ããšãã°ããŠãŒã¬ã«ã§ã¯ã ãŸãã¯ãºãŒã«ã§ã
-幞ããªããšã«ãZuulã¯ãã®ãããªæ¬²æ±ãçããªãããã«ååã«æè»ã§ããããšãå€æããŸããã ãããããåãã€ããŠããŸãã GitHubã«ãªã¯ãšã¹ãããŒã«ããããŸãã ããããç³ãèš³ãããŸããããçŸåšã¯åãªãåé¡ã§ãããããŒã«ãªã¯ãšã¹ãã¯éçºäžã§ãã äžè¬ã«ãZuulã¯ãã®ãŸãŸã§ã¯ã«ã¹ã¿ã HTTPã¹ããŒã¿ã¹ããµããŒãããªãããšãå€æããŸããã ãã«ã¹ã¿ã ããšã¯ãRFCèªäœã«ãã£ãŠHTTPãããã³ã«ã«å¯ŸããŠæšæºåãããŠããªããã®ãæå³ããŸãã 431-å¿ èŠã¯ãããŸãããã©ã®ããã«ãèšå®ãããŠããŸãããã©ãã«ãèŒããŸããã Zuulã§ã¯ããšã³ããªãã€ã³ããä»ããŠå€éšã«ãããã·ãããçä¿¡ã³ãŒãã¯ãZuulèªäœã®åããœãŒã¹ã³ãŒãã«çž«ãä»ããããåæã®èŠçŽ ã®1ã€ã«å¿ ã察å¿ãããšããäºå®ã«åºã¥ããŠèšèšãããŠããŸãã ãããŠããããã³ã°ãååšããªãHTTPã¹ããŒã¿ã¹ãããã«å°çãããšãããã¯èœã¡ãŸãã ããã«ãããã¯éåžžã«ã²ã©ãèœã¡ãåé¿çã¯ãããŸããã ç§ã¯åœŒãã«æçŽãæžããã圌ãã¯çãã-ãŸããã¯ããããããããããããä¿®æ£ããŠã¿ãŠãã ããã ç§ã¯ããããäž»ãªæ éãçºçããå Žæã§ãããçŽç²ã«ãããã°ã®åœ¹å²ãæ ã£ãŠããããšã«é©ããŸããã ãªã¯ãšã¹ããé©åã«ãããžããããããã«ãªã¯ãšã¹ãã®äžéšãåãããšãæå³ããŠãããããã¯ãæ£ç¢ºã«ãããããã¢HTTPã¹ããŒã¿ã¹ã§ã¯ãªãããã®ãŸãã«åæã®èŠçŽ ããã°ã«èšé²ããããšãæå³ããŸãã
-ã©ãããŒãå±éããå¿ èŠããããŸãã
-ãããŠãããã¯ãªãã«ããããšãã§ãããããã°ã®ããã«ããããããã®ã¬ãã«ã§ããããŸã åäœããããšãå€æããã¢ããªã±ãŒã·ã§ã³å šäœãã¯ã©ãã·ã¥ããŸãã å®éããã®åé¡ã®é倧床ã¯äœäžããŠããŸãã ã«ã¹ã¿ã HTTPã¹ããŒã¿ã¹ããããããšã«ã€ããŠèããå€ããŸããã
ããªãããããå¿ èŠãªã®ã§ããïŒã
-1ã€ã®ã¢ã€ãã¢ããããŸãããèå³æ·±ãå Žåã¯ãç°¡åã«èª¬æããŸãã ãããã䜿çšããŠãçºçãããšã©ãŒã®ãã¥ã¢ã³ã¹ããŸãã¯äžè¬ã«æéã®ãã€ã¯ããµãŒãã¹ããã®å¿çãäŒããããšèããŸããã ç§ãã¡ã«ãšã£ãŠããã¹ãŠã®ããžãã¹ã·ããªãªã¯ãçµæããã®ããããçš®é¡ã®ããŸããŸãªéžè±ãæå³ããŸãã ãŸããã¯ã©ã€ã¢ã³ãã«ãšã£ãŠãããžãã¹ã·ããªãªãšåã¹ããããã©ã®ããã«çµäºããããç¥ãããšã¯ãã°ãã°éèŠã§ãã åéä¿¡ã¯ãŠãŒã¶ãŒãæèããã¯ã©ã€ã¢ã³ããèªåã§åè©Šè¡ããããåŸã§åè©Šè¡ããå¿ èŠãããå ŽåããããŸãã ããã¯ãããã«äœããå€æŽããããã®ææ¡ãå«ããã€ã¢ãã°ããã¯ã¹ã®å¿ èŠæ§ã瀺ããŠããå ŽåããããŸãã ç¹å®ã®äŸãæãããšãããªãã€ãã«ãŒãã«ééãããµãŒãããŒãã£ã®éè¡ã«ãŒãããè¿œå æéãåãåãããšãã§ããŸã-ãã®ããã»ã¹ã«ã¯ããã€ãã®ãªã¯ãšã¹ããããããããã®ããã€ãã¯ãµãã·ããªãªã§ããã«ã¢ã¯ã·ã§ã³ãåå²ããããšãã§ããŸãã ãã®ãããªããšã¯ãã«ã¹ã¿ã HTTPã¹ããŒã¿ã¹ã«èª²çšãããã ãã§ãã APIã¬ãã«ã§èªåèªèº«ãšçŽæ¥äº€æžãïŒAPIå šäœãSwaggerã§ææžåãããŸãïŒãããã«æ¬¡ã®åœ¢åŒã§èšè¿°ãããŸãïŒã¹ããŒã¿ã¹+ã¯ã©ã€ã¢ã³ããè¡ãå¿ èŠãããããšã ãããã¯ã¯ããã€ãã®çç±ã§å ¥ããŸããã§ããã ããŸããŸãªçç±ããããŸããããäž»ãªçç±ã®1ã€ã§ããåœæãæ¢åã®ã¢ããªã¹ã«ã¯æ¢åã®APIãããããšã©ãŒã®è²åããHTTPã¹ããŒã¿ã¹ã®åœ¢åŒã§ã¯ãªããå¿çã®æ¬æã®ãã£ãŒã«ãã®åœ¢åŒã§äŒããããšãäžè¬çã§ããã
-ãŸãã¯ãHTTPããããŒãé 眮ããæ¹ãè¯ãã§ããããïŒ
-ããããŒãæã€ããšã¯å¯èœã§ããããããã«ããŠããããã«ã¯APIã®å€§å¹ ãªå€æŽãå¿ èŠã§ãããåŸæ¹äºææ§ã¯ãããŸããã åé¯ããŠäžäœäºææ§ãæãããããšãã§ããŸããããããã«ã¯ååãªæ°ã®ã¯ã©ã€ã¢ã³ãããããããç¡æéã«åç¶ããå¿ èŠããããŸãã ããããã¹ãŠãæ€èšããçµæãæ°ããAPIã«ãŸã ã¯ããŒã«ããŠããªãã¯ã©ã€ã¢ã³ããšã®äžäœäºææ§ããµããŒãããããã«ãè¿œå ã®ããžãã¯ã®å·šå€§ãªã¬ã€ã€ãŒãèåŸã«ãã©ãã°ããããããå€ãAPIãããããŠé©å¿ããæ¹ãç°¡åã§ããããšãããããŸããã ç°¡åãªããšã§ã¯ãããŸããã§ãããã¯ã©ã€ã¢ã³ãããŒãã®éçºè ãç§ãã¡ã«ãããããè¿œå ã®ç¶æ³ããããããããŸããããæçµçã«ãã®æ±ºå®ã«èœã¡çããŸããã
ãããªãã¯Swaggerãšèšã£ããã ããã䜿çšããç¿æ £ã¯äœã§ããïŒ ã©ããããããã§ããïŒ æ¥œãããŸãã¯äžå¿«ãªç¬éã¯ãããŸããïŒ
-ååãªãããããã³ä»ã®äººã ç§ãã¡ã¯ãã§ã«ããã«åãçµãã§ããã®ã§ããã£ãšæ¥œãããã®ãããã€ããããšãããŠèšããŸãã ãŸããç§ãã¡ãåŸãæãéèŠãªããšã¯ïŒããã§ã¯Swaggerã®ã¡ãªããã¯ããã»ã©å€§ãããããŸãããïŒã説æã®åçŽãã§ãã ããŸããŸãã¢ããªã¹ãPlay Frameworkäžã«æ§ç¯ãããŠããŸãã Playã«ã¯Swaggerããã¥ã¡ã³ããçæããããã®ãã©ã°ã€ã³ããããŸããããã€ãã®ããã«ãæŽå²çãªçç±ãããç°ãªã人ã ãç°ãªãææã«ããããæžããŠããããããã®ãã©ã°ã€ã³ã¯äœã«ãäžåãã§ãã ãããã£ãŠãããã¥ã¡ã³ãã¯æåã§äœæããå¿ èŠããããŸããã ãŸã£ãããªä»æ§ã§ããŸã£ãã座ã£ãŠæã§æžããŸãã
ãäžçã®ã»ãšãã©ãä»ãã£ãŠããããã«ãã
-ãããã奜ããšå¥œãŸãããšã«ããããããããªãã¯åãã³ãŒããæžãããšãèªããªããã°ãªããŸããã
-ãããŠåã³javadokã§ã ãããŠã4åç®ã®ãã¹ãã§ãã
-ã¯ãïŒ ãªãã§ïŒ ç§ã¯æ¬åœã«ããã§ããããã®ãéãç¯çŽãããã£ãã®ã§ããã€ã¯ããµãŒãã¹ã®éãé²ãã ãšããèªè»¢è»ãçºæããªãã£ãã®ã§ãããã€ãã®è§£æ±ºçãåæããŸããã çŸæç¹ã§ã¯ãSpringFoxã¯æãäž»æµã§æãéçºããããœãªã¥ãŒã·ã§ã³ã®ããã§ãã 圌ã«ã€ããŠäœãç¥ã£ãŠããŸããïŒ
-ããããäœããããŸããã ä»ãç§ã¯ååãç¥ã£ãŠããŸãã
-ãã®Swaggerããã¥ã¡ã³ããžã§ãã¬ãŒã¿ãŒã¯ãSpringèªäœã®ã³ã³ãããŒã©ãŒèšè¿°ã«åºã¥ããŠããŸãã ç¹ã«ãSpring Bootã§ã ãããå®éã«ã¯ãBootã®äžã§ã¯ããŸãã·ã£ãŒãã§ã¯ãããŸãããããã¹ãŠã®æ³šéãç±æ¥ããSpringMVCã«çŠç¹ãåœãŠãŠããŸãã ãããã圌ã¯Spring Bootãšåéã§ãã ã¢ã€ãã¢ã¯ãAPIã®æ§é ãã¡ãœããã®ã»ããããããã®ãã©ã¡ãŒã¿ãŒãæ¢ã«ã¡ãœãããšã¢ãããŒã·ã§ã³ã®åœ¢åŒã§ã³ã³ãããŒã©ãŒã«èšè¿°ãããŠãããããããæœåºã§ãããšããããšã§ãã ãããäœæ¥ã®å€§éšåã§ãããããã¥ã¡ã³ãã®éªšçµã¿ã§ãã æ¬ ããŠããã®ã¯å£é ã§ã®èª¬æã ãã§ãã ããããã³ãŒãèªäœã«æ³šéãè¿œå ããã®ãç°¡åã§ããããšã¯æããã§ãã SpringFoxã¯ãã®ãã¹ã«æ£ç¢ºã«æ²¿ã£ãŠç§»åããŸã-Swaggerã¢ãããŒã·ã§ã³ïŒããæ£ç¢ºã«ã¯ãswagger-annotationãµããããžã§ã¯ããããããã¯ãžã§ãã¬ãŒã¿ãŒã®äžéšã§ãïŒãååŸãããããã®ã¢ãããŒã·ã§ã³ãSpringã®ã³ã³ãããŒã©ãŒïŒSpringMVCããã®å Žåã¯SpringBootïŒã«é©çšããŸãã ãã®åŸããªã³ã¶ãã©ã€ã§è§£éãããSwaggerä»æ§ãçæãããŸãã ããã«ãã1ã€ã®é å-ãã€ã¯ããµãŒãã¹ã®äžéšãšããŠãå¥ã®ãšã³ããã€ã³ãïŒå¥ã®ããŒãã§ã¯ãªããå¥ã®ã³ã³ããã¹ãïŒãå ¬éããSwagger UIïŒãããã®çŸããç·ã®HTMLãã©ãŒã ïŒãéããŸããèªãããã ãã§ãªããããªããããã§éã¶ããšãã§ããããã«-è©Šçšãã¿ã³ã¯ããã«ããã¯ã¹ããæ©èœããŠãã€ã¯ããµãŒãã¹ã«ãªã¯ãšã¹ããéä¿¡ããŸãã äžèŠãããšãéæ³ã®ããã«èŠããŸããä»æ§ãæåã§èšè¿°ããå¿ èŠã¯ãªããåæã«å©çšå¯èœã§ãã ããããªã¯ãšã¹ãããŠãSOAP UIãŸãã¯Postmanã«ãã£ãŒãã§ããå¥ã®URLããããŸãã ããã¯ãã¹ãŠãã§ã«ãããŸãã ããã«ãåãã€ã¯ããµãŒãã¹ã®ããŒãã«ããã¥ã¡ã³ããå±éãããŠããïŒæ€çŽ¢ããå¿ èŠã¯ãªããã©ããã«èšæ¶ããå¿ èŠããããŸãïŒãèªãã®ã«é©ããŠããŸãã ãã1ã€ã®å©ç¹ã¯ãã³ãŒãã®å€æŽã¯ããã¥ã¡ã³ãã®å€æŽã䌎ãããšã§ãã ãã®ãããªäœããæžãããšãè©Šã¿ãããšã¯äŸç¶ãšããŠå¿ èŠã§ãããåãå Žæã§ããªããããã¹ãã®åœ¢ã§ã»ãŒåãããšãæžãããšã«æ°ä»ããªãã ãã¡ãããããã¯ãã®ãããªæ±ºå®ã®äžå¯æ¬ ãªãã©ã¹ã§ãã
ããããæ£çŽã«èšã£ãŠãããã¯äžå®å šã§ãã ãã¹ãŠãã¹ã ãŒãºã§ã¯ãããŸããã SpringFoxèªäœã¯æ³šéãšSpringã®ã¯ãšãªæ§é ã«ç²ŸéããŠããŸãããå®å šã§ã¯ãããŸããã ç¹ã«ãã³ã¬ã¯ã·ã§ã³ã«åé¡ããããŸãã ã¡ãœããããã³ã¬ã¯ã·ã§ã³ã¿ã€ããè¿ããããšãUIã«æ²ãã£ãŠè¡šç€ºãããŸãã ããã«ã裞ã®SwaggerãæäŸãããã¹ãŠã®ãã©ã¡ãŒã¿ãŒã調æŽã§ããããã§ã¯ãããŸãã-èæ ®ãã¹ããŠã£ãã·ã¥ãªã¹ãããããŸãã ããã€ãã®ç²ãããããŸãã ããããå šäœãšããŠã¯ãéåžžã«å¹æçãªã¢ãããŒãã§ãã ããããçå®ã¯ããããã®ããã«åç·šæããªããã°ãªããŸããã§ããã 以åã«ã³ã³ãããŒã©ãŒèªäœã«ããžãã¹ããžãã¯ãè¿œå ããããšã«æ¥ãããããªãå ŽåïŒããšãã°ãã¢ãããŒã·ã§ã³ã¬ãã«ã§è¡ãããªãã£ãå Žåã®æ€èšŒïŒãããŒã ã¬ãã«ã§èããå€ããå¿ èŠããããŸããã ç§ãã¡ã«ãšã£ãŠã®ã³ã³ãããŒã©ãŒã¯ãšã³ããªãŒãã€ã³ãã§ãããããã¥ã¡ã³ãã®ãœãŒã¹ã§ãããšèšããŸãã ããšãã°ãé©çšãããæ€èšŒã®ããžãã¹ããžãã¯ã¯ååšããªãã¯ãã§ãã ããã§ãªããã°ããããã¯èªããªããªããåã¡ãœããã«ã¯ããããã®æ³šéããããŸãã åäžã®@RequestMappingã¡ãœããã@ ApiOperationã@ ApiResponseãªã©ã§ã¯ãªãããã¹ãŠã®çš®é¡ã®ç°ãªã泚éãçªç¶è¡šç€ºãããŸãã
-ã³ãŒãã·ãŒãã®ååã«æ³šéãèšå ¥ãããŠããŸããïŒ
-çŸå®ã«ã¯ãããã¯ããã«èµ·ãããŸãã ããããããžãã¹ããžãã¯ãåã ã®ãµãŒãã¹ã«å§ä»»ããããšã«åæãããšããäºå®ã«ããããã¹ãç¯å²ãæ¹åãããæ確ãªç·ãåŒãããšãã§ããŸããã ã³ã³ãããŒã©ããããããã¥ã¡ã³ãã®ãœãŒã¹ãšå€éšãšã®éä¿¡ãšãã2ã€ã®åé¡ã解決ããŸãã ãããŠããµãŒãã¹ã®ã¢ããªã±ãŒã·ã§ã³ããžãã¯ã§æ¢ã«æ®ããå®è¡ããŸãã
-ããã°ã©ããŒã¯åžžã«ãã®ããã¥ã¡ã³ããæžããŠããŸããããããšãããã¥ã¡ã³ã¿ãªãŒããããŸããïŒ
-ããããç§ãã¡ã¯éçºè ã ããæžããŠããŸãã
-ãããŠãããã¯éåžžãç²ããªãã§åžžã«èµ·ãããŸããïŒ
-ããã§ã¯ããã€ã¯ããµãŒãã¹ã§ã¯ãéåžžã«ç°¡åã§ãã ãã¹ãŠã®ç²ãã¯ãéçºè ãæåã§ã¢ããªã¹ã®ããã¥ã¡ã³ããä¿æãããšãã§ããã 圌ãã¯åžžã«äœããå¿ãã絶ããåæ£ããæ代é ãã«ãªããã¢ãã€ã«éçºè ã¯ããã¥ã¡ã³ããŒã·ã§ã³ãå€ããªã£ãã®ã§åªãããŸãã-ããã¯æ¬åœã«é«ã§ããã ãããŠä»ããããèµ·ãã£ããšããéçºè ã¯å¹žããªã ãã§ãã
-ã©ã®è£œåãã¿ãŒã²ããã«ããŠããŸããïŒ
-ãã·ã¢ãžã
-ãããŠãææžã¯ã©ã®èšèªã§æžãããŠããŸããïŒ
-ãã·ã¢èªã ç§ãã¡ã«ã¯ç¬èªã®ããŒã ãããããªã¢ãŒããªãã£ã¹ãå«ãå€åœäººã¯ããªããããå šå¡ãã·ã¢èªã§è¡åããŸãã
-ãã®ããã¥ã¡ã³ãã¯ã瀟å ã§ã®äœæ¥çšã«çæããããã®ã§ããïŒ ãŸãã¯ãå€éšã®è«è² æ¥è ã«æž¡ããŸããïŒ
-ç§ãã¡ã«ã¯ãã®ãããªçµéšããããŸããããä»ã¯ããã§ã¯ãªãããã·ã¢èªã話ãè«è² æ¥è ãããŸãã
-ãšãŠãã©ãããŒã§ãã
-ããã£ãïŒ
-ãã®SpringFoxã®ã³ãŒããèŠãŸãããïŒ æ¬åœã«ãããå Žåã¯ãããããé©çšã§ããŸããããããšãå°çã®ãããªé«ã¯ãããŸããïŒ
-ã¯ããã§ããŸãã ãã¡ãããéèŠãªå ŽæããããŸãã ããããå šäœçã«ã¯æ®éã«æžãããŠããŸãã ãã°ããããšã¯èšããŸããããæªãã¯ãããŸããã ããããçš®é¡ã®æ»ããããå Žæãä¿®æ£ããããã«ããã§ã«æ°åæãæããŠããŸããããæéãèŠã€ãããŸããã§ããã ãããŠç¬¬äºã«ãããªã掻çºãªäººã圌ã®åŸãã«ããŠã圌ãã¯åœŒãããªãããèŠãŠããŸãã ç§ãã¡ãæãã»ã©ã¢ã¯ãã£ãã§ã¯ãããŸããããå®æçã«ããã€ãã®ã¢ããããŒããå ¬éããŠããŸãã 確ãã«ããããŸã§ã«ãŠã£ãã·ã¥ãªã¹ãã®ã©ããã«ããŒãããŠããŸããã
-HTTPã«é¢ããŠïŒç¹å®ã®æ¹æ³è«ãããšãã°RESTã«ãªã¯ãšã¹ãã課ãããšããŠããŸããïŒ
-ã¯ããç§ãã¡ã¯è©Šã¿ãŠããŸãã ãã€ãŠããã€ã¯ããµãŒãã¹ãžã®ç§»è¡ãå§ãŸã£ãåœåãç§ãã¡ã¯ããã«éåžžã«é Œã£ãŠããŸããã è°è«ãã話ãåã£ãŠãçœç±ããè°è«ããããŸããã
ãããããå°çäžã§ãã¯ããŠãåŒã£åŒµãããšã¯éåžžéåžžã«å°é£ã§ããã ããã¯ã©ãã§ããïŒ
-æŽå²çã«ããã¯ãã€ãéãã§ãã èŠããŠãããªãã以åã®APIãšã®åŸæ¹äºææ§ã®åŒ·å¶ãµããŒãã«ã€ããŠã¯æ¢ã«èšåããŸãããããã®APIã«ã¯èšå€§ãªæ°ã®é¡§å®¢ãããŸãã äœåäžäººãã®äººã ãé»è©±ãã€ã³ã¹ããŒã«ããŠããŸãã ãããŠããã®APIãšã®åŸæ¹äºææ§ãç¶æããããšãäœåãªãããããšããäºå®ã®ããã«ãããããç¹ã§å®ããã§ãããšããç§ãã¡ã®ãã¹ãŠã®è©Šã¿ã¯äžçäžããoffããŸããã ãããŠãAPIã¯ãæ§ããã«èšã£ãŠããå®å šã«å®ããããã§ã¯ãããŸããã ãšã³ãã£ãã£ãåé€ãããç·šéãããã«é¢ä¿ãªããPOSTãšGETã®ã¿ã䜿çšããŸãã RESTå šäœãæ§ç¯ãããããšã³ãã£ãã£ããªã©ã®æŠå¿µ-圌ãã¯ãŸããç¹ã«ãããéµå®ããŸããã§ããã ããã§ã¯ããã®ã¢ãããŒãã¯Javaèªäœã«äŒŒãŠããŸããäœããã®æ¹æ³ããããŸããååãã¢ãã¬ã¹èªäœã«è©°ã蟌ã¿ãŸãããã ããã§ã¯ããã®ã¢ãã¬ã¹èªäœãgetBySomethingã«ååšããŸãã ãã®ã¢ãããŒãã¯ã²ã©ããã®ã§ã¯ãªããæ£åžžã«æ©èœããŠããŸãã RESTã䜿çšãããšããã¡ãããããç°¡æœã§ãããã«ãªããŸãããAPIãååã«å€§ããã倧人ã§ããã«ãããããããé©çšããã倧ããªäŸ¡å€ã¯æããŸããã§ããã åäžã®ãã©ãã€ã ã¯ååšããªããšããäºå®ã®ããã«ã圌ã¯ãããã¹ãã«ãªããªã¹ã¯ãåããããã«æããŸããããååãšããŠããã¯ã²ã©ãå€æããŸããã ãããŠä»ãç§ãã¡ã¯é ã®äžã«ããã€ãã®RESTãããã眮ããŠäœ¿çšããããšããŠãããšããäºå®ã«ãããããããæ¬è³ªãæåç·ã«ããããã«ã¡ãœããã®ã¢ãã¬ã¹ãèšèšããããšãã次ã«ãããããã€ãã«åå²ãããã¹ã©ãã·ã¥ã«ç¶ãç¹çŽ°ãã¯èŠæ±ã®å¥¥æ·±ãã«ãããŸãããäžäœäºææ§ã®ãããã®åŽé¢ã«éå®ããå¿ èŠããããŸãã ã€ãŸãããã®ãããªæºRESTããããŸãã
-ã¹ããŒãã¬ã¹ãŸãã¯ã¹ããŒããã«ïŒ
-ãã€ã¯ããµãŒãã¹ã¯çŸåšãã¹ãŠã¹ããŒãã¬ã¹ã§ãã 1ã€ã«ã¯ãããããçåããããŸããè¿ãå°æ¥ã®æ¬¡ã®æ®µéã¯ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ã§ã®å±éã«ãªãããã§ãã Dockerã³ã³ããã§Kubernetesã«ãã¹ãŠå±éããäºå®ã§ãã éçšã«åæããäž»ãªèŠä»¶ã®1ã€ã¯ãååãšããŠéåžžã«èªç¶ãªãã®ã§ãã¹ããŒãã¬ã¹ãã€ã¯ããµãŒãã¹ã§ãã ãã®çç±ã¯ç解ã§ããŸãããã®ããããã€ã§ããããã®ãããããããããããããã«æ¬¡ã®ãã®ãäžããŠããªã¯ãšã¹ããåãåãããšãã§ããŸãã ãã®ãããæã¡äžããæå·ãã§ããéãç°¡åã«ãªããŸãã
-ãŸããéããµãŒãã¹ããŸã ããå Žåã¯ãã©ãããã°ããã§ããïŒ k8sããããã§400ã®ã°ã®ãµãŒãã¹ãèœãšããš......
-ãã®ããŒã¿ãã©ãããŸããïŒ
-ããŒã¿ãã©ããããããµãŒãã¹ããã®ãããªç§»è¡ã«èããããããã«é©åã«èšèšããæ¹æ³ã¯ïŒ
-ããã€ãã®ã¢ãããŒãããããŸãã ç§ãã¡ãå®è·µããŠãããã®ã®1ã€ã¯ïŒãã®å Žå圌ãè¯ããšã¯èšããŸãããïŒåæ£ã¹ãã¬ãŒãžã䜿çšããããšã§ãã ããããšåŒã°ããå Žæããããã ãã§ãªãããã€ã¯ããµãŒãã¹éã®ã©ããã«ä¿åãããããã«ããŸãã ã¯ã©ã·ãã¯ãœãªã¥ãŒã·ã§ã³ïŒèª°ã«ãšã£ãŠãã¯ã©ã·ãã¯ãªã®ãããããŸããããç§ãã¡ã«ãšã£ãŠã¯1ã€ã«ãªã£ãŠããŸãïŒã¯Hazelcastã§ãã HazelcastããŒã¹ã®åæ£ã¹ãã¬ãŒãžã ãããã¢ããªã¹ã®ä»çµã¿ã§ãã ã¯ã©ã¹ã¿ãŒåãããå ±éã®åæ£ã¹ãã¬ãŒãžããããŸãã ããŒã¿ã®æçã¯ãã¹ãŠã®ããŒãã«ä¿åãããŸãã 1ã€ã®ããŒããèœã¡ãå Žåã誰ããã®ããŒã¿ã倱ãããšã¯ãããŸããïŒãã¡ãããè€è£œã§ããå ŽåïŒã
-è€è£œã®çšåºŠã¯ïŒ
ãä»ãç§ã¯ããªãã«ç¢ºãã«äŒããŸãããã
-ãããfullsink以äžã§ãããšã ãèšã£ãŠã¿ãŸãããã
-ããŒã¿ã«äŸåããŸãã å Žåã«ãã£ãŠã¯ããã«ã䜿çšããŸãããéèŠåºŠã®äœãç¹°ãè¿ããããããŒã¿ã«ã¯2/3ããããŸãã ã€ãŸããããŒã¿ã¯3ã€ã®ããŒãã®ãã¡2ã€ã«æ ŒçŽãããŸãïŒã¯ã©ã¹ã¿ãŒã«3ã€ã®ããŒããããå ŽåïŒã ããããããã§ç§ã¯äœãã«åãã€ãããšãã§ããŸãã ããã¯1ã€ã®ãªãã·ã§ã³ã§ãã
2çªç®ã®ãªãã·ã§ã³ã¯ããã€ã¯ããµãŒãã¹ã400GBãŸã§èšãäžãã£ãå Žåã§ãããã¯ãã¹ãŠè²ŽéãªããŒã¿ã§ãããã€ã¯ããµãŒãã¹ã§ãã¹ãŠã倧äžå€«ã§ããïŒ åœŒã¯æ¬åœã«ãã®ããã«æ¯ãèãã¹ãã§ããïŒ
-圌ã¯ãã¯ãããã¯ããã§ã¯ãªããããã¡ãããµãŒãã¹ãã§ãã
ãä»ã®ããã€ãã®ãã€ã¯ãã«å€æããå¿ èŠãããããã§ããã ãŸãã¯ããã®äžã«ããã®ãããªããšãã圌ãä¿è·ããæ°žç¶çãªããããå¿ èŠã§ãã ãã¡ãããã¢ãžã£ã€ã«æ§ã¯äœäžããŸãããããŒã¿ã®äŸ¡å€ã«äŸåããŸãã ãããããããããã©ããã«åããŠããã®ãçã«ããªã£ãŠããŸãã å¿ ãããæ¬æ ŒçãªDBMSã§ãããšã¯éããããã軜éãªãœãªã¥ãŒã·ã§ã³ã䜿çšãã䟡å€ããããããããŸããã ãããããããŸã§ã®ãšããããã®ãããªåé¡ã¯çºçããŠããŸãããååã«å°ããããŠãã ããã èœã¡ãŠè²ŽéãªããŒã¿ã®å±±ãäžã«åŒã£åŒµã£ã人ã¯ããŸããã
-ãã€ã¯ããµãŒãã¹ã®ãã§ãŒã³ã®éäžã§ãè¿é£ã§ã¢ã¯ãã£ãã«äœ¿çšãããŠãããã®ãå®å šãŸãã¯éšåçã«èœã¡ãå Žåã¯ã©ããªããŸããïŒ åªé ãªå£åãäœãããããŸããïŒ
-ã»ãšãã©ã®å Žåããããããã ããäžéšã®å°åã§ã¯ãŸã ä¿éºããããŠããŸãã ããããHystrixã§ãã©ãŒã«ããã¯ã䜿çšããå ŽåãåãSpring Cloud Netflixã«çµã¿èŸŒãŸããŠããããŒã«ã§ã¯ãããŸããããããã«ã€ããŠã¯ç¥ã£ãŠããŸãããè©ŠããŠã¿ãŸããããä»ã®ãšããå¿ èŠã¯ãããŸããã§ããã 代ããã«ãç¬èªã®æ段ã管çãããã®ãããªç¶æ³ã§äœãã§ããããã³ãŒãã§çŽæ¥ç¥ã£ãŠããŸãã å¥ã®ãªã¯ãšã¹ããæºè¶³ãããããã«ããªã¯ãšã¹ããéåããã®ãèš±å¯ããã©ããã§ã ãŸãã¯ããã£ãã·ã¥ããããŒã¿ãååŸããããã«ããŒã¿ãããããããè¡ã£ãããŒã¿ããŒã¹ããææ°ã®ããŒã¿ãããå€ãããŒã¿ãååŸããŠäžæããããšãã§ããŸãã ããã¯ãã¹ãŠç¶æ³ã«äŸåããŸãã ãããããã®ãããªå Žæã¯ããŸãå€ããããŸããã
-ç§ã¯ããŸããŸãªäººã ãšè©±ããŸãããæ£çŽãªGD / DRãæã£ãŠããªã人ã ã®ããã®2ã€ã®äž»ãªæŠç¥ïŒ10å人ã®äžåœäººãããŠããã€ã¯ããµãŒãã¹ã°ã©ãã®äžéšãèœã¡ãããç§ãã¡ã¯åãã€ããŠ10å人ã®äžåœäººã解決ããããšããããªãããããã¹ãŠã倱ãããŸããã ããç§ãã¡ã¯ææã§èŒªã«ãªã£ãŠèµ°ãå§ãã管çè ãå«ãã§è¹ŽããŸãã ããã¯ã©ãã§ããïŒ ããªããšã¯ã©ããªããŸããïŒ
-æåã«è¿ããšæããŸã:-)
-åé¿çããªãå Žåã®2çªç®ã®ã±ãŒã¹ã§ã¯ãã©ãã«ãããŠprodããŸã£ããèœã¡ãªãããã«é 眮ããå¿ èŠããããŸãã
ããŸããã¯ããããã§ãããã ãããå®éã«ã¯ãããã¯ã©ã®çšåºŠå®çŸå¯èœã§ããïŒ
ãã§ããŸããïŒã ããªãã¯ãããããŸããïŒ
-ããããã芧ã®éãã çŸæç¹ã§ã¯ãŸã ã§ãã 代ããã«ãããæ£ç¢ºãªãœãªã¥ãŒã·ã§ã³ã§å¯ŸåŠããããšããŸãã ãŸãã¯ãæãéèŠãªåã ã®ããŒã¹ãä¿è·ããŸããããšãã°ãåãã¢ããªã¹ãã¯ã©ã¹ã¿ãŒåããããšããŸããã 圌ã¯10åã«èããããšã¯ã§ããŸããããåºæ¬çãªã¯ã©ã¹ã¿ãªã³ã°ã®ããã«äžéã®è² è·ãåãé€ãããšãã§ããŸãã 確ãã«èœã¡ãå¯èœæ§ã®ããããã€ãã®åå¥ã®ããžãã¹ã±ãŒã¹ã§ã¯ãªããè² è·ã®ããã ãã§ãªãã客芳çãªçç±ïŒå€éšã·ã¹ãã ãžã®ã¢ã¯ã»ã¹äžèœïŒã®ããã«ããã£ãã·ã¥ãªã©ã®å©ããåããŠãããããã€ãã¹ããããšããŸãã ããããç§ãã¡ã¯ãŸã ãã¹ãŠã®å Žé¢ã§æ®éçãªè§£æ±ºçãæã£ãŠããããã§ã¯ãããŸããã
ãããã¯ãçããŠãã人ã ã§ããæŸåã«ãã£ãŠå¯ŸåŠãããŸããã
-ã¯ãã ããããªãããã®çŽæ¥çãªè殺ãæ°åå人ã®äžåœäººã§ããå Žåãå€ãã®ç£èŠã·ã¹ãã ãšããããçš®é¡ã®ã«ããŒã·ã¹ãã ããããšããäºå®ã«ããããããã圌ããåãäžåœã®å·ããæ¥ãå Žåã圌ãã¯äžåºŠã«ãã¹ãŠçŠæ¢ããã圌ãã¯åã«ããã¯ããããšãã§ããŸãã-ãã®ãããªè³éã ããããããã¯ãã§ã«äººã ã®åå ã«ããåèªåã¢ãŒãã§è¡ãããŸãã
ãæªçšã¯ãç§ãã¡ã«ãšã£ãŠäœããæªãããšãã©ã®ããã«ç解ããŸããïŒã ã¢ãã¿ãªã³ã°ãã»ã®ããããŸãã
-ããŸããŸãªã¬ãã«ã§ç£èŠãããç£èŠã SQL- Apache . , (, , , ..) â . - . , â . , , , . .
â - - ?
â . , - â , Java â . JAMon, SpringBoot Actuator (, ). , â , , â . , â , , , , . , . - , . , .
â - -, : , ?
â . - , , , . , ( ), , , - . â ( , ), â , , , , ⊠. , , , , , . , , .
â , ?
â . , , . , â , , . Machine Learning, .
â , .
â . , , , . , , .
â ?
â , , . Java Melody â , Spring Boot. , - , , . , . , JAMon â , Zabbix. JAMon â - -, , ⊠, , .
â , 20 : , , ? , , ?
â ⊠, ?
â , . - â . Java - , . , , , , API, , , â .
â , . , . . , . , . . â , . . , â Ops DevOps . , â , , . . , . , Ops' â , , . , - , , , . Ops-, . , , , , , . CI. Jenkins, .
â , API, , â , . , , . . . , , , , - . , . â , , ( , ). , . - , . , , , â , . , . , , .
, . , - -300. -400 «» , -300 , . (102 ), . , , , . , , , , , , . , . , , , â , , , . ââ , . , , , . .
â , , ?
â , , â , , . , . . , , , , . , , , , . , , , , , , . , , - : , , API â . .
â , , , , . , , 100 . . ?
â . - - , . . API, , , , -, . . , , , , - ( ). , â â API. , SpringFox Spring Boot . , API . API Swagger UI, : , API, ? , , - . , , . - . , , , Confluence, . , . , , , - , Swagger UI.
â , HTTP, REST .
â , , . , , â , , .
â - , HTTP/REST? , , SOAP.
â , , « ». â , , . , 95% â , . . . SOAP â , , , .
â - ?
â , , , TCP-. , :-) , â - , , .
â , - -. HighLoad, , .
â , , , , HTTP, XML. WSDL, . - , . « req, â ans». . .
â , . ? â , 4 ? ã©ããã
â , - ! , . , . , , , XML. - - â . API, , , , . multipart/form-data, , , â - â , . . â . , CLOB BLOB ( , ) input output-. , . , â . , , , . , â , DOM, .
â , ? , , ? ? ? ?
-æåã«é ã«æµ®ãã¶ã®ã¯ãæèŠã«åºã¥ããã¢ãããŒããå°éããããšã§ããããã«åºã¥ããŠãSpring Bootãæ§ç¯ãããŸãã ä»ã®äººã®çµéšã®éçŽãšäžè¬åã«åºã¥ãã¢ãããŒããšããŒã«ïŒãã€ã¯ããµãŒãã¹ãé¢é£ã¿ã¹ã¯ã«ã¯é¢ä¿ãããŸããïŒã ç§ãã¡ã®çµéšã瀺ãããã«ãããã¯ãµãŒãããŒãã£è£œã®ããŒã«ããã®ã¿å ¥æã§ããã»ãšãã©æã貎éãªè¿œå ã§ãã ããããåã«èšèšãããŠããã®ã§ã¯ãªãå Žåããããªããæããã®ãã«ããããããã§ããã€ãã®åºæ¬çãªæœè±¡åãæäŸãããããŠä»ããªããæããã®ãããŸããã ããã«ä»£è¡šçãªäŸããããŸã-Antã¯ãã®ãããªãã®ã§ããã éåžžã«åŒ·åã§éåžžã«æè»ãªããŒã«ã§ãããäœãããã«ããŠãããã¹ãŠããŒãããäœæããã°ãåžžã«èªåã§èç©ããŠãããŸã...
-ãŸãã¯ã¡ã€ã¯ãã¡ã€ã«ã
-ã¯ããã¡ã€ã¯ãã¡ã€ã«ã ç§ã®æèŠã§ã¯ãGradleã¯éåžžã«è¯ã解決çã§ãã 圌ãã¯ãã§ã«ããèªäœã蚌æãããŠãããã®ããããã眮ããŠãå®çšçãªè§£æ±ºçãšããŠç¢ºèªããŸããã ããã©ã«ããšèŠãªãããåºæ¬ãã£ã¬ã¯ããªæ§é ããå§ããŠããªããããæ瀺çã«å®£èšãããã€ãŒã«ãåçºæããã®ã§ããïŒ ããã¯ãŸãã人ã ãååãªçµéšãæã£ãŠããªããšãã«åç©åã«ã€ãªããããããäžè¬ã«åãå ¥ããããŠãããã®ã«å¯Ÿå¿ãããå®å šãªåŽ©å£ãå§ãŸãããšãããããŸãã ãããã£ãŠããããã®ããã©ã«ãã®æèŠã®ããã¢ãããŒãã¯ãåå¿è ã®ããŒã ãšç¶ç¶ãã人ã®äž¡æ¹ã«ãšã£ãŠéåžžã«äŸ¡å€ããããŸãããã§ã«ãã®éãæ©ããçæãšå°é·åãéããä»ã®äººã ã®èšå€§ãªçµéšãåå©çšããããšãã§ããããã§ãã ãããã£ãŠãç¹å®ã®ããŒã«ããµãŒãã¹ã«çŠç¹ãåœãŠãããšããããªããŠããç§ã¯æèŠã®ããã¢ãããŒãã®åªäœæ§ãã°ããŒãã«ãªã¢ã€ãã¢ãšèããŠããŸãã
ãããªãã話ããŠããããšãæ£ç¢ºã«ç解ã§ããããã«ãæèŠãè¿°ã¹ãèšèã説æããŠãã ãããã
-æèŠã«åºã¥ãã¢ãããŒãã ããšãã°ãSpring Bootã®ã¡ã³ããŒãã©ã®ããã«æžããã®ãããªãä»ã®ããã«èšèšããã®ããæãåºããŠãã ãããæ°ãããã®ã¯çºæããŸããã§ãããã圌ãã®çµéšããŸãšããŸããã åºæ¬çãªãããžã§ã¯ãã§ãã圌ãã®æèŠã§ã¯ã補åã¯ãã®ããã«èŠããã¯ãã§ãã ããã©ã«ãã§ã ããã¯èª°ã«ãšã£ãŠããã®ããã«èŠããããšãæå³ãããã®ã§ã¯ãªããåæããªãå Žåã¯æ£®ã«æ²¿ã£ãŠé²ã¿ãŸãã ããã¯ãæ°ã«ããããªãå Žåããã®ããã«èŠããããšãæå³ããŸãã ããã¯åœŒãã®æèŠã§ãã ãããŠãããªãã¯äœãšããããç· ããä¿®æ£ããä¿®æ£ããæ©äŒãäžããããŸã-ããªãã®ããŒãºã«ããã§ã«ããªãã®æèŠã«ã è±å¯ãªçµéšãšæè»æ§ã®ãã®çµã¿åããã¯ããã®ãããªãœãªã¥ãŒã·ã§ã³ã®æ倧ã®äŸ¡å€ã§ãã
ããã¯åžžã«è¯ããšã¯éããŸããã æåã®Playã®äŸïŒ2çªç®ã®Playã§å°ãæ©èœããŸããïŒ-æèŠããããŸãããããã§ã¯éåžžã«å ·äœçãªæèŠããããŸããã ã©ããªãããã¹ã¿ãŒãæžããã®ãåãããŸãã:-)
-ããã¯ãŸã Javaã®ãã®ã§ããïŒ
-ã¯ãã 圌ãšä»äºãããªãã£ãã®ã§ããïŒ
-åããããããã¯ãã£ãšåãç§ã®äººçã¯ãã¹ãŠéãå»ã£ãã
-èŠããŠãããªããäœããã®çç±ã§Javaããã±ãŒãžã®æšæºæ§é ãåãå ¥ããŸããã 圌ãã¯ãäœããè¢ã«å ¥ããããããããããæ ¹å ã«çœ®ããšä¿¡ããŠããŸãã ããã§ã¯ãããã€ãã®org.company.app.controllersã§ã¯ãªãã³ã³ãããŒã©ãŒãåŒã³åºããŸããããã³ã³ãããŒã©ãŒã ãã§ãã
-æ§é ããªããšãã«ãã©ãã·ã¥ã解決ããæ¹æ³ã¯ïŒ ã¯ã©ã¹åã§æ§é ãæŽçã§ããŸã...
-ãããçŽ æŽãããããœãªã¥ãŒã·ã§ã³ïŒ ãããŠããã®ãããªã¹ãºã¯ãã€ãããã«ãããŸãã ãŸãã¯ãäŸãã°ã圌ãã¯ãŠã§ãå šäœãéçã§ãããšèããŸãã ãããã£ãŠããã¹ãŠã®ã³ã³ãããŒã©ãŒã®ãã¹ãŠã®ã¡ãœããã¯éçã§ãã ãŸãã圌ãã®æèŠã§ã¯ãããã¯ããã§ãã ããã¯åãªãäŸã§ãã
ãããããç¹å®ã®éšåã«éäžããããšã§ãéçºã®è€éãã軜æžããŸãããã ãããŠãããããªãããã®å¹žããªäœåããåºãŠããããããªãã¯ã«ããããŸãã
-ç§ãã¡ã®çµéšã¯ããã®äœåãè¶ ããããšã¯éåžžã«ç°¡åã§ããããšã瀺ããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ããã ã¹ã¿ãŒãå®éšå®€ã®ä»äºããããå°ãæ·±å»ãªãã®ã«å€ãããšããã«-ããã ãã§ãã
-ãããŠã圌ãã¯2çªç®ã®Playãæžãã岩ã®äžã§ãããæžãçŽãããããŸããã ãšããã§ãç§ã¯ããªããã¢ããªã¹ã§æåã®ãã¬ã€ã䜿çšããŠããããšãæ£ããç解ããŸãããïŒ ããã§ãããªãã¯ããã䜿ãç¶ããŸããããããšã代ããã«äœããåããŸããïŒ
ã代ããã«ãã¢ããªã¹ã®å€ããŒãã«ãªããŸã§ãã¢ããªã¹ããããŒã¹ãåŸã ã«åãåããŸããã
-ãšã«ãããé¡ãèŠããããã«äœããã®Webãã¬ãŒã ã¯ãŒã¯ãå¿ èŠã§ããïŒ
-ããããå¿ èŠãããŸããã ç§ãã¡ã®å Žåãã¢ããªã¹ã¯åãªãããã¯ãšã³ãã«ãŒãã«ã§ãã ãããŠãåéšã¯å¥ã®è¡æã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠåé¢ãããŠããŸãã 次ã«ãWebããŒãã«ã€ããŠã¯ãå®å šã«èªåã®äžçã«äœãã§ããŠãReact.jsäžã®ç¬ç«ããWebã¢ããªã±ãŒã·ã§ã³ãšããŠWebããŒããæ£ç¢ºã«èŠãåã ã®äººã«è²¬ä»»ããããŸãã ç§ãã¡ã¯åœŒãã«APIã®ã¿ãæäŸããŸã-ãã³ãã¬ãŒããHTMLããããŸãããããããã¯ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãã裞ã®APIã§ãã ãã¡ãããæºåž¯é»è©±ã§ãåãã§ãã APIã®ã¿ãäžèŽããå Žåãããã§ã¯ã©ã®ãã¬ãŒã ã¯ãŒã¯ã«ãçžãããŠããŸããã ãŸããAPIã¯HTTPã§ãã
-ããã¯ããšã話ã®ããã«èãããŸããå€ãã¯manyæã§çããŸãã
-ããããããªã...èŠããã ãã€ã³ã¿ãŒããããã³ãã³ã°ã®æåã®ããŒãžã§ã³ã¯å€ããã®ã§ãããªãåã«æžãçŽãããWicketãã¬ãŒã ã¯ãŒã¯ã«ãã£ããããã«ã€ããŠèããïŒ
-ã¯ããããã¯ã²ã©ããã¬ãŒã ã¯ãŒã¯ã§ããé·å¹Žåãçµãã§ããŸãããå¿ããæã¿ãŸãã
-ç§ã¯ããªããç解ããããšãã§ããŸããç§ã¯ã»ãšãã©åœŒãæãŸããŸããã ã³ã³ããŒãã³ãã®æŠå¿µããããHTMLã«é©åããwicketIdãããããã®å Žã§çæããã眮ãæããããããšãèŠããŠããŸããïŒ ç§ãã¡ã¯ãããæã£ãŠããŠããããå»ããŸããã ã©ããžè¡ãã®ããäœãé¢ããã®ããäœã«ç²ããŠããã®ããç解ããŸããã ååãšããŠããã®ãã¬ãŒã ã¯ãŒã¯ã¯çµ¶æçã§ã¯ãããŸãããã©ããã§ãããã®ã§ãããã¹ãŠããã®å Žæã«ãããŸãã
-ç§ãç解ããŠããéããWicketã®æ¡åŒµã¯éåžžã«å°é£ã§ãã
-æ£çŽãªãšãããäœããããŸããã
-ã¯ã©ã¹éå±€ã®ã«ãŒãã«IClusterableã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã çè«çã«ã¯ã圌ããäœæ¥ããŠTerracottaããã©ãã°ã§ããŸãããéçºè èªèº«ã¯ããã«é Œãããšã¯ãããŸããã
-ç§ãã¡ã¯ãã®ãã€ã³ãã«å°éããããšããããŸããã§ãã-ç§ãã¡ã¯ãã¹ãŠãåã«æžãçŽããŠãæ®éã«ã¯ã©ã¹ã¿ãŒåãå§ããŸããã
äžéšã®ã¢ããªã±ãŒã·ã§ã³ã¯ãŸã Wicketã§æ£åžžã«åäœããŸããã
ãç§ãã¡ã¯1æé以äžè©±ããŠããŸãããã ãã®ãã¹ãŠããã¬ããŒããäœæããã¢ã€ãã¢ã¯ãããŸãããïŒ
-ãŸã ã§ãã ç§ã«ãšã£ãŠãããã¯ãã¹ãŠéåžžã«è¿ãã®ã§ãããã¯æ®éã®ããšã®ããã«æããŸãã ã¿ããªãäœãããŠããã®ãæããŠãã ããã ããããäžæ¹ã§ãä»ã®äººãæ¥ãŠãæããŠããäœãããŸããã
-倧ããªéãããããŸãïŒä»ã®äººã«ãšã£ãŠã¯ãŸã ããŸããããŸããããããªãã«ãšã£ãŠã¯å€æããŸãã
ãç§ãããã§è©±ããŠããããšã«å ããŠãä»ã®ãã®ãåŒãç¶ãã§ããŸããã ããšãã°ãJBreakã§èª¬æãããããã¯ã ãŸããæè¿ã®ãããžã§ã¯ãã§ã¯ããã¹ãç°å¢ã§ãµãŒããŒãã°ãéèšããããŒã«ãéçºããŸããã ãã€ã¯ããµãŒãã¹ã®éçºã«é¢é£ããŠãããã€ãã®ã€ã³ããã¯ã¹ä»ãã®ãã°ã§ã¯ãªãããã°ããã¹ãŠ1ãæã§ãããããã©ã®ããã«èšè¿°ãããŠããããä»ããèŠãããšãéèŠã«ãªããŸããã äžæ¹ã§ã¯ãELKãLogstashãKibanaãªã©ã®å€ãã®ãœãªã¥ãŒã·ã§ã³ããã§ã«çºæãããŠããŸãããçµéšã瀺ãããã«ããã¹ãã§ã¯å€§ç ²ããã¹ãºã¡ãæã¡ãŸãã ãã©ãŒããããã€ã³ãã¯ãµãŒãæ§æããå¿ èŠããããŸããããããã¯åžžã«ãªã¢ã«ã¿ã€ã ã§æ©èœãããšã¯éããŸããã ããªãŒèªäœã¯3ã€ã®ã¢ããªã±ãŒã·ã§ã³ã§ããããããããå±éããå¿ èŠããããŸãã è¿ éã«å±éã§ãããµãŒããŒäžã®ãã°ã®ãã¹ãŠããã°ããç°¡åã«ç¢ºèªã§ããããã軜éãªãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ãã ãããŠãæããã«ãUIãããæããªããªã¢ãŒããµãŒããŒäžã§ã ã§ããããšã¯ãã³ãŒã«ããŒã«ã ãã§ãã
-ããã«ã¯ãSSHçµç±ã§ã¢ã¯ã»ã¹ããå¿ èŠããããŸããïŒ
-SSHçµç±ã§ã®ã¿ã¢ã¯ã»ã¹ã§ããŸããSFTPçµç±ã§ã¢ã¯ã»ã¹ã§ããŸããä»ã®ãªãã·ã§ã³ã¯ãããŸããã ãããŠãããã¯ãŸãã«ç§ãé·å¹ŽçŽé¢ããŠããã¿ã¹ã¯ã§ãããã®æç¹ã§ãããã®ãã¡ã€ã«ãåçŽã«æµã蟌ã¿ããã©ãŠã¶ãŒã§éããŠããWebããŒãžã«æ»ãåçŽãªãŠãŒãã£ãªãã£ãäœæããŸããã ãããŠåœŒå¥³ã¯ãªã¢ã«ã¿ã€ã ã§çŽæ¥æžã蟌ã¿ãŸãã ãã®ãããªå°Ÿããã©ãŠã¶ã®ã¿ã ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸããããã ååŸããŠæ³šããŸãã ããããããã¯ãã€ã¯ããµãŒãã¹ã«é¢ããŠã¯ååã§ã¯ãããŸããã§ããã ããããéçŽããã«ã¯äœããã®è§£æ±ºçãå¿ èŠã§ããã ãããŠãSpring Bootã§ãtailãå®è¡ããéåæã§ãªãã¹ã³ããzapililã¢ããªã±ãŒã·ã§ã³ã§ããã¡ãã»ãŒãžã衚瀺ããããšããã«ããããéçŽããAngularã®ã¢ããªã±ãŒã·ã§ã³ãWebããŒãžã«éä¿¡ããŸãã ç§ã¯Webéçºè ã§ã¯ãªãã®ã§ãæ°ã«ããŸããã§ãããAngularã§ã¯ãã¹ãŠèŠãŸããã
-ãåç¥ã®ããã«ãWebéçºè ã¯æã Angularã§æžãããšããããŸã:-)
-ã¯ããAngularã倧äžå€«ã§ã¯ãªãããšãäžè¬çã«åãå ¥ããããŠããã®ã¯ããæè¿ã§ãããã£ãšæ°ãããã®ãå¿ èŠã§ãã
-2çªç®ãŸãã¯1çªç®ïŒ
-StackOverflowã§ã¯ã圌ã«é¢ããã»ãšãã©ã®è³ªåããã£ããããæåã®è³ªåããããŸãã å®éãããŸããŸãªé¢é£ã¿ã¹ã¯ãããã§è§£æ±ºãããŠããŸãã ã¿ã€ã ã¹ã¿ã³ããäžåäžã«æžã蟌ãŸããŠãããšããäºå®ã«ãããããããæçµãã°ã®ãã¹ãŠãå¿ ç¶çã«é åºã©ããã«ãªãããã«ã¿ã€ã ã¹ã¿ã³ããèªèããæ¹æ³ã 亀差ããªãããã«ãã€ãŸã ã¡ãã»ãŒãžã«ã¹ãã¯ãã¬ãŒã¹ãããå Žåãä»ã®ãã°ããã®èª°ãã®ã¡ãã»ãŒãžãéäžã§å¿ã³å¯ããªãããã«ããŸãã éèšãã¿ã€ã ã¹ã¿ã³ãã®èªèãããã³ããããã¹ãŠãé çªã«é 眮ãããŸãã
-ããŠããã¹ãŠãè°è«ãããŸããã 次ã®ã¹ãããã¯ãã¬ããŒãã«ã¢ã¯ã»ã¹ããããšã§ãã çããŠãããŠããããšãããŠã©ãžããŒã«ïŒ
åºåã®åã ãŠã©ãžããŒã«ã¯ã JBreak 2018ã«ã³ãã¡ã¬ã³ã¹ïŒ ä»é±ã® æ¥ææ¥ã«éå¬äºå®ïŒã®ã¹ããŒã«ãŒã§ãã 圌ã®è¬æŒãSide Effect InjectionããŸãã¯Virtuous Crutchesãã§ã圌ã¯Side Effect Injectionã®ã¢ãããŒãã«ã€ããŠè©±ããJavaã³ãŒããã³ã³ãã€ã«ããããã®ãªãã·ã§ã³ãè³è³ããJVMã§ãã€ãã³ãŒããå€æŽãã1ã€ã®ã±ãŒã¹ãéžã³ãæ£åŒãªJavaææ³ãåæããå®éã®äŸã䜿çšããŠããããã¹ãŠç¢ºèªããŸãã¢ããªã±ãŒã·ã§ã³ã äŒè°ã«ã¯ãã£ã¹ã«ãã·ã§ã³ãŸãŒã³ããããŸãããã®ãããã¬ããŒãã®åŸããŠã©ãžããŒã«ãšäŒããå¯äœçšæ³šå ¥ã ãã§ãªããããšãã°ãã€ã¯ããµãŒãã¹ãªã©ãããŸããŸãªåé¡ã«ã€ããŠè©±ãåãããšãã§ããŸãã ãã±ããã¯å ¬åŒãŠã§ããµã€ãã§è³Œå ¥ã§ããŸã ã