ãµã€ãã®é床ããã§ãã¯ããé 延ã®åå ãç¹å®ããããã«ãæè¡ç£æ»ããããŸããã·ã¹ãã ãæ£åžžã«åäœããŠããããã«èŠããããã©ãŒãã³ã¹ã®åé¡ããªãå Žåã§ãããããå®è¡ããããšããå§ãããŸããå®éã«ã¯ãããã§ãæ¹åã§ããå¯èœæ§ããããŸããã€ã³ãã©ã¹ãã©ã¯ãã£ã®æé©åã«ããã³ãŒãã®é ä¿¡ãé«éåãããã³ãŒãããŒã¹ããªãã¡ã¯ã¿ãªã³ã°ããããšã§ã¡ã³ããã³ã¹ã³ã¹ããåæžã§ããŸãã
ãã®èšäºã§ã¯ã1æéã«æ°äžäººã®ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ãã人æ°ã®ãããã¥ãŒã¹ãªãœãŒã¹ã®äŸã䜿çšããŠãWebãµã€ãã®æè¡ç£æ»ãã©ã®ããã«è¡ããããã瀺ããŸããæ€èšŒãšåæã®ç¬ç«ãã段éã«ã€ããŠèããŠã¿ãŸãããããã®çµæããããžã§ã¯ããæ¹åããããŒãžã®èªã¿èŸŒã¿ãé ãããããã«ããã¯ãæé€ããæ¹æ³ãæ確ã«ç€ºããŸãã
ã¡ããªãã¯ã®åéãšéçãµã€ããªãœãŒã¹ã®åæ
å¿ ãã¡ããªãã¯ãåéããGoogle Page SpeedãLighthouseãWeb.devãªã©ã®æ¢è£œã®ããŒã«ã䜿çšããŠå¯èœãªãã¹ãŠã枬å®ããŠãã ãããããã¯ã調æ»ã®éå§ç¹ãšãªãã¡ããªãã¯ãååŸããããã®æéã®æ¹æ³ã§ãã圌ãã®å©ããåããŠãããªãã¯æåã«æ³šæãæã䟡å€ããããã®ãæé©åã§ãããã®ãç解ããã§ãããã
åºåãããã«ãŒããªã³ãŸãã¯ãªãã«ããŠåæãå®è¡ããããšããå§ãããŸãããã®çµæãã³ã³ãã³ãã®æåã®ã¬ã³ããªã³ã°ãã©ãã ãéãè¡ãããããããã³ãµã€ãã«æ¥ç¶ãããŠãããµãŒãããŒãã£ã®ã¹ã¯ãªããã®æ°ãããããŸãã
ãã®æ®µéã§ã¯ããµã€ããã¬ã³ããªã³ã°ãããšãã«çºçããåºæ¬çãªæäœã®æ°ã確èªã§ããŸãã
åéãããã¡ããªãã¯ã¯ãéçãµã€ãè³ç£ïŒç»åããããªãã¹ã¯ãªãããã¹ã¿ã€ã«ãããã³ãã©ã³ãïŒãæ¹åããããã®ã¹ããŒã¹ã瀺ããŠããå¯èœæ§ããããŸãããã®ããŒã¿ãåæããäžè¬çãªéçãªãœãŒã¹ã®æ £è¡ã«åŸã£ãŠããããšã確èªããŠãã ããããã ãããããã¯åãªãã¬ã€ãã©ã€ã³ã§ãããå³å¯ãªèŠä»¶ã§ã¯ãªãããšã«æ³šæããŠãã ããã
ãã®äŸã§ã¯ããã¹ãŠã®ç»åãjpg圢åŒã§ä¿åãããŠããŸãããã©ãŠã¶ã§å®å šã«ãµããŒããããŠããwebpã䜿çšãããšããã¡ã€ã«ãµã€ãºãå¹³å20ïŒ åæžãããŸããèªåwebpå§çž®ã¯ãé«è§£å床ã®ç»åã«å¯ŸããŠã®ã¿æ§æã§ããŸãããã®åœ¢åŒããµããŒããããã©ãŠã¶ã§ã¯ãé«è§£å床ã®ãããªãwebmã«å€æããããšããå§ãããŸãããããã¯ãŒã¯ã®è² è·ã軜æžããããã«ã衚瀺ãããŠããªããããªã®èªååçãç¡å¹ã«ããããšããå§ãããŸããããã¯ãIntersection ObserverAPIã䜿çšããŠå®è¡ã§ããŸãã
ãµã€ãã«ããã°ã¬ãã·ãããŠã³ããŒããããããšã確èªããå¯èœã§ããã°ã©ãã«ã§ãå§çž®ãè¿œå ããŸãã brotliãgzipãdeflateãªã©ã®ææ°ã®ã¹ã¯ãªããå§çž®æè¡ã䜿çšããŠãã ããã
䜿çšãããŠããªããã®ã¯ããŒãããªãã§ãã ãããããã¯ãã³ãŒããã¹ã¿ã€ã«ãã·ã³ãã«ãç»åã«é©çšã§ããŸããããšãã°ããŠã§ããµã€ãã«1000ã®ã±ãŒã¹ã®1ã€ã«è¡šç€ºããããã¿ã³ãããå ŽåããããåŠçããã¹ã¯ãªããã¯ãªã³ããã³ãã§ã®ã¿æ¥ç¶ããå¿ èŠããããŸãã
äžèšã®äŸã§ã¯ãã³ãŒãå šäœã®çŽ93ïŒ ã䜿çšãããŠããªãããšãããããŸãïŒçŽ340 kbïŒãããŒãžããªããŒãããã«ãã¹ãŠã®ã±ãŒã¹ãã«ããŒããªãããã«ãã¬ããžã100ïŒ ã®å Žåãã³ãŒããå«ããã³ãã«ã¯çæ³çãšèŠãªãããŸããããã¯ãã³ãŒãããŸã£ãã䜿çšãããŠããªãå Žåãã³ãŒãåå²ãæ£ããæ§æãããŠããªãå ŽåããŸãã¯äœ¿çšãããŠãããä»ã®ããŒãžã§äœ¿çšãããŠããå ŽåããŸãã¯ç¹å®ã®ã·ããªãªã«éããå Žåã«çºçããå¯èœæ§ããããŸãã
ãã®åé¡ã®è§£æ±ºçã¯ãåå©çšå¯èœãªã³ã³ããŒãã³ããåå¥ã®ãã¡ã€ã«ïŒãã£ã³ã¯ïŒã«ç§»åããããããå¿ èŠãªå Žæã§ã®ã¿æ¥ç¶ãããããã«ããããšã§ãã
åè¿°ããããã«ããããã®èŠä»¶ã¯ãªãã·ã§ã³ã§ããããŠãŒã¶ãŒãæåã«æ°ä»ããããéçãªãœãŒã¹ã®æé©åã¯éèŠã§ãã
äŸãšããŠãã©ã³ããåãäžããŸãããããã®ãããžã§ã¯ãã§ã¯ããã©ã³ãã®èªã¿èŸŒã¿ã«æéãããããããŸããããŠãŒã¶ãŒã«æšæºãã©ã³ãã衚瀺ãããããªãã®ã§ãæåã«ãcritical-cssã»ã¯ã·ã§ã³ã§ããããããŒãããŸãããã®åé¡ã解決ããæ¹æ³ã¯ïŒã³ãŒãã¬ãã«ã§ãã©ã³ããæé©åããæ¥ç¶é åºãå€æŽããttfãwoff2ã«çœ®ãæããããšãã§ããŸãã
䜿çšãããã©ã³ãã®æ°ãæžããããšãã§ããŸããããã«ã¯åèšèšãå¿ èŠã§ããããããåžžã«æ£åœåããããšã¯éããŸããããµã€ãã§GoogleFontsã©ã€ãã©ãªã䜿çšããŠããå Žåã¯ããã¡ã€ã«ããæªäœ¿çšã®æåãåé€ããŠãã ãããããã¯èäœæš©ã§çŠæ¢ãããŠããŸããã
ããããç©äºããã®ãŸãŸã«ããŠãä»ã®å¯èœæ§ã«çŠç¹ãåãããæ¹ãç°¡åãªå ŽåããããŸãã
HTTPãªã¯ãšã¹ãã®èª¿æ»
ãã®æ®µéã§ãããã³ããšã³ããããã¯ãšã³ããšæ£ããçžäºäœçšãããã©ããã確èªããŸãã
- APIãªã¯ãšã¹ãã®èšå®æžã¿å§çž®ã
- æ¥ç¶ãããŒãããå¯çã¯ãšãªã¯ãªãããã®çµæã¯ã©ãã«ã䜿çšãããŸããã
- ãŠãŒã¶ãŒãç¹å®ã®ããžãã¹ã±ãŒã¹ãå®äºããã«ãšã©ãŒã§è¿ãããèŠæ±ã¯ãããŸããã
- ããŒãžãæåã«ããŒãããããšãããã©ãŠã¶ã¯APIã«ãªã¯ãšã¹ããéä¿¡ããŸããïŒãã®äŸã®ããã«ããµã€ãããµãŒããŒåŽã®ã¬ã³ããªã³ã°ã䜿çšããŠããå ŽåïŒã
- éè€ãããªã¯ãšã¹ãã¯ãããŸãããããããã®ããŒãžã«ç§»åãããšãã«ãªã¯ãšã¹ããè¡ãããå Žåã¯ãäžåºŠéä¿¡ããŠããŒã¿ãä¿åããŠåå©çšããããšããå§ãããŸãã
- pending , . , , , . , â , .
ãããã¯ããããªã¯ãšã¹ãã¯èµ€ã§åŒ·èª¿è¡šç€ºãããŸããããµã€ãã¯åŒãç¶ãæ©èœããŸãã
ãŸãããªã¯ãšã¹ããåæãããšããã°ãèŠã€ããå ŽåããããŸããããããããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã®èª€ã£ãæäœã«ééããæ¹æ³ã§ããã1ç§ããã100ãè¶ ããèŠæ±ãéä¿¡ããå¯èœæ§ãããããµãŒããŒã«å€§ããªè² è·ãããããŸãããç»é¢ãç¹æ» ããããããŒããŒãééãªãå転ãããããŸãããã®çç±ã¯ã誀ã£ãŠå®è£ ãããã¹ã¯ããŒã«ã«é ãããŠããŸãããæ°ããèŠçŽ ã衚瀺ããããšãããã©ãŠã¶ã¯ããŒãžã®äžéšã«ãã®äœçœ®ãç¶æããŸãããã€ãŸããããŒãžãã¹ã¯ããŒã«ãããšãããŒããŒãèµ·åãããããããŒãžãäžã«ç§»åããŸããã Javascriptãã³ãã©ãŒããªã¯ãšã¹ããåéä¿¡ããŸãããããã«ãããããŒããŒã¢ãã¡ãŒã·ã§ã³ãå床çºçããããŒãžãµã€ãºãå€æŽããããªã©ãç¡éã«ç¶ããŸããã
ããŒããŒã®èª€åäœã«ããããªã¯ãšã¹ãæ°ã¯ç¡éã«å¢å ããŸã
å€éšã¹ã¯ãªãããšãªãœãŒã¹ã®åæ
ãã®æ®µéã§ããµãŒãããŒãã£ãµã€ãã®ã©ã®ãªãœãŒã¹ã®èªã¿èŸŒã¿ã«æãæéããããããå€æããå¿ èŠããããŸãã
ææ°ã®Webã§ã¯ãããŠã³ããŒãã«åªå é äœãä»ããããšãã§ããŸããå€ãã®å Žåãææšãšåºåã¯ããŒãžã衚瀺ãããåã«èªã¿èŸŒãŸããŸããããŠãŒã¶ãŒã¯åŒãç¶ãåºåã衚瀺ã§ããŸãããããµã€ãã®èªã¿èŸŒã¿ã«æéãããããããããèªäœã¯æå³ããããŸããããµã€ããã¬ã³ããªã³ã°ããçŽåŸã«åºåã衚瀺ããããšããå§ãããŸããããã¯çµ±èšã«ãŸã£ãã圱é¿ããŸãããããããªããšããŠãŒã¶ãŒã«ãã°ããã®éçœãç»é¢ã衚瀺ãããŸãã
ãããã¡ã€ãªã³ã°ããŒãž
chrome devããŒã«ã䜿çšããŠãµã€ãããŒãžã®ãããã¡ã€ã«ãäœæããé·ããªã¯ãšã¹ããšå¢å ããCPU䜿çšéã远跡ããŸãããã®çµæããµã€ããæ確ã«ããŒããããã®ã衚瀺ãããŸãã
ã¹ã¯ãªãŒã³ã·ã§ããã¯ãJqueryã®ããŒãã«19ããªç§ãããããšã瀺ããŠããŸãããçŸæç¹ã§ã¯å¿ èŠãããŸãããã¡ã€ã³ãªãœãŒã¹ã®åŸã§ãã§ããã°ããŒãã€ãã³ããæåããåŸïŒonloadãdomcontentloadedãªã©ïŒã«jqueryãããŒãããããšããå§ãããŸãã
ãªã¯ãšã¹ãã®æ°ãšæéã®åæ
ãã®æ®µéã§ãããã³ããšã³ããããã¯ãšã³ããšã©ã®ããã«çžäºäœçšãããã調ã¹ãŸãããããè¡ãã«ã¯ããã¹ãŠã®ãªã¯ãšã¹ãã®æ°ãšæéãåæããå¿ èŠããããŸããããå®å šãªå šäœåãææ¡ããã«ã¯ã1ã€ã®ãªã¯ãšã¹ããšäžŠåãªã¯ãšã¹ãã®å¹³åå¿çæéã枬å®ããå¿ èŠããããŸãã
ããããããããããã«ãååŸããããŒã¿ãèŠçŽãã£ãŒãã«ãŸãšããŸãããã®ããã«ããŠãã©ã®ã¯ãšãªãä»ã®ã¯ãšãªãããã¯ããã«æéãããã£ãŠãããããã°ããç¹å®ã§ããŸãã
ãµã€ãã匷åãªãµãŒããŒã«ã€ã³ã¹ããŒã«ãããŠããå Žåã100ã®äžŠåèŠæ±ã®å®è¡æéã¯ã1ã€ã®èŠæ±ã®å®è¡æéãå€§å¹ ã«è¶ ããŠã¯ãªããŸããããã®äŸã§ã¯ã30åã®éããèŠãããŸããæé·ã®ã¯ãšãªãæåã«èª¿æ»ããå¿ èŠããããŸãã
ãã®ãããžã§ã¯ãã§ã¯ãäžéšã®ãªã¯ãšã¹ãã§ã²ãŒããŠã§ã€ã¿ã€ã ã¢ãŠããçºçããŸãããã€ãŸãããµãŒããŒããã®å¿çããŸã£ããå±ããŸããã§ããã
é«è² è·ãããžã§ã¯ãã§ã®ãªãŒããŒãããã¯æ£åžžã§ãããã ãã1ã€ã®ãªã¯ãšã¹ããè€æ°ã®ã¢ã¯ã·ã§ã³ãæ åœããå Žåã¯ãå¯èœãªéãããªã¯ãšã¹ããã³ã³ããŒãã³ãããŒãã«åå²ããããã«ããŠãã ããããããã®éšåã䞊åã¹ã¬ããã§å®è¡ããŸãã
ãµãŒããŒãæ¹åããããã«äœãã§ããã§ããããïŒãµãŒããŒãç£èŠããŠã¢ããªã±ãŒã·ã§ã³ãåèµ·åããããã«ã©ã€ãã©ãªãæ¥ç¶ããŸãïŒnode.jsã®å Žåãããã¯pm2ã§ãïŒãSentryãªã©ã®ãšã©ãŒç£èŠããŒã«ãæ¥ç¶ããããšããå§ãããŸãããšã©ãŒåºåãšç·æ¥ã·ã£ããããŠã³ãã°ãæ§æããŸãããã®ããã«ããŠãã¢ããªã±ãŒã·ã§ã³ã®ããŠã³ã¿ã€ã ã远跡ã§ããŸãã
çæ³çã«ã¯ããµã€ãã§ã®ã¢ã¯ãã£ããã£ïŒAPIèŠæ±ãããŒã¿ããŒã¹ãžã®èŠæ±ãå€éšAPIããã¡ã€ã«ã·ã¹ãã ãŸãã¯ãã¡ã€ã«ã·ã¹ãã ãæäœããããã®ãµãŒãã¹ïŒãç£èŠããéåæãã¬ãŒãèšå®ããããããå¥ã®ããŒã¿ããŒã¹ã«èšé²ããŸãã
ãœãŒã¹ã³ãŒãã®éçåæ
ãã®åæã¯ãééã£ãã³ãŒããææããããããã³ãŒãããåãé€ãã®ã«åœ¹ç«ã€ãŠãŒãã£ãªãã£ã«ãã£ãŠå®è¡ãããŸãããããã®ããŒã«ã¯éçºäžã«èªåçã«äœ¿çšããå¿ èŠãããããšã«æ³šæããŠãã ããããã ããéçºè ã®æŽåæ§ã«åžžã«äŸåããå¿ èŠã¯ãªãããããã®ãã§ãã¯ãã¹ãããããªãããšããå§ãããŸãã
éçåæãè¡ãã«ã¯ãeslint linterããã³ãŒãéåã远跡ããprettierãsonarãªã©ã®ä»ã®ã³ãŒããã©ãŒããããŠãŒãã£ãªãã£ã䜿çšããå¿ èŠããããŸãã
ãã®çµæãç¹å®ãããéåã«åºã¥ããŠãããã¥ã¡ã³ããäœæã§ããŸãã
éåžžããã®ãããªéåã¯ãµã€ãã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããŸããããã³ãŒãã®èªã¿åããšæžã蟌ã¿ãè€éã«ãªããããä¿å®ã«è²»çšãããããŸããããšãã°ããã®ãããžã§ã¯ãã§ã¯ã3ã€ã®åŒæ°ãããããã®ãã¡ã®1ã€ã¯äœ¿çšãããŠããªãé¢æ°ãèŠã€ãããŸããããã®ãããªäºçŽ°ãªããšãäžç·ã«ãªã£ãŠããããžã§ã¯ãã®æè¡çè² åµãå¢å ããŸãã
ãœãŒã¹ã³ãŒãã®ã»ãã³ãã£ãã¯åæ
ãã®æç¹ã§ãããã°ã©ããŒã¯ãããžã§ã¯ããã¡ã€ã«ãæåã§èª¿ã¹ãå¿ èŠããããŸãããœãŒã¹ã³ãŒãã®åäœã®æãããªãšã©ãŒã®ã¿ãè©äŸ¡ãããããšã«æ³šæããŠãã ããããã詳现ãªåæãè¡ãã«ã¯ããããžã§ã¯ãã®ããžãã¯ãååã«ç解ããå¿ èŠããããŸãããã®æ®µéã§ã1ã€ã®å ŽæïŒã¯ã©ã¹ãé¢æ°ããŸãã¯å®æ°ïŒã«ç§»åããŠè¡æ°ãæžããããšãã§ããå埩ã³ãŒããèŠã€ããããšãã§ããŸãããã°ã®å¯èœæ§ãæžãããŸãã
ãã®åæã¯ãéçºããŒã ã«åé¡ããããã©ãããå€æããã®ã«åœ¹ç«ã€å ŽåããããŸãã Gitã®ã³ãŒãè¡ãããäœæè ã誰ã§ããããå€å¥ããåã ã®åŸæ¥å¡ã®ããã©ãŒãã³ã¹ãå€å¥ã§ããŸããã³ã¡ã³ãã®åå以äžã1人ã®éçºè ã«èšåããŠããããšã«æ°ä»ããããããŸããã
ããšãã°ãããã§ã¯ãããŒã¿ããŒã¹ãæŽæ°ãã10åã®éåææäœãç¹å®ããŸãããããããã¯äžåºŠã«1ã€ãã€å®è¡ãããçžäºã«é¢é£ããŠããŸããã§ãããã€ãŸãã䞊åã§å®è¡ããããšã§ããã©ãŒãã³ã¹ã2åã«ããããšãã§ããŸããçŸåšã®PHPããŒãžã§ã³ã§ããã·ã¹ãã ããã©ãŒãã³ã¹ãåäžãããããã«äººå·¥çãªäžŠååŠçãèšå®ã§ãããããå¯èœãªéã䞊ååŠçã䜿çšããŠãã ããã
çµæ
ãœãããŠã§ã¢éçºã«ã¯å€ãã®ãªã¹ã¯ã䌎ããŸããå®éã«ã¯ããããžã§ã¯ããäºå®ã©ããã«çšŒåãããããã«ã劥åããå¿ èŠããããŸãããããã£ãŠãããã¥ã¡ã³ãã¯éåžžé¡åçã«äœæããããµã€ãã®æé©åã¯æåŸã®ç¬éãŸã§å»¶æãããŸãã
ããããããã©ãŒãã³ã¹ã®åäžã«åãçµãã®ã«é ãããããšã¯ãããŸããããŠã§ããµã€ããã¹ããŒãã¢ãããããšããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžããèŠèŽè ã®åå¿ãè¯ããªããŸããæè¡ç£æ»ã®å©ããåããŠããµã€ãã®äœæ¥ã®é 延ã®åå ãç¹å®ã§ããŸã-ããã³ããšã³ããŸãã¯ããã¯ãšã³ãã¢ããªã±ãŒã·ã§ã³ãããã³ããšã³ãç£æ»ã®å®æœæ¹æ³ã«é¢ããæšå¥šäºé ããŸãšããŸããããããã¯æ¬è³ªçã«äžè¬çã§ããããããããµã€ãã®ãã¹ãã«é©ããŠããŸãã
次åã®åºçç©ã§ãããã¯ãšã³ãã®æè¡ç£æ»ãå®æœããæ¹æ³ãããã«èª¬æããŸãã