Also available in: English.
蚳蚻: Next.jsã®çã¿ã®èŠªã®äžäººã§ãVercel瀟ã®CEOãåãã@rauchgã«ããèšäºã®ç¿»èš³ã§ããåæã¯ãã¡ããèš³è ã¯Vercelã®ãšã³ãžãã¢ã§ããããã³ã¹ã»ãã¹ãªã³ã°ã»ãèãFACTFULNESSãã®å ±èš³è ã§ãããäžæåšäœ(@chibicode)ãã¡ãªã¿ã«ãVercel瀟ã¯ãã®ãã³ç€ŸåãZEITããæ¹åããŸãããå ¬åŒçºè¡šã¯ãã¡ãã
æ¬æ¥ãç§éã¯ç€ŸåãVercelã«æ¹ãã2100äžãã«ã®è³é調éã宿œããããšãå ¬è¡šããŸãããè³é調éã«ãããŠã¯ãéã ããé¡ã¶ãã®VC(AccelãCRV)ãå人æè³å®¶ã®æ¹ã (Jordan WalkeãNat FriedmanãPete HuntãJessie FrazelleãSoleioãNaval Ravikantããã®ä»å€ãã®çæ§)ãããæ¯æŽãé ããŠããŸãã
ãã£ããã®æ©äŒãªã®ã§ãä»åã¯Vercelã®ããžã§ã³ã«ã€ããŠèªãããŠãã ãããç§éã¯ãJamstackã®ãŠã§ããµã€ããäœãã»è©Šãã»å ¬éããä»çµã¿ã®è³ªã極éãŸã§è¿œæ±ããããããã¯ããã³ããšã³ãéçºã®äœéšãåå®çŸ©ããããšèããŠããŸãã
æè¿ã®å€§ããªæµããšããŠãã¯ã©ãŠãã€ã³ãã©ãKubernetesãæ§ã ãªAPIãæäŸãããµãŒãã¹çã®å°é ã«ãããããã¯ãšã³ãéçºã«ã³ã¢ãã£ãã£åã®æ³¢ãæŒãå¯ããŸããããã®çµæãããããããã驿°ã®æ©äŒããŸã ã©ãã ãæ®ã£ãŠãããïŒãšããç¹ã«ãããŠãããã³ããšã³ãéçºãããé åçã«ãªãã€ã€ãããŸãããããŠããã³ããšã³ãéçºããããå€ãã®äŒæ¥ã«ãããŠäŸ¡å€ã®æºæ³ã§ãããšèšããã§ããããé客ãåçåã«ç¹ããã³ã³ãã³ãããããã¯ãã«ãããã³ããšã³ãã¯çŽçµããŠããããã§ãã
ãŸãè¿å¹ŽãJamstack(JavaScriptã»APIã»ããŒã¯ã¢ãã)ãšããèšèšææ³ãç»å Žããããã³ããšã³ããšããã¯ãšã³ããåãåããããšã容æã«ãªããŸãããããã«ãããããã¯ãšã³ããè¶³æ·ã«ãªãããšãªããããã³ããšã³ããä»ãŸã§ä»¥äžã«å¹çããäœãããšãã§ããŸããJamstackãžã®ç§»è¡ã«é¢ããŠã¯ã°ãŒã°ã«ããã§ã€ã¹ããã¯ããã€ã¯ããœããã倪éŒå€ãæŒããŠãã(äŸ: ãã€ã¯ããœããã®ããã¥ã¡ã³ããŒã·ã§ã³ãµã€ãã¯å šãŠJamstackã§æ§ç¯)ãæ¥çå šäœã«ãããŠæ¥é²ææ©ã§å°å ¥ãé²ãã§ããŸãã
Accel(蚳蚻: ä»åVercelã«æè³ããVC)ã®Daniel Levineã¯ãããã¶ã€ããŒãããã³ããšã³ããšã³ãžãã¢ããäž»å°æš©ãæ¡ã£ãŠUIãUXãäœã蟌ãããšãã§ãããåŠããããããããå°æ¥ã»ãšãã©ã®å€§èŠæš¡åžå Žã«ãããŠãããžãã¹ã®åæã決ããéµãšãªãã ããããšäºæ³ããŠããŸãããŸã圌ã¯ããVercelã¯ãããã³ããšã³ãçã®AWSã«ãªãããããããªãããšã話ããŠããŸããã
ããã³ããšã³ãã®éçºè äœéšãå·Šå³ãã3倧ãã¬ã³ã [#megatrends]
Jamstackã®å°é ã«å ããããã³ããšã³ãéçºã¯å šè¬çã«è¿ä»£åãé²ãã§ããŸããéçºãé«éåããããŒã«ãçŸããŠJavaScriptãšã³ãžãã¢ãæ©æµãåãããããµãŒãã¹èªäœãææ°æè¡ã«ãã£ãŠé«éåãããããšã§ãŠãŒã¶ãŒãæ©æµãåããŠããŸãããã®ããã«è¿ä»£åãé²ãäžã§ãããã«è¯è³ªãªããã³ããšã³ãã®éçºè äœéšã远æ±ããããã«ã¯ã©ãããã°ããããããããã以äžã«è¿°ã¹ã3倧ãã¬ã³ãã«çæããå¿ èŠãããã§ããããã¡ãªã¿ã«ãVercelãæäŸããããã³ããšã³ãéçºè åãã®ã¯ã©ãŠããã©ãããã©ãŒã ã¯ããããã®ãã¬ã³ãã念é ã«çœ®ããŠèšèšãããŠããŸãã
1. ã³ã³ããŒãã³ãåãæé©è§£ [#develop-with-components]
ããé«åºŠãªUIãUXãæ±ããããã«ã€ããçŸå Žã§ã¯ã³ã³ããŒãã³ãåããã¶ã€ã³ã·ã¹ãã ã®å°å ¥ãæ¥åã«ãªã£ãŠããŸããåããããã¯ããªãã°ããã©ãããã©ãŒã ãéãã©ãŠãŒã¶ãŒäœéšã«äžè²«æ§ãããã¹ãã§ããããšãã°ãã¿ã³ã®èŠãç®ã¯ããŠã§ãã¢ããªãã¢ãã€ã«ã¢ããªããã¹ã¯ãããã¢ããªããããã¯ã¢ããªããéãããã¡ãŒã«ã®æäžã«ãããŠãåãã§ããããšãæãŸããã§ãããã
å°ãåãŸã§ãã³ã³ããŒãã³ãåã¯åžžèã§ã¯ãããŸããã§ãããã»ã¬ã¯ã¿ãšã³ãžã³ãDOMã話é¡ã®äžå¿ã ã£ãã®ã§ãããããªäžããã§ã€ã¹ããã¯ãçã¿åºããReactãã³ã³ããŒãã³ãåã®æŠå¿µãæå±ããŸããããã¡ãããä»ã®ãã¬ãŒã ã¯ãŒã¯ã§ãã³ã³ããŒãã³ããå®çŸ©ããããšã¯ã§ããŸããããã³ã³ããŒãã³ãåã®æµããäœã£ãå é§è ã¯çŽãããªãReactã§ããã
æ°å¹ŽåãTim NeutkensãNaoyuki KanezawaããããŠç§ã®3人ã¯ããReactã¯ããããããããããã³ããšã³ãã¯å šãŠReactã§æžããããã«ãªãã ããããšæãããããå®çŸããããã«Next.jsãäœããŸãããäžã€ã®ã³ã³ããŒãã³ãã ãã«Reactã䜿ãã®ã§ã¯ãªããäœããããReactã§æžããã人åãã«å¿ èŠãªæ©èœãå®è£ ããã®ã§ããNext.jsã¯ãReactãåãæããã³ã³ããŒãã³ãåã®èãæ¹ããããã³ããšã³ãå šãŠã«å¿çšããããšããããŒãºã«å¿ããŸããã
ç§éã®èªã¿ã¯çäžããŸãããçŸåšãããã³ããšã³ãéçºçŸå Žã®å€ãã¯ã³ã³ããŒãã³ãåãžã®ç§»è¡ãæ¥ãããã§é²ããŠããŸããå€ãã¯Reactãéžã³ãããã³ããšã³ããããã¯ãšã³ãããåé¢ããèšèšãææ¬çã«èŠçŽãããšããŠããã®ã§ããVercelã¯ããããã£ã課é¡ã«çŽé¢ããŠããããã³ããšã³ãéçºè ã«ãšã£ãŠãå¿ èŠãªãã®ããã¹ãŠåããã©ãããã©ãŒã ã§ãããããšèããŠããŸãã
Vercelã¯Next.jsã«å ããã©ã㪠ã³ã³ããŒãã³ãåã® ãã¬ãŒã ã¯ãŒã¯ã«ã§ã æºéãªã 察å¿ããŠããŸããæè¿ã¯æåãªãã¬ãŒã ã¯ãŒã¯ãå€ããããšãã°VueãSvelteã¯ããã©ãŠã¶ãèªã¿èŸŒãJavaScriptã®å®¹éãå€§å¹ ã«æžãããªã©ææ¬²çãªè©Šã¿ãè¡ã£ãŠããŸããã©ã®ãã¬ãŒã ã¯ãŒã¯ããã³ã³ããŒãã³ãåã§çŽé¢ããæ§ã ãªåé¡ããã³ã³ããŒãã³ãåã®ãŠã§ãæšæºã«ããã課é¡ã解決ããããšã§é è§ãçŸããŠããŸããVercelã¯ããããã£ããã¬ãŒã ã¯ãŒã¯å šãŠãæè¿ãããã©ãããã©ãŒã ã§ããããã®ã§ãã
2. ã³ãŒãã¬ãã¥ãŒã¯ãããã€ãã¬ãã¥ãŒã«åŠãã [#preview]
ã³ãŒããããã·ã¥ããŠã¬ãã¥ãŒããäžé£ã®ããã»ã¹ã¯è€éåããã¡ã§ããèªåã®CI/CDãã€ãã©ã€ã³ãæ§ç¯ããããJenkinsã®èšå®ãåŒã£ãããCI/CDãCDNã®ãã³ããŒãéžå®ããã®ã«æéãããããããã®ã§ããCI/CDãšCDNãããŸã飿ºãããããè€éãªã·ã¹ãã ã®æåãèŠåŒµãã®ã¯ãšãŠãé£åã§ãã
ããã³ããšã³ãã«ç¹åããããã·ã¥ã»ã¬ãã¥ãŒã®ä»çµã¿ã«ã€ããŠè©Šè¡é¯èª€ããçµæãç§éã¯ç»æçãªã¢ã€ãã¢ã«ãã©ãçããŸãããJamstackã®ããã³ããšã³ãã¢ããªãéçºããŠããããŒã ã«ãšã£ãŠã¯ããã¬ãã¥ãŒçšã®URLã»ã©ã·ã³ãã«ã§åŒ·åãªãã®ã¯ãªããšæ°ã¥ããã®ã§ããVercelã䜿ãã°ãéçºäžã®ããã³ããšã³ãã¢ããªããã¬ãã¥ãŒçšã«ãããã€ããããããŸãã®URLãååŸããŠçµæã確èªããããšãã§ããŸããã³ã³ãã³ã管çã·ã¹ãã (蚳蚻: Wordpressãªã©)ã«ãããããã¬ãã¥ãŒæ©èœãšåãã§ãããVercelã¯Gitãšé£æºããå šãŠã®pushã«å¯ŸããŠãããã€ãè¡ãã®ããã€ã³ãã§ãã(蚳蚻: åpushããšã«ç¬ç«ãããããã€ãè¡ãããæ¯åºŠæ°ããURLãçæãããŸãããŸãããã©ã³ãã«å¯Ÿå¿ããURLãå¥ã«çæãããŸãã)
ãããURLã ãšäŸ®ããªããããã¬ãã¥ãŒURLã«ã¯ãè€éãªä»çµã¿ããããã³ããšã³ãéçºè ãè§£æŸããéçºã¹ããŒããé£èºçã«é«ãã广ãããã®ã§ãã
æãããããããäŸãæãããšããã¬ãã¥ãŒURLãããã°ãéçºéšéã ãã§ãªããããŒã±ãã£ã³ã°ãå¶æ¥ãæ³åãªã©ä»éšéãšã®å ±åäœæ¥ãæããŸãã瀟å ãã£ããã§ãã¬ãã¥ãŒURLãéãåãã ãã§ãããŸäœã®éçºãé²ãã§ããŠãäŒç€ŸãšããŠã©ã®åéã«åãå ¥ããŠããã®ããå¯èŠåãããã®ã§ãã
ãããã€æ¯ã«æ°ããURLãçæãããã°ããã¹ãã容æã«ãªããŸãããã¬ãã¥ãŒURLã䜿ãã°ãã¹ããŒãžã³ã°ç°å¢ãéãè¶ããŠãæ¬çªãšåãç°å¢ã§ãã¹ããè¡ãããšãã§ããŸãããã¡ããããã¬ãã¥ãŒURLã¯ã¢ã€ãã¢æ®µéã®ãããã¯ãã詊ãã®ã«ã䜿ããã§ããããçºæ¡ããå質ä¿èšŒãŸã§ããœãããŠã§ã¢éçºããã»ã¹ã®å 𿮵éã«ãããŠãã¬ãã¥ãŒURLã¯åœ¹ç«ã€ã®ã§ãã
Vercelã®ãããã€ãã¬ãã¥ãŒURLã®ããã²ãšã€ã®ã¡ãªããã¯ããã¹ãŠã®æ©èœãæ¬çªç°å¢ãšéè²ãªããšããããšã§ããããšãã°ãVercelã¯ãã¬ãã¥ãŒãå«ãå šãŠã®ãããã€URLãèªåã§åžžæSSLåããŠãããŸããã€ã³ãã©æŽåã«é ãæ©ãŸãããšãªããLetâs Encryptãçšããã»ãã¥ã¢ãªç°å¢ãå©çšããããšãã§ããã®ã§ããåžžæSSLåã¯ãã¬ãã¥ãŒURLãå ±æããéã«åœ¹ç«ã€ã ãã§ãªããæ¬çªããªããã®ç°å¢ã§ãã¹ããè¡ãã®ã«ãéå®ããã§ãããããã¹ãæã«SSLåã培åºããŠããªããšãããæ¬çªã«ãããã€ããéã«ã»ãã¥ãªãã£èŠåã衚瀺ããããããŠãŒã¶ãŒäœéšãæãªãããå¯èœæ§ãçãŸããŸããã¡ãªã¿ã«æè¿ã®ãã©ãŠã¶ã§ã¯ãSSLåãããŠããªããµã€ãã§ã¯BluetoothããŠã§ãã«ã¡ã©ããã€ã¯ãšãã£ãæ©èœãããããå©çšã§ããªããªããŸãã
3. ã¹ããŒããåœ [#ship-with-speed]
æè¿ã®ããã³ããšã³ãéçºã«ãããŠããµã€ãã®é床ã»ã©å€§äºãªããšã¯ãããŸãããããšãã° Googleã®Lighthouseã¹ã³ã¢ ã¯ãããŸããŸãªèгç¹ãããµã€ãã®é床ãããããæ°å€åããŠãããŸããããããã®é床ããµã€ãã®æ€çŽ¢é äœã«åœ±é¿ããŸãã
Vercel㯠ã°ããŒãã«ãªãšããžãããã¯ãŒã¯ ãéçšããŠãããç¹ã«äœããããšããããã€ãã床ã«Lighthouseã§æºç¹ãåãç¶ããããšãã§ããŸã(蚳蚻: Lighthouseã®ããã©ãŒãã³ã¹ã¹ã³ã¢)ãVercelã®å©çšè ããCDNããµãŒãã¬ã¹ã¢ãŒããã¯ãã£ã®é»éè¡ãçè§£ããå¿ èŠã¯ãããŸããããã Vercelã«Pushããã ãã§ãããªãã®ããã³ããšã³ãã¢ããªã¯äžçäžã®ãšããžã«ãããã€ãããéçã³ã³ãã³ãã¯ãã£ãã·ã¥ããããŸããããã¯ã©ã¹ã®å§çž®æè¡ã§å§çž®ãããŸã(Vercelã§ã¯ Brotli ã䜿ãããŠããŸãã蚳蚻: gzipãå©çšå¯)ãããã³ããšã³ãã®ããã©ãŒãã³ã¹ã«ãŸã€ããå šãŠã®ææšã«åããæé©åãè¡ããããã®å¹æã¯ãã¬ãã¥ãŒURLã§ç¢ºãããããšãã§ããã®ã§ãã
ãŸããVercelã¯ãµã€ãã®é床ã ãã§ãªããéçºé床ã®åäžã«ãäžåœ¹è²·ããŸããéçºã®è»žè¶³ãããŒã«ã«ããã¯ã©ãŠãã«ç§»ãããšã§ãããæ¥œã«ãããéããããã¯ããæ¹åã§ããããã«ãªãã¯ãã§ãã
ãããã [#onward]
ãŠãŒã¶ãŒã«ãšã£ãŠã¯ããéããéçºè ã«ãšã£ãŠã¯ããéçºããããããŠã§ãã®æ°æä»£ã¯ãŸã å§ãŸã£ãã°ããã§ãã
ãããªæä»£ããã²ãVercelãšå ±ã«æ©ãã§ã¿ãŸããããå®ãããã°ãç§éã®ãã€ãã¿ãŒããã©ããŒããŠã¿ãŠãã ããããªãŒãã³ãªãã©ãããã©ãŒã ããçãŸããVercelã®ãã©ããŸã§ããªãŒãã³ãªç©èªãå£éèŠããããšã§ãããã