JavaScriptã®ããã©ãŒãã³ã¹ãã¹ããç¹ã«è² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãã«çŠç¹ãåœãŠãå æ¬çãªã¬ã€ããããã«ããã¯ãç¹å®ããã°ããŒãã«ãªãŠãŒã¶ãŒåãã«ã¢ããªã±ãŒã·ã§ã³ãæé©åããæ¹æ³ãåŠã³ãŸãã
JavaScriptã®ããã©ãŒãã³ã¹ãã¹ãïŒè² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãã®æ¯èŒ
仿¥ã®æ¥éã«å€åããããžã¿ã«ç°å¢ã«ãããŠãã¹ã ãŒãºã§å¿çæ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããšã¯æãéèŠã§ããJavaScriptã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãããã©ãŒãã³ã¹ãã¹ãã¯ãã¯ãéžæè¢ã§ã¯ãªããå¿ é äºé ã§ãããã®èšäºã§ã¯ãããã©ãŒãã³ã¹ãã¹ãã®2ã€ã®éèŠãªã¿ã€ããè² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãã«ã€ããŠè©³ãã解説ããŸãããããã®éããå©ç¹ããããŠå®è·µçãªå¿çšãæ¢ããã°ããŒãã«ãªãŠãŒã¶ãŒåãã«JavaScriptã¢ããªã±ãŒã·ã§ã³ãæé©åããæå©ããããŸãã
ããã©ãŒãã³ã¹ãã¹ããšã¯ïŒ
ããã©ãŒãã³ã¹ãã¹ããšã¯ãæ§ã ãªæ¡ä»¶äžã§ãœãããŠã§ã¢ã¢ããªã±ãŒã·ã§ã³ã®é床ãå®å®æ§ãã¹ã±ãŒã©ããªãã£ãè©äŸ¡ããããšãç®çãšãããåºç¯ãªãã¹ãã«ããŽãªã§ããããã«ããã¯ã®ç¹å®ããªãœãŒã¹äœ¿çšçã®æé©åããããŠã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒã®èŠæ±ã«å¿ããããããšãä¿èšŒããã®ã«åœ¹ç«ã¡ãŸããé©åãªããã©ãŒãã³ã¹ãã¹ããè¡ããªããšãå¿çæéã®é å»¶ãã¢ããªã±ãŒã·ã§ã³ã®ã¯ã©ãã·ã¥ããããŠæçµçã«ã¯é¡§å®¢é¢ãã«ã€ãªãã壿ªãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæããªã¹ã¯ããããŸãã
JavaScriptã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠããã©ãŒãã³ã¹ãã¹ããéèŠãªçç±
JavaScriptã¯ãããã³ããšã³ãã®ã€ã³ã¿ã©ã¯ã·ã§ã³ããããã¯ãšã³ãã®ããžãã¯ïŒNode.jsïŒãŸã§ãçŸä»£ã®Webã¢ããªã±ãŒã·ã§ã³ã«ãããŠéèŠãªåœ¹å²ãæ ã£ãŠããŸããããã©ãŒãã³ã¹ã®äœãJavaScriptã¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸããèªã¿èŸŒã¿æéã®é å»¶ãå¿çããªãUIãéå°ãªãªãœãŒã¹æ¶è²»ã¯ããŠãŒã¶ãŒãäžæºã«ãããããžãã¹ã«æªåœ±é¿ãåãŒãå¯èœæ§ããããŸãã
以äžã®ã·ããªãªãèããŠã¿ãŸãããïŒ
- Eã³ããŒã¹ïŒ ååããŒãžã®èªã¿èŸŒã¿ãé ããšã顧客ã¯è³Œå ¥ãããããå¯èœæ§ããããŸãã調æ»ã«ãããšãããŒãžã®èªã¿èŸŒã¿æéã1ç§é ãããšãã³ã³ããŒãžã§ã³ã7%æžå°ããããšã瀺ãããŠããŸãã
- ãœãŒã·ã£ã«ã¡ãã£ã¢ïŒ ãã¥ãŒã¹ãã£ãŒãã®é å»¶ãæçš¿ã®æŽæ°ãé ãããšããŠãŒã¶ãŒã®äžæºããšã³ã²ãŒãžã¡ã³ãã®äœäžã«ã€ãªããå¯èœæ§ããããŸãã
- éèã¢ããªã±ãŒã·ã§ã³ïŒ ååŒåŠçãé ããšããšã©ãŒãä¿¡é Œã®åªå€±ã«ã€ãªããæ·±å»ãªééç圱é¿ãåãŒãå¯èœæ§ããããŸãã
- ã²ãŒã ãã©ãããã©ãŒã ïŒ ãªã³ã©ã€ã³ã²ãŒã ã«ãããé«ãã¬ã€ãã³ã·ãŒã¯ãéåžžã«å£æªãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«ã€ãªããå¯èœæ§ããããŸãã
è² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãïŒäž»ãªéããçè§£ãã
è² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãã¯ã©ã¡ããããã©ãŒãã³ã¹ãã¹ãã®ç¯çã«å«ãŸããŸãããããããç°ãªãç®çãæãããŸããã¢ããªã±ãŒã·ã§ã³ã«é©ãããã¹ãæŠç¥ãéžæããããã«ã¯ããããã®éããçè§£ããããšãéèŠã§ãã
è² è·ãã¹ã
å®çŸ©ïŒ è² è·ãã¹ãã¯ãçŸå®çãªæ°ã®åææ¥ç¶ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«åæã«ã¢ã¯ã»ã¹ããç¶æ³ãã·ãã¥ã¬ãŒãããéåžžãŸãã¯æ³å®ãããæ¡ä»¶äžã§ã®ããã©ãŒãã³ã¹ãè©äŸ¡ãããã®ã§ããå¿çæéãã¹ã«ãŒãããããªãœãŒã¹äœ¿çšçãè©äŸ¡ããã¢ããªã±ãŒã·ã§ã³ãäºæž¬ãããã¯ãŒã¯ããŒããåŠçã§ããããšã確èªããããšã«çŠç¹ãåœãŠãŸãã
ç®çïŒ éåžžã®éçšæ¡ä»¶äžã§ãã¢ããªã±ãŒã·ã§ã³ãäºåã«å®çŸ©ãããããã©ãŒãã³ã¹åºæºãæºãããŠãããã©ããã倿ããããšãããã«ãããå®éã®ãŠãŒã¶ãŒã«åœ±é¿ãåã¶åã«æœåšçãªããã«ããã¯ãç¹å®ã§ããŸãã
äž»èŠãªã¡ããªã¯ã¹ïŒ
- å¿çæéïŒ ãŠãŒã¶ãŒã®ãªã¯ãšã¹ãã«å¿çãããŸã§ã«ãããæéããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«ãšã£ãŠéèŠãªã¡ããªã¯ã¹ã§ãã
- ã¹ã«ãŒãããïŒ ã¢ããªã±ãŒã·ã§ã³ãåäœæéãããã«åŠçã§ãããã©ã³ã¶ã¯ã·ã§ã³ãŸãã¯ãªã¯ãšã¹ãã®æ°ãã·ã¹ãã ã®å®¹éã瀺ããŸãã
- ãªãœãŒã¹äœ¿çšçïŒ CPU䜿çšçãã¡ã¢ãªæ¶è²»éããã£ã¹ã¯I/Oããããã¯ãŒã¯åž¯åå¹ ããªãœãŒã¹ã®ããã«ããã¯ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- ãšã©ãŒçïŒ ãšã©ãŒã«ãªããªã¯ãšã¹ãã®å²åãã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ã瀺ããŸãã
äŸïŒ
ãªã³ã©ã€ã³ãã±ãããã©ãããã©ãŒã ãããã©ãã·ã¥ã»ãŒã«äžã«10,000人ã®åææ¥ç¶ãŠãŒã¶ãŒãæ³å®ããŠãããšããŸããè² è·ãã¹ãã§ã¯ã10,000人ã®ãŠãŒã¶ãŒãåæã«ãŠã§ããµã€ããé²èЧãããã±ãããæ€çŽ¢ããè³Œå ¥ã詊ã¿ãç¶æ³ãã·ãã¥ã¬ãŒãããŸãããã¹ãã§ã¯ãåã¢ã¯ã·ã§ã³ã®å¿çæéãã¹ã«ãŒãããïŒ1åãããã®ãã±ãã販売æ°ïŒãããã³ãµãŒããŒã®ãªãœãŒã¹äœ¿çšçãæž¬å®ãããã©ãããã©ãŒã ãããã©ãŒãã³ã¹ãäœäžãããããšãªãæ³å®ãããè² è·ãåŠçã§ããããšã確èªããŸãã
è² è·ãã¹ãçšããŒã«ïŒ
- JMeterïŒ Webã¢ããªã±ãŒã·ã§ã³ã§åºã䜿çšãããŠããã人æ°ã®ãªãŒãã³ãœãŒã¹è² è·ãã¹ãããŒã«ã
- GatlingïŒ HTTPããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã«ç¹ã«é©ãããé«è² è·ããã©ãŒãã³ã¹ãã¹ãçšã«èšèšãããå¥ã®ãªãŒãã³ãœãŒã¹ããŒã«ã
- LoadViewïŒ æ§ã ãªå°ççãã±ãŒã·ã§ã³ããã®å®éã®ãŠãŒã¶ãŒãã·ãã¥ã¬ãŒããããã¯ã©ãŠãããŒã¹ã®è² è·ãã¹ããã©ãããã©ãŒã ã
- LocustïŒ PythonããŒã¹ã®ãªãŒãã³ãœãŒã¹è² è·ãã¹ãããŒã«ã
- k6ïŒ JavaScriptã§ã¹ã¯ãªãããäœæã§ãããææ°ã®è² è·ãã¹ãããŒã«ã
ã¹ãã¬ã¹ãã¹ã
å®çŸ©ïŒ ã¹ãã¬ã¹ãã¹ãã¯ãèä¹ ãã¹ãããœãŒã¯ãã¹ããšãåŒã°ããã¢ããªã±ãŒã·ã§ã³ãéåžžã®éçšéçãè¶ ããŠããã·ã¥ãããã®ç Žå£ç¹ïŒbreaking pointïŒãç¹å®ããæ¥µç«¯ãªæ¡ä»¶äžã§ã®å®å®æ§ãè©äŸ¡ãããã®ã§ããã¢ããªã±ãŒã·ã§ã³ã®å®¹éãè¶ ããã¯ãŒã¯ããŒããã·ãã¥ã¬ãŒãããŠè匱æ§ãç¹å®ããé害ããé©åã«å埩ã§ããããšãä¿èšŒããŸãã
ç®çïŒ ã¢ããªã±ãŒã·ã§ã³ã®éçã倿ããç Žå£ç¹ãç¹å®ããé害ããé©åã«å埩ã§ããããšãä¿èšŒããããšãããã«ãããã¢ããªã±ãŒã·ã§ã³ã®å ç¢æ§ãåäžããäºæãã¬ãã©ãã£ãã¯ã®æ¥å¢ã«ããã¯ã©ãã·ã¥ãé²ãããšãã§ããŸãã
äž»èŠãªã¡ããªã¯ã¹ïŒ
- ç Žå£ç¹ïŒ ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãèããäœäžããããã¯ã©ãã·ã¥ããç¹ã
- å埩æéïŒ é害çºçåŸãã¢ããªã±ãŒã·ã§ã³ãéåžžã®éçšç¶æ ã«å埩ãããŸã§ã«ãããæéã
- ãšã©ãŒãã³ããªã³ã°ïŒ ã¹ãã¬ã¹æ¡ä»¶äžã§ã¢ããªã±ãŒã·ã§ã³ããšã©ãŒãäŸå€ãã©ã®ããã«åŠçãããã
- ããŒã¿æŽåæ§ïŒ ã¹ãã¬ã¹æ¡ä»¶äžã§ããŒã¿ãç ŽæãŸãã¯å€±ãããªãããšãä¿èšŒããã
äŸïŒ
ãããªã¹ããªãŒãã³ã°ãã©ãããã©ãŒã ããã©ã€ãã€ãã³ãäžã«èŠèŽè æ°ãæ¥å¢ããããšãäºæž¬ããŠãããšããŸããã¹ãã¬ã¹ãã¹ãã§ã¯ãæ³å®ãããã¯ããã«å€ãåæèŠèŽè æ°ïŒäŸïŒéåžžè² è·ã®5åãŸãã¯10åïŒãã·ãã¥ã¬ãŒãããŸãããã¹ãã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãç£èŠãããããªå質ãäœäžããããµãŒããŒãã¯ã©ãã·ã¥ãããããç¹ãç¹å®ããæ¥å¢ãåãŸã£ãåŸã«ã·ã¹ãã ãã©ãã ãè¿ éã«å埩ããããè©äŸ¡ããŸããããã«ãããæœåšçãªè匱æ§ãç¹å®ãããã©ãããã©ãŒã ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«åœ±é¿ãäžããããšãªãäºæãã¬ãã©ãã£ãã¯ã®æ¥å¢ã«å¯Ÿå¿ã§ããããšãä¿èšŒããŸãã
ã¹ãã¬ã¹ãã¹ãçšããŒã«ïŒ
- Apache JMeterïŒ è² è·ãã¹ããšåæ§ã«ãJMeterã䜿çšããŠæ¥µç«¯ãªè² è·ãã·ãã¥ã¬ãŒãããã¢ããªã±ãŒã·ã§ã³ã®ã¹ãã¬ã¹ãã¹ããè¡ãããšãã§ããŸãã
- GatlingïŒ JMeterãšåæ§ã«ãGatlingã®é«è² è·ã·ããªãªãåŠçããèœåã¯ãã¹ãã¬ã¹ãã¹ãã«é©ããŠããŸãã
- LoadRunnerïŒ å¹ åºããããã³ã«ãšç°å¢ããµããŒãããåçšã®ããã©ãŒãã³ã¹ãã¹ãããŒã«ã§ãè€éãªã¹ãã¬ã¹ãã¹ãã·ããªãªã«é©ããŠããŸãã
- TaurusïŒ JMeterãGatlingãªã©ã®ä»ã®ããŒã«ã䜿çšããŠã¹ãã¬ã¹ãã¹ããå®è¡ã§ãããããã©ãŒãã³ã¹ãã¹ãçšã®ãªãŒãã³ãœãŒã¹èªååãã¬ãŒã ã¯ãŒã¯ã
é©åãªã¢ãããŒãã®éžæïŒè² è·ãã¹ã vs. ã¹ãã¬ã¹ãã¹ã
è² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãã®ã©ã¡ããéžæãããã¯ãç¹å®ã®ç®æšãšã¢ããªã±ãŒã·ã§ã³ã®ç¹æ§ã«ãã£ãŠç°ãªããŸãã
è² è·ãã¹ãã䜿çšããå ŽåïŒ
- ã¢ããªã±ãŒã·ã§ã³ãéåžžã®éçšæ¡ä»¶äžã§ããã©ãŒãã³ã¹èŠä»¶ãæºãããŠããããšã確èªãããå Žåã
- å®éã®ãŠãŒã¶ãŒã«åœ±é¿ãåã¶åã«æœåšçãªããã«ããã¯ãç¹å®ãããå Žåã
- ãªãœãŒã¹äœ¿çšçãæé©åããå šäœçãªããã©ãŒãã³ã¹ãåäžããããå Žåã
- ãã©ãã£ãã¯ã®å¢å ãäºæ³ããã補åã®çºå£²ãããŒã±ãã£ã³ã°ãã£ã³ããŒã³ã®æºåãããŠããå Žåã
ã¹ãã¬ã¹ãã¹ãã䜿çšããå ŽåïŒ
- ã¢ããªã±ãŒã·ã§ã³ã®éçã倿ãããã®ç Žå£ç¹ãç¹å®ãããå Žåã
- ã¢ããªã±ãŒã·ã§ã³ãé害ããé©åã«å埩ã§ããããšã確èªãããå Žåã
- ã¢ããªã±ãŒã·ã§ã³ã®å ç¢æ§ãåäžãããäºæãã¬ãã©ãã£ãã¯ã®æ¥å¢ã«ããã¯ã©ãã·ã¥ãé²ãããå Žåã
- ããŒã¯æã®è² è·ããµãŒãã¹æåŠïŒDoSïŒæ»æã«å¯ŸåŠããã¢ããªã±ãŒã·ã§ã³ã®èœåã«ã€ããŠæžå¿µãããå Žåã
å®éã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãå æ¬çã«è©äŸ¡ããããã«ãè² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãã®äž¡æ¹ãçµã¿åãããããšãæšå¥šãããããšããããããŸãã
JavaScriptããã©ãŒãã³ã¹ãã¹ãã®ãã¹ããã©ã¯ãã£ã¹
JavaScriptã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãã¹ãã宿œããéã«èæ ®ãã¹ããã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãã
- æç¢ºãªããã©ãŒãã³ã¹ç®æšãå®çŸ©ããïŒ ãã¹ããéå§ããåã«ãã¢ããªã±ãŒã·ã§ã³ã®èŠä»¶ãšãŠãŒã¶ãŒã®æåŸ ã«åºã¥ããŠæç¢ºãªããã©ãŒãã³ã¹ç®æšãå®çŸ©ããŸãã蚱容ã§ããå¿çæéã¯ã©ã®ãããã§ããïŒ æåŸ ãããã¹ã«ãŒãããã¯ïŒ æå€§ãšã©ãŒçã¯ïŒ ãããã®ç®æšã¯ããã¹ãçµæãè©äŸ¡ããããã®ãã³ãããŒã¯ãšããŠæ©èœããŸãã
- çŸå®çãªãŠãŒã¶ãŒè¡åãã·ãã¥ã¬ãŒãããïŒ å®éã®ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãšã©ã®ããã«å¯Ÿè©±ããããæ£ç¢ºã«ã·ãã¥ã¬ãŒããããã¹ãã·ããªãªãèšèšããŸããç°ãªããŠãŒã¶ãŒãããã¡ã€ã«ãäžè¬çãªã¯ãŒã¯ãããŒã䜿çšãã¿ãŒã³ãèæ ®ããŸããã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠåŠçãããå®éã®ããŒã¿ãæš¡å£ããããã«ãçŸå®çãªããŒã¿ã»ããã䜿çšããŸããäŸãã°ãEã³ããŒã¹ãµã€ãããã¹ãããŠããå ŽåããŠãŒã¶ãŒãååãé²èЧããã«ãŒãã«ååã远å ãããã§ãã¯ã¢ãŠããå®äºãããŸã§ãã·ãã¥ã¬ãŒãããŸãã
- æ¬çªã«è¿ãç°å¢ã§ãã¹ãããïŒ æ¬çªç°å¢ã«é ·äŒŒããç°å¢ã§ããã©ãŒãã³ã¹ãã¹ãã宿œããŸããããã«ã¯ãããŒããŠã§ã¢æ§æããœãããŠã§ã¢ã®ããŒãžã§ã³ããããã¯ãŒã¯èšå®ãããŒã¿éãå«ãŸããŸãã代衚çãªç°å¢ã§ãã¹ãããããšã§ãããæ£ç¢ºã§ä¿¡é Œæ§ã®é«ãçµæãåŸãããŸããDockerã®ãããªã³ã³ããåæè¡ã䜿çšãããšãäžè²«æ§ãããåçŸå¯èœãªãã¹ãç°å¢ãäœæããã®ã«åœ¹ç«ã¡ãŸãã
- äž»èŠãªããã©ãŒãã³ã¹ã¡ããªã¯ã¹ãç£èŠããïŒ ãã¹ãããã»ã¹å šäœãéããŠãå¿çæéãã¹ã«ãŒãããããªãœãŒã¹äœ¿çšçããšã©ãŒçãªã©ã®äž»èŠãªããã©ãŒãã³ã¹ã¡ããªã¯ã¹ãç£èŠããŸããã¯ã©ã€ã¢ã³ãåŽïŒãã©ãŠã¶ïŒãšãµãŒããŒåŽã®äž¡æ¹ããããŒã¿ãåéããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã®å šäœåãææ¡ããŸããããã©ãŒãã³ã¹ç£èŠããŒã«ã䜿çšããŠããããã®ã¡ããªã¯ã¹ããªã¢ã«ã¿ã€ã ã§è¿œè·¡ããæœåšçãªããã«ããã¯ãç¹å®ããŸãã
- ããã«ããã¯ãç¹å®ããŠå¯ŸåŠããïŒ ãã¹ãçµæãåæããŠãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŸãããããã¯ãé ãããŒã¿ããŒã¹ã¯ãšãªãéå¹çãªã³ãŒãããããã¯ãŒã¯ã®é å»¶ããŸãã¯ãªãœãŒã¹ã®å¶éã«ãã£ãŠåŒãèµ·ããããå¯èœæ§ããããŸãããããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠãJavaScriptã³ãŒãå ã®ããã©ãŒãã³ã¹åé¡ã®æ£ç¢ºãªå Žæãç¹å®ããŸããã³ãŒããæé©åããããŒã¿ããŒã¹ã¯ãšãªãæ¹åããå¿ èŠã«å¿ããŠãªãœãŒã¹ãã¹ã±ãŒã«ããŠããã«ããã¯ãè§£æ¶ããŸãã
- ããã©ãŒãã³ã¹ãã¹ããèªååããïŒ ããã©ãŒãã³ã¹ãã¹ãããã»ã¹ãèªååããŠãäžè²«æ§ãããåçŸå¯èœãªçµæãä¿èšŒããŸããããã©ãŒãã³ã¹ãã¹ããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çããªããªãŒïŒCI/CDïŒãã€ãã©ã€ã³ã«çµ±åããéçºãµã€ã¯ã«ã®æ©ã段éã§ããã©ãŒãã³ã¹ã®äœäžãæ€åºããŸããã¹ã¯ãªããèšèªããã¹ããã¬ãŒã ã¯ãŒã¯ã䜿çšããŠã宿çã«å®è¡ã§ããèªåãã¹ãã¹ã€ãŒããäœæããŸãã
- ã¯ãã¹ãã©ãŠã¶ã®äºææ§ãèæ ®ããïŒ JavaScriptã®ããã©ãŒãã³ã¹ã¯ãã©ãŠã¶ã«ãã£ãŠç°ãªãå ŽåããããŸããäž»èŠãªãã©ãŠã¶ïŒChromeãFirefoxãSafariãEdgeïŒã§ã¢ããªã±ãŒã·ã§ã³ããã¹ããããã¹ãŠã®ãŠãŒã¶ãŒã«å¯ŸããŠäžè²«ããããã©ãŒãã³ã¹ãä¿èšŒããŸããã¯ãã¹ãã©ãŠã¶ãã¹ãããŒã«ã䜿çšããŠããã®ããã»ã¹ãèªååããŸãã
- ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãæé©åããïŒ ããã³ããšã³ãã®ããã©ãŒãã³ã¹ã¯ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«å€§ãã圱é¿ããŸããJavaScriptã³ãŒããé床ãšå¹çã®ããã«æé©åããŸããCSSãšJavaScriptãã¡ã€ã«ãçµåããæå°åããããšã§HTTPãªã¯ãšã¹ããæå°éã«æããŸããç»åããã®ä»ã®ãªãœãŒã¹ã«ã¯é å»¶èªã¿èŸŒã¿ïŒlazy loadingïŒã䜿çšããŸãããã©ãŠã¶ã®ãã£ãã·ã¥ã掻çšããŠèªã¿èŸŒã¿æéãççž®ããŸãã
- ããã¯ãšã³ãã®ããã©ãŒãã³ã¹ãæé©åããïŒ ããã¯ãšã³ãã®ããã©ãŒãã³ã¹ãåæ§ã«éèŠã§ããããŒã¿ããŒã¹ã¯ãšãªãæé©åãããã£ãã·ã¥ã¡ã«ããºã ã䜿çšãããµãŒããŒãµã€ãã®ã³ãŒãå¹çãåäžãããŸããããŒããã©ã³ã·ã³ã°ã䜿çšããŠããã©ãã£ãã¯ãè€æ°ã®ãµãŒããŒã«åæ£ãããŸããã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã䜿çšããŠãå°ççã«åæ£ããå Žæããéçã¢ã»ãããé ä¿¡ããããšãæ€èšããŸãã
- ã¢ãã€ã«ããã©ãŒãã³ã¹ããã¹ãããïŒ å€ãã®ãŠãŒã¶ãŒã¯ã¢ãã€ã«ããã€ã¹ããWebã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ããŸããã¢ãã€ã«ããã€ã¹ãšãããã¯ãŒã¯ã§ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ããã¹ãããŸããã¢ãã€ã«ãã©ãŠã¶çšã«ã³ãŒããæé©åããã¬ã¹ãã³ã·ããã¶ã€ã³ã®ååã䜿çšããããšãæ€èšããŸãããã¹ãã«ã¯ã¢ãã€ã«ããã€ã¹ã®ãšãã¥ã¬ãŒã¿ãŸãã¯å®æ©ã䜿çšããŸãã
ç¹å®ã®JavaScriptæé©åãã¯ããã¯
äžè¬çãªããã©ãŒãã³ã¹ãã¹ãã®å®è·µã«å ããŠãJavaScriptã³ãŒããæé©åããããã®ããã€ãã®ç¹å®ã®ãã¯ããã¯ã玹ä»ããŸãã
- ã³ãŒãã®æå°åãšå§çž®ïŒ äžèŠãªæåïŒç©ºçœãã³ã¡ã³ãïŒãåé€ããå§çž®ã¢ã«ãŽãªãºã ïŒGzipãBrotliïŒã䜿çšããŠJavaScriptãã¡ã€ã«ã®ãµã€ãºãåæžããŸãã
- ããªãŒã·ã§ã€ãã³ã°ïŒ JavaScriptãã³ãã«ãããããã³ãŒãïŒæªäœ¿çšã®é¢æ°ã倿°ïŒãæé€ããŠããã®ãµã€ãºãåæžããŸãã
- ã³ãŒãåå²ïŒ JavaScriptã³ãŒããå°ããªãã£ã³ã¯ã«åå²ããã¢ããªã±ãŒã·ã§ã³ã³ãŒãå šäœãäžåºŠã«èªã¿èŸŒãã®ã§ã¯ãªãããªã³ããã³ãã§èªã¿èŸŒããããã«ããŸãã
- ãããŠã³ã¹ãšã¹ããããªã³ã°ïŒ ãŠãŒã¶ãŒã€ãã³ãïŒã¹ã¯ããŒã«ããªãµã€ãºãªã©ïŒã«å¿çããŠé¢æ°ãå®è¡ãããã¬ãŒããå¶éããããã©ãŒãã³ã¹ã®åé¡ãé²ããŸãã
- ä»®æ³åïŒ éåžžã«å€æ°ã®ã¢ã€ãã ãæã€ãªã¹ãã®å ŽåãçŸåšç»é¢ã«è¡šç€ºãããŠããã¢ã€ãã ã®ã¿ãã¬ã³ããªã³ã°ããŠããã©ãŒãã³ã¹ãåäžãããŸãã
- Webã¯ãŒã«ãŒïŒ èšç®éã®å€ãã¿ã¹ã¯ãWebã¯ãŒã«ãŒã䜿çšããŠããã¯ã°ã©ãŠã³ãã¹ã¬ããã«ç§»åãããã¡ã€ã³ã¹ã¬ããã®ããããã³ã°ãUIã®ããªãŒãºãé²ããŸãã
- ãã£ãã·ã¥ïŒ é »ç¹ã«ã¢ã¯ã»ã¹ãããããŒã¿ããã©ãŠã¶ã®ãã£ãã·ã¥ã«ä¿åããç¹°ãè¿ãã®ãµãŒããŒãªã¯ãšã¹ãã®å¿ èŠæ§ãæžãããŸãã
ã°ããŒãã«ãªèŠç¹ã®éèŠæ§
ã°ããŒãã«ãªãŠãŒã¶ãŒåãã«JavaScriptã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãã¹ããè¡ãéã«ã¯ãç°ãªãå°åã«ããã倿§ãªãããã¯ãŒã¯ç¶æ³ãããã€ã¹ããŠãŒã¶ãŒè¡åãèæ ®ããããšãäžå¯æ¬ ã§ãããã®çç±ã¯æ¬¡ã®ãšããã§ãã
- æ§ã ãªãããã¯ãŒã¯éåºŠïŒ ã€ã³ã¿ãŒãããã®é床ã¯äžçäžã§å€§ããç°ãªããŸããäžéšã®å°åã®ãŠãŒã¶ãŒã¯ãä»ã®å°åãããæ¥ç¶ãé ãã£ãããä¿¡é Œæ§ãäœãã£ããããå ŽåããããŸããããã©ãŒãã³ã¹ãã¹ãã§ã¯ããããã®æ§ã ãªãããã¯ãŒã¯ç¶æ³ãã·ãã¥ã¬ãŒãããŠããã¹ãŠã®ãŠãŒã¶ãŒã«ãšã£ãŠã¢ããªã±ãŒã·ã§ã³ã蚱容ç¯å²å ã§åäœããããšã確èªããå¿ èŠããããŸãã
- 倿§ãªããã€ã¹ç°å¢ïŒ ç°ãªãå°åã®ãŠãŒã¶ãŒã¯ãæ§åŒãŸãã¯æ§èœã®äœãã¹ããŒããã©ã³ãã¿ãã¬ãããå«ããããåºç¯å²ã®ããã€ã¹ã䜿çšããŠããå¯èœæ§ããããŸããäºææ§ãšæé©ãªããã©ãŒãã³ã¹ã確ä¿ããããã«ãæ§ã ãªããã€ã¹ã§ããã©ãŒãã³ã¹ãã¹ãã宿œããå¿ èŠããããŸãã
- æåçãªéãïŒ ãŠãŒã¶ãŒã®è¡åãæåŸ ã¯æåã«ãã£ãŠç°ãªãå ŽåããããŸããäŸãã°ãäžéšã®å°åã®ãŠãŒã¶ãŒã¯ãä»ã®å°åãããèªã¿èŸŒã¿æéã®é å»¶ã«å¯ŸããŠå¯å®¹ã§ããå¯èœæ§ããããŸããããã©ãŒãã³ã¹ãã¹ãã§ã¯ããããã®æåçãªãã¥ã¢ã³ã¹ãèæ ®ããããã«å¿ããŠãã¹ãæŠç¥ã調æŽããå¿ èŠããããŸãã
- å°ççãªå ŽæïŒ ãŠãŒã¶ãŒãšãµãŒããŒéã®ç©ççãªè·é¢ã¯å¿çæéã«åœ±é¿ãäžããå¯èœæ§ããããŸããã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã䜿çšããŠãå°ççã«åæ£ããå Žæããã³ã³ãã³ããé ä¿¡ããäžçäžã®ãŠãŒã¶ãŒã®é å»¶ãæžãããããã©ãŒãã³ã¹ãåäžãããããšãæ€èšããŠãã ããã
- èšèªã®ããŒã«ã©ã€ãºïŒ ã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºçããã¹ãããéã«ã¯ã翻蚳ãããã³ã³ãã³ããããã©ãŒãã³ã¹ã®åé¡ãåŒãèµ·ãããªãããšã確èªããŠãã ãããèªã¿èŸŒã¿æéãé ãããå¯èœæ§ã®ããé·ãæååãæé©åãããŠããªãç»åããªãããã§ãã¯ããŸãã
è² è·ãã¹ããšGDPRã³ã³ãã©ã€ã¢ã³ã¹
è² è·ãã¹ããã¹ãã¬ã¹ãã¹ãã宿œããéã«ã¯ãç¹ã«ãŠãŒã¶ãŒããŒã¿ãæ±ãå Žåãäžè¬ããŒã¿ä¿è·èŠåïŒGDPRïŒã®ã³ã³ãã©ã€ã¢ã³ã¹ãèæ ®ããããšãäžå¯æ¬ ã§ããããã©ãŒãã³ã¹ãã¹ãã§å®éã®ãŠãŒã¶ãŒããŒã¿ã䜿çšããããšã¯é¿ããŠãã ããã代ããã«ãå¿ååãããããŒã¿ãŸãã¯åæããŒã¿ã䜿çšããŠãŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãä¿è·ããŸãããã¹ãç°å¢ãå®å šã§ãããããŒã¿ãäžæ£ã¢ã¯ã»ã¹ã«ãããããªãããã«ããŠãã ãããGDPRèŠä»¶ãžã®æºæ ã蚌æããããã«ããã¹ãæé ãšããŒã¿åŠçæ¹æ³ãææžåããŠãã ããã
JavaScriptããã©ãŒãã³ã¹ãã¹ãã®æªæ¥
JavaScriptããã©ãŒãã³ã¹ãã¹ãã®åéã¯ãæ°ããæè¡ãããŒã«ã®åºçŸãšãšãã«çµ¶ããé²åããŠããŸããæ³šç®ãã¹ãããã€ãã®ãã¬ã³ãã玹ä»ããŸãã
- AIãæŽ»çšããããã©ãŒãã³ã¹ãã¹ãïŒ äººå·¥ç¥èœïŒAIïŒã¯ããã¹ãã±ãŒã¹ã®çæãããã«ããã¯ã®æ€åºãããã©ãŒãã³ã¹äºæž¬ãªã©ãããã©ãŒãã³ã¹ãã¹ãã®æ§ã ãªåŽé¢ãèªååããããã«äœ¿çšãããŠããŸãã
- Performance-as-CodeïŒ ããã©ãŒãã³ã¹ãã¹ããã³ãŒããšããŠå®çŸ©ãããã¬ã³ãã«ãããããé«åºŠãªèªååãããŒãžã§ã³ç®¡çãã³ã©ãã¬ãŒã·ã§ã³ãå¯èœã«ãªããŸãã
- ãµãŒããŒã¬ã¹ããã©ãŒãã³ã¹ãã¹ãïŒ ãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãã©ãããã©ãŒã ã¯ãããã¹ã±ãŒã©ãã«ã§ã³ã¹ãå¹çã®é«ãããã©ãŒãã³ã¹ãã¹ããœãªã¥ãŒã·ã§ã³ãå¯èœã«ããŠããŸãã
- ãªã¢ã«ãŠãŒã¶ãŒã¢ãã¿ãªã³ã°ïŒRUMïŒïŒ RUMã¯ãå®éã®ãŠãŒã¶ãŒãäœéšããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«é¢ãããªã¢ã«ã¿ã€ã ã®æŽå¯ãæäŸããããã©ãŒãã³ã¹ã®åé¡ãè¿ éã«ç¹å®ããŠå¯ŸåŠããããšãã§ããŸãã
çµè«
ããã©ãŒãã³ã¹ãã¹ãã¯ãJavaScriptã¢ããªã±ãŒã·ã§ã³ã®ãœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«ã«ãããŠäžå¯æ¬ ãªéšåã§ããè² è·ãã¹ããšã¹ãã¬ã¹ãã¹ãã®éããçè§£ãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãã¢ããªã±ãŒã·ã§ã³ãã°ããŒãã«ãªãŠãŒã¶ãŒã«å¯ŸããŠã¹ã ãŒãºã§å¿çæ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããšãä¿èšŒã§ããŸããããã©ãŒãã³ã¹ãã¹ããžã®æè³ã¯ãã¢ããªã±ãŒã·ã§ã³ã®æåãšãŠãŒã¶ãŒã®æºè¶³åºŠãžã®æè³ã§ããåžžã«ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãç£èŠããæé©åããŠãæä»£ã®æå 端ãèµ°ãç¶ããããšãå¿ããªãã§ãã ããã
JavaScriptã®ããã©ãŒãã³ã¹ãã¹ãäžã«ã°ããŒãã«ãªèŠç¹ã«çŠç¹ãåœãŠãããšã§ãå Žæãããã€ã¹ããããã¯ãŒã¯ç¶æ³ã«é¢ä¿ãªãããã¹ãŠã®ãŠãŒã¶ãŒã«çŽ æŽãããäœéšãä¿èšŒã§ããŸãã倿§ãªã°ããŒãã«ãŠãŒã¶ãŒããŒã¹ãããããç¬èªã®èª²é¡ãšæ©äŒãåæ ããããã«ããã¹ãæŠç¥ãé©å¿ãããããšãå¿ããªãã§ãã ããã