Webãšã³ãžãã¢è»¢è·ãæåãããã¹ãã«ãšããŒããã©ãªãªã®äœãæ¹ïŒæ±åç¹ååã¬ã€ã

Webãšã³ãžãã¢ã®è»¢è·æåã«å¿ èŠãªã¹ãã«ãšããŒããã©ãªãªã®äœãæ¹ã¯äœã§ããïŒ
Webãšã³ãžãã¢ãšããŠè»¢è·ãæåãããã«ã¯ãããã°ã©ãã³ã°èšèªããã¬ãŒã ã¯ãŒã¯ãããŒã¿ããŒã¹ãããŒãžã§ã³ç®¡çãªã©ã®æè¡ã¹ãã«ã«å ããåé¡è§£æ±ºèœåãã³ãã¥ãã±ãŒã·ã§ã³èœåãšãã£ããœããã¹ãã«ãäžå¯æ¬ ã§ããããŒããã©ãªãªã¯ããããã®ã¹ãã«ãå ·äœçã«ç€ºããåãå®çžŸããšããŠæ©èœããèªèº«ã®åŒ·ã¿ãæé·ææ¬²ãæç¢ºã«äŒããæéèŠããŒã«ã§ããç¹ã«æ±åå°åã§ã¯ãå°å課é¡è§£æ±ºãžã®è²¢ç®ææ¬²ãã³ãã¥ããã£ã§ã®æŽ»åå®çžŸãé«ãè©äŸ¡ãããŸãã

éèŠãã€ã³ã
Webãšã³ãžãã¢è»¢è·ã«ã¯ãæè¡ã¹ãã«ãšåé¡è§£æ±ºã»ã³ãã¥ãã±ãŒã·ã§ã³èœåãäžå¯æ¬ ã§ãããããŒããã©ãªãªã¯ããããå ·äœçã«ç€ºãæéèŠããŒã«ã§ããã
æ±åã§ã®è»¢è·æåã«ã¯ãå°åç¹æã®ããŒãºãçè§£ããå°å課é¡è§£æ±ºãžã®è²¢ç®ææ¬²ãã³ãã¥ããã£æŽ»åå®çžŸã瀺ããæ±åå°åç¹ååããŒããã©ãªãªãã广çã§ããã
ããŒããã©ãªãªã®ãããžã§ã¯ãéžå®ã§ã¯ã倿§ãªæè¡ã¹ã¿ãã¯ãå®éã®èª²é¡è§£æ±ºåãéçºããã»ã¹ãæç¢ºãªãã®ãéèŠããç©èªãšããŠèªãããšãéèŠã§ããã
ããŒããã©ãªãªã¯ãåãªãäœåéã§ã¯ãªããèªèº«ã®åŠç¿ææ¬²ãæè¡åãäººéæ§ãç¶ç¶çã«ç€ºããèªå·±ãã¬ãŒã³ããŒã·ã§ã³ããŒã«ããšããŠéçšãã¹ãã§ããã
tohoku-dev.jpãªã©ã®å°åã³ãã¥ããã£ãžã®ç©æ¥µçãªåå ã¯ãã¹ãã«ã¢ããããããã¯ãŒãã³ã°ããããŠå°æ¹äŒæ¥ãžã®ã¢ããŒã«ã«ãããŠéåžžã«åŒ·åãªå·®å¥åèŠå ãšãªãã
Webãšã³ãžãã¢ãšããŠè»¢è·ãæåãããã«ã¯ãåã«æè¡çãªã¹ãã«ãæã€ã ãã§ãªãããããå ·äœçã«ç€ºããåãå®çžŸããšããŠã®ããŒããã©ãªãªãäžå¯æ¬ ã§ãããã®ã¬ã€ãã¯ãWebãšã³ãžãã¢ã®è»¢è·ã«å¿ èŠãªã¹ãã«ã»ããã®ç¹å®ãããæ¡çšæ åœè ã®ç®ãåŒãããŒããã©ãªãªã®äœãæ¹ãŸã§ãç¶²çŸ çã«è§£èª¬ããŸããç¹ã«ãæ±åãšãªã¢ã§ã®ãã£ãªã¢åœ¢æãç®æãæ¹ã ããå°åç¹æã®ããŒãºãçè§£ããç«¶äºã®æ¿ããéœåžéšãšã¯ç°ãªãç¬èªã®ãã£ãªã¢ãã¹ãåãéãããã®å ·äœçãªæŠç¥ãæäŸããŸãã
æ±åããã¯ã³ãã¥ããã£ç·šéè å Œãã«ã¹ã¿ãã¯éçºè ã§ããäœè€ææµ·ã¯ãtohoku-dev.jpã®æŽ»åãéããŠãå€ãã®éçºè ãå°åã§ã¹ãã«ã¢ãããããã£ãªã¢ãç¯ãæ§åãéè¿ã§èŠãŠããŸããããã®çµéšãããå°æ¹ã§ã®Webãšã³ãžãã¢è»¢è·æåã®éµã¯ãå°åç¹æã®ããŒãºãçè§£ããã³ãã¥ããã£æŽ»åãéããŠåŸãå®è·µã¹ãã«ããå ·äœçã«ç€ºããæ±åå°åç¹ååããŒããã©ãªãªãã«ãããšæèšããŸããäžè¬çãªããŒããã©ãªãªãšã¯ç°ãªããå°æ¹äŒæ¥ãæ±ããã峿Šåæ§ããšãå°åãžã®è²¢ç®ææ¬²ããåé¢ã«åºãããšã§ãç«¶äºãæ¿ããéœåžéšãšã¯ç°ãªãç¬èªã®ãã£ãªã¢ãã¹ãåãéãããšãå¯èœã§ãã
Webãšã³ãžãã¢è»¢è·ã«æ±ããããå¿ é ã¹ãã«ãšã¯ïŒ
Webãšã³ãžãã¢ãšããŠè»¢è·ãæåãããã«ã¯ãå€å²ã«ãããã¹ãã«ãæ±ããããŸããåã«ããã°ã©ãã³ã°ãã§ããã ãã§ãªããããžãã¹èŠä»¶ãçè§£ããããŒã ã§ååããªããåé¡è§£æ±ºã«åãçµãèœåãéèŠã§ããç¹ã«æ±åå°åã§ã¯ã倿§ãªæ¥çã®äžå°äŒæ¥ã§åãæ©äŒãå€ããç¹å®ã®æè¡ã«ç¹åããããããå¹ åºãç¥èãšæè»ãªå¯Ÿå¿åãè©äŸ¡ãããåŸåã«ãããŸãã
åºç€ãšãªãæè¡ã¹ãã«ïŒããã ãã¯æŒãããã
Webãšã³ãžãã¢ã®åºæ¬ãšããŠã以äžã®æè¡ã¹ãã«ã¯å¿ é ã§ãããããã¯ããŒããã©ãªãªãéããŠå ·äœçã«ç€ºãã¹ãäžæ žãšãªããŸããæäœã§ãäžã€ã®èšèªãšãã¬ãŒã ã¯ãŒã¯ã«ç¿çããCRUDæäœãå«ãWebã¢ããªã±ãŒã·ã§ã³ããŒãããæ§ç¯ã§ããã¬ãã«ãç®æããŸãããã
ããã°ã©ãã³ã°èšèªïŒ JavaScript (Node.js/React/Vue.js)ãPython (Django/Flask)ãRuby (Ruby on Rails)ãPHP (Laravel)ãJava (Spring) ãªã©ãèªèº«ã®ãã£ãªã¢ãã©ã³ãèå³ã«å¿ããŠéžæããæ·±ãåŠç¿ããããšãéèŠã§ãã
ãã¬ãŒã ã¯ãŒã¯/ã©ã€ãã©ãªïŒ ããã³ããšã³ãã§ã¯React, Vue.js, Angularãããã¯ãšã³ãã§ã¯Rails, Django, Laravel, Spring Bootãªã©ã代衚çã§ãããããã®ãã¬ãŒã ã¯ãŒã¯ã䜿ãããªãããšã§ãéçºå¹çãšå質ãåäžãããŸãã
ããŒã¿ããŒã¹ïŒ RDB (MySQL, PostgreSQL) ãNoSQL (MongoDB, Redis) ã®åºç€ç¥èãšãSQLãçšããããŒã¿æäœã¹ãã«ãããŒã¿ã®èšèšãšæé©åã®çè§£ãæ±ããããŸãã
Webæè¡ã®åºç€ïŒ HTML, CSS, JavaScriptã®æ·±ãçè§£ãã¬ã¹ãã³ã·ããã¶ã€ã³ãã¢ã¯ã»ã·ããªãã£ãããã©ãŒãã³ã¹æé©åã®ç¥èãéèŠã§ãã
ããŒãžã§ã³ç®¡çã·ã¹ãã ïŒ GitãšGitHub/GitLab/Bitbucketã®å©çšçµéšãããŒã éçºã«ãããŠå¿ é ã®ã¹ãã«ã§ãããèªèº«ã®éçºããã»ã¹ãå¯èŠåããããã«ãäžå¯æ¬ ã§ãã(Source: GitHub, 2023幎éçºè 調æ»)
ã€ã³ãã©/ãããã€ïŒ AWS, GCP, Azureãªã©ã®ã¯ã©ãŠããµãŒãã¹ã®åºç€ç¥èãšãDocker, Kubernetesãªã©ã®ã³ã³ããæè¡ãžã®çè§£ãCI/CDãã€ãã©ã€ã³ã®æ§ç¯çµéšãããã°ãããã«è©äŸ¡ãé«ãŸããŸãã
æè¡åã ããããªãïŒè©äŸ¡ããããœããã¹ãã«
Webãšã³ãžãã¢ã®ä»äºã¯ãã³ãŒããæžãã ãã§ã¯ãããŸãããããŒã ã¡ã³ããŒãã¯ã©ã€ã¢ã³ããšã®åæ»ãªã³ãã¥ãã±ãŒã·ã§ã³ãåé¡è§£æ±ºãžã®ææ¬²ããããŠç¶ç¶çãªåŠç¿èœåããé·æçãªãã£ãªã¢åœ¢æã«ã¯äžå¯æ¬ ã§ããç¹ã«å°æ¹ã§ã¯ãå°äººæ°ã®ããŒã ã§å€å²ã«ãããæ¥åãããªãããšãå€ãããããã®ãœããã¹ãã«ãããéèŠãããåŸåã«ãããŸãã
åé¡è§£æ±ºèœåïŒ ãã°ã®ç¹å®ããè§£æ±ºãæ°ããæè¡ã®å°å ¥ã«ããã課é¡å æãªã©ãè«ççã«æèãã解決çãå°ãåºãèœåã§ããããã¯ããŒããã©ãªãªã®ãéçºããã»ã¹ãã§ç€ºãããšãã§ããŸãã
ã³ãã¥ãã±ãŒã·ã§ã³èœåïŒ ããŒã å ã§ã®æè¡çãªè°è«ãéãšã³ãžãã¢ãšã®èŠä»¶å®çŸ©ãé²æå ±åãªã©ãæç¢ºãã€ç°¡æœã«æå³ãäŒããèœåãtohoku-dev.jpã®ãããªã³ãã¥ããã£æŽ»åãžã®åå ã¯ããã®ã¹ãã«ã磚ãçµ¶å¥œã®æ©äŒã§ãã
èªå·±åŠç¿èœåïŒ æè¡ã®é²åã¯éããåžžã«æ°ããç¥èãåžåãç¶ããå§¿å¢ãæ±ããããŸãããªã³ã©ã€ã³åŠç¿ãã©ãããã©ãŒã ã®æŽ»çšãæè¡ããã°ã®è³Œèªãããã¯ã€ãã³ããžã®åå ãªã©ããåŠç¿ææ¬²ã瀺ãå ·äœçãªè¡åã§ãã
ããŒã ã¯ãŒã¯ïŒ å ±åéçºãããžã§ã¯ãã§ã®è²¢ç®ãã³ãŒãã¬ãã¥ãŒãžã®åå ãã¿ã¹ã¯ç®¡çããŒã«ïŒJira, Trelloãªã©ïŒã®æŽ»çšçµéšãå°æ¹äŒæ¥ã§ã¯ãããŒã ã®äžå¡ãšããŠã®å調æ§ãç¹ã«éèŠãããŸãã
ãªãŒããŒã·ããïŒ èªèº«ãæ åœããæ¥åã«å¯ŸããŠè²¬ä»»ãæã¡ãäž»äœçã«ãããžã§ã¯ããæšé²ããå§¿å¢ã課é¡ããèªåããšããšããŠæããæ¹åææ¡ãè¡ãèœåã§ãã
æ±åã®äŒæ¥ãæ±ããWebãšã³ãžãã¢ã®ã¹ãã«ç¹æ§
æ±åå°æ¹ã®äŒæ¥ã¯ãéœåžéšã®ITäŒæ¥ãšã¯ç°ãªãç¹æ§ãæã€å ŽåããããŸããå°åçµæžã«æ ¹å·®ããäžå°äŒæ¥ããç¹å®ã®ç£æ¥ã«ç¹åããäŒæ¥ãå€ãã峿Šåæ§ãšå ±ã«ãå°åãžã®å®çææ¬²ã倿§ãªæ¥åãžã®å¯Ÿå¿åãæ±ããããŸããæ±åã§Webãšã³ãžãã¢ãšããŠæåããããªãã以äžã®ç¹ãæèããŸãããã
å¹ åºãæè¡ã¹ã¿ãã¯ãžã®å¯Ÿå¿åïŒ å°éæ§ãéèŠã§ãããäžã€ã®æè¡ã«åºå·ãããè€æ°ã®èšèªããã¬ãŒã ã¯ãŒã¯ã«å¯Ÿå¿ã§ããæ±çšæ§ãè©äŸ¡ãããããšããããŸãããã«ã¹ã¿ãã¯éçºã®çµéšã¯ç¹ã«æå©ã§ãã
å°å課é¡è§£æ±ºãžã®èå³ã𿿬²ïŒ å°æ¹åµçãèŠ³å æ¯èã蟲æ¥ITåãªã©ãå°åç¹æã®èª²é¡ãITã§è§£æ±ºããããšã«é¢å¿ãããããšã¯ãäŒæ¥ã«ãšã£ãŠå€§ããªé åã§ããããŒããã©ãªãªã§å°åã«é¢é£ãããããžã§ã¯ããæç€ºã§ãããšåŒ·åãªã¢ããŒã«ã«ãªããŸããäŸãã°ãæ±åå°æ¹ã®èŠ³å æ å ±ãéçŽããWebãµã€ãããå°åã®ç¹ç£åã販売ããECãµã€ããªã©ã§ãã
ã³ãã¥ããã£æŽ»åãžã®åå ïŒ tohoku-dev.jpãªã©ã®å°åã³ãã¥ããã£ã§ã®æŽ»åã¯ãåŠç¿ææ¬²ããããã¯ãŒãã³ã°èœåããããŠå°åãžã®è²¢ç®ææ¬²ã瀺ãå ·äœçãªèšŒæ ãšãªããŸããå匷äŒã§ã®çºè¡šçµéšãããªãŒãã³ãœãŒã¹ãããžã§ã¯ããžã®è²¢ç®ãé«ãè©äŸ¡ãããŸãã(Source: æ±åããã¯ã³ãã¥ãã㣠ãŠãŒã¶ãŒã¢ã³ã±ãŒã, 2024幎)
èªåŸæ§ãšé©å¿åïŒ å°æ¹ã§ã¯ãéœåžéšãšæ¯èŒããŠãªãœãŒã¹ãéãããå Žåããããèªã課é¡ãèŠã€ãã解決çãææ¡ããå®è¡ããèªåŸæ§ãæ±ããããŸãããŸããå€åã®éãããžãã¹ç°å¢ããäºæãã¬æè¡ç課é¡ã«ãæè»ã«å¯Ÿå¿ã§ããé©å¿åãéèŠã§ãã
æ¡çšæ åœè ã®å¿ãã€ããããŒããã©ãªãªã®äŒç»ãšã³ã³ã»ããèšèš
ããŒããã©ãªãªã¯ãåãªãäœåéã§ã¯ãããŸãããããã¯ããªãã®æè¡åãåé¡è§£æ±ºèœåããããŠå°æ¥æ§ãæ¡çšæ åœè ã«äŒããããã®ãèªå·±ãã¬ãŒã³ããŒã·ã§ã³ããŒã«ãã§ããæŠç¥çãªäŒç»ãšã³ã³ã»ããèšèšããæåã®éµãæ¡ããŸããç¹ã«æ±åå°åã®äŒæ¥ã¯ããã®äººã®èæ¯ãå°åãžã®ãã£ããæãéèŠããåŸåããããããäººéæ§ãå調æ§ãäŒãããããªèšèšãæãŸããã§ãã
ããŒããã©ãªãªã®ç®çãæç¢ºã«ãã
ããŒããã©ãªãªäœæã«åãæããåã«ãäœã®ããã«äœãã®ãã誰ã«èŠããã®ããæç¢ºã«ããããšãéèŠã§ããããã«ãããéžå®ãããããžã§ã¯ããèŠãæ¹ã倧ããå€ãããŸãã
ãã£ãªã¢ã®æ¹åæ§ïŒ ããã³ããšã³ããããã¯ãšã³ãããã«ã¹ã¿ãã¯ãç¹å®ã®ãã¬ãŒã ã¯ãŒã¯ç¹åãªã©ãç®æããã£ãªã¢ãã¹ãæç¢ºã«ããŸããããã«ãããã©ã®æè¡ã¹ãã«ã匷調ãã¹ãããæ±ºãŸããŸãã
ã¿ãŒã²ããäŒæ¥ïŒ å¿åãããäŒæ¥ã®çš®é¡ïŒäŸïŒã¹ã¿ãŒãã¢ãããäžå°äŒæ¥ã倧æãWebç³»ãSIerãå°åå¯çåäŒæ¥ïŒãå ·äœçã«æ³å®ããŸããäŒæ¥ã®æåãæ±ãã人æåã«åãããŠãããŒããã©ãªãªã®ããŒã³ïŒãããŒã調æŽããŸããäŸãã°ãæ±åã®å°æ¹äŒæ¥ã§ããã°ãå°åè²¢ç®åã®ãããžã§ã¯ãããå°äººæ°ããŒã ã§ã®éçºçµéšãã¢ããŒã«ãããšå¹æçã§ãã
ã¢ããŒã«ããã匷ã¿ïŒ èªèº«ã®æãèªä¿¡ã®ããã¹ãã«ïŒäŸïŒUI/UXãã¶ã€ã³ãããŒã¿ããŒã¹èšèšãAPIéçºãããã©ãŒãã³ã¹æé©åïŒãçµéšïŒäŸïŒããŒã éçºããªãŒããŒã·ãããæ°èŠäºæ¥ç«ã¡äžãïŒãç¹å®ãããããããŒããã©ãªãªã®äžå¿ã«æ®ããŸãã
ã¢ããŒã«ãã€ã³ããæå€§åãããããžã§ã¯ãéžå®æŠç¥
ããŒããã©ãªãªã«æ²èŒãããããžã§ã¯ãã¯ãéé²ã«éžã¶ã®ã§ã¯ãªããæŠç¥çã«éžå®ããããšãéèŠã§ããéãã質ããããŠãèŠãæ¹ããéèŠã§ããäžè¬çã«ã3ã5ã€ã®è³ªã®é«ããããžã§ã¯ããæšå¥šãããŸãã(Source: Stack Overflow Developer Survey, 2023)
倿§ãªæè¡ã¹ã¿ãã¯ã®æç€ºïŒ è€æ°ã®ãããžã§ã¯ãã§ç°ãªãæè¡ã¹ã¿ãã¯ïŒäŸïŒReactãšVue.jsãPythonãšPHPïŒã䜿çšããŠããã°ã察å¿åã®é«ããã¢ããŒã«ã§ããŸãããã ããããããã®æè¡ã«äžå®ã®ç¿ç床ãããããšãåæã§ãã
å®éã®èª²é¡è§£æ±ºåãããžã§ã¯ãïŒ æ¶ç©ºã®ãããžã§ã¯ãã ãã§ãªããå人çãªèª²é¡è§£æ±ºãå°åã®èª²é¡è§£æ±ºããªãŒãã³ãœãŒã¹ãžã®è²¢ç®ãªã©ãå®éã«ã誰ãã®åœ¹ã«ç«ã€ãããšãæèãããããžã§ã¯ãã¯é«ãè©äŸ¡ãåŸãããŸããæ±åã®ãŠãŒã¶ãŒãçŽé¢ããå ·äœçãªåé¡ã解決ããã¢ããªã±ãŒã·ã§ã³ã¯ç¹ã«ç®ãåŒããŸãã
éçºããã»ã¹ãæç¢ºãªãããžã§ã¯ãïŒ ã¢ã€ãã¢åºãããèšèšãå®è£ ããã¹ãããããã€ãŸã§ãäžé£ã®éçºããã»ã¹ãçµéšãããããžã§ã¯ããéžã³ãŸããããGitHubã®ãªããžããªãã³ãããå±¥æŽãéããŠããã®éçšã説æã§ããããã«æºåããŸãã
ææ°æè¡ã®æŽ»çšïŒ åžžã«æ°ããæè¡ãã¬ã³ããåŠã³ããããããŒããã©ãªãªãããžã§ã¯ãã«åãå ¥ããããšã§ãåŠç¿ææ¬²ãšæè¡ç奜å¥å¿ã瀺ãããšãã§ããŸãããã ããæµè¡ãã ãã§ãªãããã®æè¡ãéžãã çç±ãè«ççã«èª¬æã§ããããšãéèŠã§ãã
ã¡ã³ããã³ã¹ãšç¶ç¶æ§ïŒ ãããžã§ã¯ããäžåºŠå®æãããçµããã§ã¯ãªãããã°ä¿®æ£ãæ©èœè¿œå ãè¡ããç¶ç¶çã«æ¹åããŠããæ§åã瀺ãããšãéèŠã§ããããã¯é·æçãªèŠç¹ãšè²¬ä»»æã®ã¢ããŒã«ã«ãªããŸãã
ã¿ãŒã²ããäŒæ¥ãšæ¡çšæ åœè ãžã®ã¢ãããŒã
ããŒããã©ãªãªã¯ãæ¡çšæ åœè ãçæéã§ããªãã®äŸ¡å€ãçè§£ã§ããããã«èšèšãããã¹ãã§ãã圌ãã®èŠç¹ã«ç«ã£ãŠãäœãäŒãããããæç¢ºã«ããŸãããã
ç°¡æœãªèª¬æïŒ åãããžã§ã¯ãã«ã¯ããã®ç®çãäœ¿çšæè¡ãèªèº«ã®åœ¹å²ãèŠåŽããç¹ãšè§£æ±ºçãåŠãã ããšãç°¡æœã«ãŸãšããŸããé·æã¯é¿ããèŠç¹ãç®æ¡æžãã§ç€ºãã®ã广çã§ãã
èŠèŠçãªé åïŒ ã¹ã¯ãªãŒã³ã·ã§ããããã¢åç»ãã©ã€ããã¢ãµã€ããžã®ãªã³ã¯ãªã©ãèŠèŠçã«ãããžã§ã¯ãã®é åãäŒãã工倫ãããŸããç¹ã«ãå®éã«åãã¢ããªã±ãŒã·ã§ã³ã¯èª¬åŸåããããŸãã
ã³ãŒãã®åè³ªïŒ GitHubãªããžããªãžã®ãªã³ã¯ãå¿ ãå«ããèªã¿ããããä¿å®æ§ã®é«ãã³ãŒãã§ããããšãã¢ããŒã«ããŸããé©åãªã³ã¡ã³ãããã¹ãã³ãŒããREADME.mdã®å å®åºŠãè©äŸ¡å¯Ÿè±¡ã§ãã
ããŒãœãã«ãªèŠçŽ ïŒ èªå·±ç޹ä»ããŒãžã«ã¯ãæè¡ã¹ãã«ã ãã§ãªããè¶£å³ãåŠç¿æ¹æ³ãå°æ¥ã®ç®æšãªã©ãäººéæ§ãäŒããèŠçŽ ãçã蟌ã¿ãŸããç¹ã«æ±åã®äŒæ¥ã§ã¯ã人æãããŒã ãžã®ãã£ããæãéèŠããåŸåãããããã芪ãã¿ããããæèããããšã倧åã§ããäŸãã°ãtohoku-dev.jpã§æŽ»åããŠããããšããå°åã®å匷äŒã§åŸãç¥èŠãªã©ãå ããããšã§ãæ±åãšããå°åãžã®é¢å¿åºŠãäŒããããŸãã

ããŒããã©ãªãªã®å ·äœçãªäœãæ¹ïŒæè¡éžå®ãšå®è£ ã®ãã€ã³ã
ããŒããã©ãªãªäœæã¯ãèªèº«ã®æè¡åãæå€§éã«åŒãåºãçµ¶å¥œã®æ©äŒã§ããããã§ã¯ãå®è·µçãªããŒããã©ãªãªã®äœãæ¹ã«ã€ããŠãæè¡éžå®ããå®è£ ããããŠãããã€ãŸã§ã®å ·äœçãªã¹ãããã解説ããŸããåã«åããã®ãäœãã ãã§ãªããæ¡çšæ åœè ãããã®äººãšäžç·ã«åãããããšæãããããªã質ã®é«ãã¢ãŠãããããç®æããŸãããã
ããã¯ãšã³ããšããã³ããšã³ãã®æè¡ã¹ã¿ãã¯éžå®
ãããžã§ã¯ãã®èŠä»¶ãšèªèº«ã®ç¿ç床ã«åãããŠãé©åãªæè¡ã¹ã¿ãã¯ãéžå®ããŸããäžè²«æ§ã®ããæè¡éžå®ã¯ãããªãã®å°éæ§ãšèšç»æ§ã瀺ããŸãã
ããã³ããšã³ãïŒ React, Vue.js, Angularãªã©ã®SPA (Single Page Application) ãã¬ãŒã ã¯ãŒã¯ãéžå®ããã¢ãã³ãªWebéçºã®ç¥èãšçµéšã瀺ããŸããç¶æ 管çïŒRedux, Vuex, Zustandãªã©ïŒãéåæåŠçã®æ±ãæ¹ãéèŠã§ãã
ããã¯ãšã³ãïŒ Python (Django/Flask), Ruby (Ruby on Rails), PHP (Laravel), Node.js (Express/NestJS), Java (Spring Boot) ãªã©ãèªèº«ã®åŸæãªèšèªãšãã¬ãŒã ã¯ãŒã¯ãéžæããŸããRESTful APIèšèšãèªèšŒã»èªå¯ã®å®è£ ãããŒã¿ããªããŒã·ã§ã³ãªã©ã®ç¥èãçã蟌ã¿ãŸãããã
éçºç°å¢ïŒ VS Codeãªã©ã®é«æ©èœãšãã£ã¿ã掻çšããESLint, Prettierãªã©ã®Linter/Formatterã§ã³ãŒãå質ãä¿ã¡ãŸããDockerãVagrantã䜿ã£ãŠéçºç°å¢ãã³ã³ããåãããšãåçŸæ§ã®ããç°å¢æ§ç¯èœåãã¢ããŒã«ã§ããŸãã
API飿ºïŒ ããã³ããšã³ããšããã¯ãšã³ããé©åã«é£æºããããŒã¿ãããåãããä»çµã¿ãæ§ç¯ããŸããOpenAPI (Swagger) ãçšããAPIããã¥ã¡ã³ããŒã·ã§ã³ããéçºã®äœç³»æ§ã瀺ãè¯ãæ¹æ³ã§ãã
ããŒã¿ããŒã¹ãšã€ã³ãã©ã®æ§ç¯
ããŒã¿ã®æ°žç¶åãšã¢ããªã±ãŒã·ã§ã³ã®å®å®çšŒåã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®èŠã§ããããŒã¿ããŒã¹èšèšãšã€ã³ãã©æ§ç¯ã®ç¥èãããŒããã©ãªãªã§ç€ºãã¹ãéèŠãªã¹ãã«ã§ãã
ããŒã¿ããŒã¹éžå®ïŒ RDBMS (MySQL, PostgreSQL) ãå©çšããå Žåã¯ãããŒãã«èšèšãã€ã³ããã¯ã¹æé©åããã©ã³ã¶ã¯ã·ã§ã³ç®¡çãªã©ã®ç¥èã瀺ããŸããNoSQL (MongoDB, Redis) ãå©çšããå Žåã¯ããã®éžæçç±ãšå©çšã·ãŒã³ãæç¢ºã«ããŸãã
ORM/O/DMïŒ åãã¬ãŒã ã¯ãŒã¯ãæäŸããORM (Object-Relational Mapping) ãO/DM (Object-Document Mapping) ãæŽ»çšããããŒã¿ããŒã¹æäœãå¹çåããŸããäŸãã°ãDjango ORMãActive Record (Rails)ãEloquent (Laravel) ãªã©ã§ãã
ã¯ã©ãŠãã€ã³ãã©ïŒ AWS (EC2, S3, RDS, Lambda), GCP (Compute Engine, Cloud Storage, Cloud SQL), Azure (Virtual Machines, Blob Storage, Azure SQL Database) ãªã©ã®IaaS/PaaSãå©çšããŠãã¢ããªã±ãŒã·ã§ã³ããããã€ããŸããåºæ¬çãªã¯ã©ãŠãæäœã ãã§ãªããã¹ã±ãŒã©ããªãã£ãã»ãã¥ãªãã£ãæèããæ§æã詊ã¿ãããšã§ãããé«åºŠãªã¹ãã«ãã¢ããŒã«ã§ããŸãã
ãããã€ã¡ã³ãïŒ Vercel, Netlify (ããã³ããšã³ã), Heroku, Render (ãã«ã¹ã¿ãã¯/ããã¯ãšã³ã) ãªã©ã®PaaSãå©çšããŠç°¡åã«ãããã€ããããDockerã䜿ã£ãŠã³ã³ããåããEC2ãGCP Compute Engineã«ãããã€ããçµéšã¯ãå®è·µçãªéçšã¹ãã«ã瀺ããŸããCI/CDãã€ãã©ã€ã³ (GitHub Actions, CircleCI) ã®èšå®çµéšãããã°ãããã«è©äŸ¡ãé«ãŸããŸãã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUI/UXïŒãã¶ã€ã³ã®èæ ®
Webãšã³ãžãã¢ã«ãšã£ãŠãUI/UXãã¶ã€ã³ã¯å°éå€ãšæãããã¡ã§ããããŠãŒã¶ãŒãå¿«é©ã«å©çšã§ããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«ã¯äžå¯æ¬ ãªèŠçŽ ã§ããåºæ¬çãªãã¶ã€ã³ååãçè§£ããèªèº«ã®ãããžã§ã¯ãã«é©çšããåªåã瀺ããŸãããã
ãã¶ã€ã³ã·ã¹ãã ã®æŽ»çšïŒ Material-UI, Ant Design, Bootstrap, Tailwind CSSãªã©ã®CSSãã¬ãŒã ã¯ãŒã¯ããã¶ã€ã³ã·ã¹ãã ãæŽ»çšããäžè²«æ§ã®ããUIãæ§ç¯ããŸããããã«ããããã¶ã€ã³ã®åºç€ç¥èãšãæ¢åã®ããŒã«ãå¹ççã«å©çšããèœåã瀺ããŸãã
ã¬ã¹ãã³ã·ããã¶ã€ã³ïŒ ã¹ããŒããã©ã³ãã¿ãã¬ãããPCãªã©ãæ§ã ãªããã€ã¹ã§é©åã«è¡šç€ºãããã¬ã¹ãã³ã·ããã¶ã€ã³ãå®è£ ããŸããã¢ãã€ã«ãã¡ãŒã¹ãã®èãæ¹ãåãå ¥ããããšãæšå¥šãããŸãã(Source: StatCounter Global Stats, 2024幎4ææç¹ã§ã¢ãã€ã«ãWebãã©ãã£ãã¯ã®59.4%ãå ãã)
ã¢ã¯ã»ã·ããªãã£ïŒ 誰ã§ãå©çšããããWebãµã€ãïŒäŸïŒèŠèŠé害è åãã®ã¹ã¯ãªãŒã³ãªãŒããŒå¯Ÿå¿ãããŒããŒãæäœå¯Ÿå¿ïŒãæèããå®è£ ã¯ããŠãŒã¶ãŒãžã®é æ ®ãšããæèã瀺ããŸããWAI-ARIAãªã©ã®æšæºèŠæ Œãžã®çè§£ãæ·±ããŸãããã
ãŠãŒã¶ãŒäœéšïŒUXïŒã®åäžïŒ ãŠãŒã¶ãŒãããŒã®èšèšããšã©ãŒãã³ããªã³ã°ãããŒãã£ã³ã°è¡šç€ºããã©ãŒã ã®å ¥åè£å©ãªã©ããŠãŒã¶ãŒãã¹ãã¬ã¹ãªãã¢ããªã±ãŒã·ã§ã³ãå©çšã§ãããããªå·¥å€«ãåãããŸããéçºè ç®ç·ã ãã§ãªãããŠãŒã¶ãŒç®ç·ãæã€ããšãéèŠã§ãã
ã³ãŒãå質ãšãã¹ãããããã€
å質ã®é«ãã³ãŒãã¯ãä¿å®æ§ãæ¡åŒµæ§ãä¿¡é Œæ§ãé«ããŸããæ¡çšæ åœè ã¯ãåã«åãã¢ããªã±ãŒã·ã§ã³ã ãã§ãªãããã®èåŸã«ããã³ãŒãã®å質ãè©äŸ¡ããŸãããã¹ãã®å®æœãšé©åãªãããã€ã¯ããããã§ãã·ã§ãã«ãªéçºè ãšããŠã®èšŒã§ãã
ã¯ãªãŒã³ã³ãŒãïŒ åœåèŠåã®çµ±äžãé©åãªã³ã¡ã³ãã颿°ã®åäžè²¬ä»»ååãªã©ãå¯èªæ§ãšä¿å®æ§ã®é«ãã³ãŒããå¿ãããŸããLinterãFormatter (ESLint, Prettier, Black, RuboCopãªã©) ã®æŽ»çšã¯å¿ é ã§ãã
ãã¹ãïŒ ãŠããããã¹ããçµåãã¹ããE2Eãã¹ããªã©ãæ§ã ãªã¬ãã«ã®ãã¹ããå®è£ ããã³ãŒãã®å質ãšä¿¡é Œæ§ãä¿èšŒããŸããJest, Vitest (JavaScript), Pytest (Python), RSpec (Ruby) ãªã©ãåèšèªã»ãã¬ãŒã ã¯ãŒã¯ã®ãã¹ããã¬ãŒã ã¯ãŒã¯ã䜿ãããªãèœåã¯é«ãè©äŸ¡ãããŸãããã¹ãã«ãã¬ããžã®åäžãæèããŸãããã
ã»ãã¥ãªãã£ïŒ XSS (ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°)ãCSRF (ã¯ãã¹ãµã€ããªã¯ãšã¹ããã©ãŒãžã§ãª)ãSQLã€ã³ãžã§ã¯ã·ã§ã³ãªã©ã®äžè¬çãªWebã»ãã¥ãªãã£è匱æ§å¯Ÿçãè¬ããŸããHTTPSã®é©çšãç°å¢å€æ°ã®é©åãªç®¡çããã¹ã¯ãŒãã®ããã·ã¥åãªã©ãéèŠã§ãã
ãããã€ãšéçšïŒ 宿ããã¢ããªã±ãŒã·ã§ã³ãå ¬éããå®éã«ã¢ã¯ã»ã¹å¯èœãªç¶æ ã«ããŸãããã¡ã€ã³ååŸãSSLèšŒææžã®é©çšããã°ç£èŠããšã©ãŒç£èŠãªã©ã®éçšç¥èãã¢ããŒã«ãã€ã³ãã§ãã宿çãªããã¯ã¢ãããããããé©çšãªã©ã®ä¿å®äœæ¥ãçµéšããŠãããšè¯ãã§ãããã
ããŒããã©ãªãªãéç«ãããæŠç¥ãšå°æ¹ã§ã®å·®å¥å
æ°å€ã®Webãšã³ãžãã¢ã®äžããæããåºãããã«ã¯ãåã«æè¡ã¹ãã«ãçŸ åããã ãã§ãªããèªèº«ã®åæ§ã匷ã¿ãéç«ããã工倫ãå¿ èŠã§ããç¹ã«æ±åå°åã§ã®è»¢è·ãèããå Žåãéœåžéšãšã¯ç°ãªãèŠç¹ã§ã®å·®å¥åãæ±ããããŸããå°åå¯çåã® tohoku-dev.jp ã®èªè ã«ãšã£ãŠããã®ã»ã¯ã·ã§ã³ã¯ç¹ã«éèŠã§ãã
ãããžã§ã¯ãã®ãç©èªããèªãïŒéçºããã»ã¹ãšèª²é¡è§£æ±º
æ¡çšæ åœè ã¯ã宿ããã¢ããªã±ãŒã·ã§ã³ã ãã§ãªãããã®éçºéçšã§ããªããäœãèããã©ã®ããã«èª²é¡ãä¹ãè¶ããããç¥ããããšæã£ãŠããŸãããããžã§ã¯ãã®ãç©èªããèªãããšã§ãããªãã®æèããã»ã¹ãšåé¡è§£æ±ºèœåãå ·äœçã«ç€ºããŸãããã
課é¡ã®èšå®ãšè§£æ±ºçïŒ ãããžã§ã¯ããéå§ããã«è³ã£ãèæ¯ã«ãã課é¡ã¯äœã ã£ãã®ãããããŠãã®èª²é¡ã解決ããããã«ã©ã®ãããªã¢ãããŒããåã£ãã®ããæç¢ºã«èšè¿°ããŸããããªããã®æè¡ãéžãã ã®ãïŒããã©ã®ãããªèšèšææ³ã§èšãã ã®ãïŒããšãã£ãåãã«çããããããã«æºåããŸãã
éçºããã»ã¹ã®å¯èŠåïŒ ã¢ã€ãã¢åºããèŠä»¶å®çŸ©ãèšèšãå®è£ ããã¹ãããããã€ãæ¹åãšããäžé£ã®ããã»ã¹ãå ·äœçã«èª¬æããŸããGitHubã®ã³ãããå±¥æŽããã«ãªã¯ãšã¹ããã³ãŒãã¬ãã¥ãŒã®èšé²ãFigmaãªã©ã®ãã¶ã€ã³ããŒã«ã§ã®ãããã¿ã€ããTrelloãJiraã§ã®ã¿ã¹ã¯ç®¡çç¶æ³ãªã©ã瀺ãããšã§ãéçºéçšã®éææ§ãé«ããŸãã
å°é£ãšåŠã³ïŒ éçºäžã«çŽé¢ããæè¡çãªèª²é¡ããããŒã éçºã§ã®ã³ãã¥ãã±ãŒã·ã§ã³äžã®åé¡ç¹ãªã©ãæ£çŽã«èšè¿°ãããããã©ã®ããã«è§£æ±ºããããããããäœãåŠãã ããå ·äœçã«ç€ºããŸãã倱æããåŠã³ãæé·ããå§¿å¢ã¯ãæ¡çšæ åœè ã«ãšã£ãŠéåžžã«é åçãªèŠçŽ ã§ãã
ææãšåœ±é¿ïŒ ãããžã§ã¯ãã宿ããåŸãã©ã®ãããªææãåŸãããã®ãããŠãŒã¶ãŒãããžãã¹ã«ã©ã®ãããªåœ±é¿ãäžããã®ããå®éçã«ç€ºããŸããäŸãã°ããåŠçé床ããã%åäžãããããŠãŒã¶ãŒç»é²æ°ãããåã«ãªã£ãããšãã£ãå ·äœçãªæ°å€ã¯èª¬åŸåããããŸãã
ä»åŸã®å±æïŒ ãããžã§ã¯ããããç¶ç¶ããããšããããã©ã®ãããªæ¹åãæ©èœè¿œå ãèããŠããããèšè¿°ããŸããããã¯ãããªãã®æé·ææ¬²ãšå°æ¥çãªããžã§ã³ã瀺ããã®ã§ãã
å°åã³ãã¥ããã£æŽ»åã®è²¢ç®ãã¢ããŒã«ãã
tohoku-dev.jpã®ãŠãŒã¶ãŒã«ãšã£ãŠãå°åã³ãã¥ããã£ãžã®åå ã¯åãªã亀æµã®å Žä»¥äžã®äŸ¡å€ãæã¡ãŸããWebãšã³ãžãã¢ãšããŠã®ã¹ãã«ã¢ããããããã¯ãŒãã³ã°ããããŠå°åãžã®è²¢ç®ææ¬²ã瀺ã匷åãªææ®µãšãªããŸãããããããŒããã©ãªãªã§å ·äœçã«ã¢ããŒã«ããããšã¯ãå°æ¹äŒæ¥ãžã®è»¢è·ã«ãããŠéåžžã«æå©ã«åããŸãã
å匷äŒã§ã®çºè¡šçµéšïŒ å°åã®å匷äŒãããŒãã¢ããã§LT (Lightning Talk) ãçºè¡šãè¡ã£ãçµéšãããã°ããã®å 容ïŒã¹ã©ã€ããçºè¡šåç»ã®ãªã³ã¯ïŒãããŒããã©ãªãªã«æ²èŒããŸããããã¯ãæè¡çãªç¥èŠãä»è ã«äŒããèœåãšãã³ãã¥ããã£ãžã®è²¢ç®ææ¬²ã瀺ããŸãã
ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããžã®è²¢ç®ïŒ å°åã«é¢é£ãããªãŒãã³ãœãŒã¹ãããžã§ã¯ãããèªèº«ãé¢å¿ãæã€OSSãžã®è²¢ç®ïŒãã°ä¿®æ£ãæ©èœè¿œå ãããã¥ã¡ã³ãæ¹åãªã©ïŒã¯ãæè¡åãšå調æ§ã瀺ã匷åãªèšŒæ ã§ããGitHubã®æŽ»åå±¥æŽããªã³ã¯ããŸãããã
ã€ãã³ãéå¶ãžã®åå ïŒ tohoku-dev.jpãäž»å¬ããããã«ãœã³ãã¯ãŒã¯ã·ã§ããã®éå¶åŽãšããŠåå ããçµéšãããã°ããã®åœ¹å²ãè²¢ç®å 容ãèšè¿°ããŸããäŒç»åãå®è¡åããããŠã³ãã¥ããã£ãæ¯ããå§¿å¢ãã¢ããŒã«ã§ããŸãã
æè¡ããã°ãèšäºã®å·çïŒ èªèº«ã®åŠãã ããšãæè¡çãªç¥èŠãããã°èšäºãšããŠçºä¿¡ããŠããå Žåããã®ãªã³ã¯ãæ²èŒããŸããããã¯ãèªå·±åŠç¿èœåãšæ å ±çºä¿¡èœåã瀺ãã ãã§ãªããèªèº«ã®å°éæ§ãæ·±ãæãäžããŠãã蚌æ ã§ããtohoku-dev.jpã®ããã°ãžã®å¯çš¿çµéšãããã°ããµã€ããžã®è²¢ç®ææ¬²ã瀺ããŸãã
ãªã³ã©ã€ã³ã§ã®ããŒãœãã«ãã©ã³ãã£ã³ã°æŠç¥
ããŒããã©ãªãªãµã€ãèªäœããããªãã®æè¡åãšãã¶ã€ã³ã»ã³ã¹ã瀺ãéèŠãªããŒã«ã§ããèªèº«ã®å°éæ§ãåæ§ãåé¢ã«åºããäžè²«æ§ã®ãããªã³ã©ã€ã³ãã¬ãŒã³ã¹ãæ§ç¯ããŸãããã
ãªãªãžãã«ã®ããŒããã©ãªãªãµã€ãæ§ç¯ïŒ ãã³ãã¬ãŒãã䜿ãã®ã§ã¯ãªããèªèº«ã§ãŒãããããŒããã©ãªãªãµã€ããæ§ç¯ããããšã§ãããã³ããšã³ãã®ã¹ãã«ïŒHTML, CSS, JavaScript, ãã¬ãŒã ã¯ãŒã¯ïŒãçŽæ¥çã«ã¢ããŒã«ã§ããŸãããã¶ã€ã³ãã¬ã¹ãã³ã·ã察å¿ãããã©ãŒãã³ã¹æé©åãªã©ããµã€ãèªäœãããªãã®äœåãšãªããŸãã
GitHubãããã£ãŒã«ã®å å®ïŒ ã¢ã¯ãã£ããªã³ãããå±¥æŽãã¹ã¿ãŒãä»ãããªããžããªãREADME.mdã®å å®ãªã©ãGitHubãããã£ãŒã«ã¯ããªãã®éçºè ãšããŠã®æŽ»åãç©èªããŸãããã³çããããªããžããªã«ã¯ãæãèŠãŠã»ãããããžã§ã¯ããéžã³ãŸãããã
SNSã§ã®æ å ±çºä¿¡ïŒ TwitterãQiitaãZennãªã©ã®æè¡ç³»SNSã§ãæ¥ã ã®åŠç¿ãæè¡çãªç¥èŠãçºä¿¡ããŸããããã¯ãããªãã®åŠç¿ææ¬²ãšæ å ±åéèœåã瀺ãã ãã§ãªããåãåéã®ãšã³ãžãã¢ãšã®äº€æµã®ãã£ããã«ããªããŸããç¹ã«å°æ¹ã§ã¯ããªã³ã©ã€ã³ã§ã®ã€ãªããã貎éãªæ å ±æºãšãªããŸãã
LinkedInã§ã®ãããã§ãã·ã§ãã«ãªæ å ±æäŸïŒ LinkedInãããã£ãŒã«ãå å®ãããè·åçµæŽãã¹ãã«ãæšèŠæãªã©ãæ²èŒããŸããä»ã®éçºè ãšã®ã€ãªãããåºãããã£ãªã¢ã®æ©äŒãå¢ããããã®éèŠãªãã©ãããã©ãŒã ã§ããèªèº«ã®ããŒããã©ãªãªãµã€ããžã®ãªã³ã¯ãå¿ããã«èšå®ããŸãããã
ããŒããã©ãªãªå®æåŸã®æŽ»çšãšè»¢è·æŽ»åã®ã¹ããã
çŽ æŽãããããŒããã©ãªãªã宿ããŠããããã ãã§è»¢è·ãæåããããã§ã¯ãããŸãããããŒããã©ãªãªãæå€§éã«æŽ»çšãã广çãªè»¢è·æŽ»åãè¡ãããã®æŠç¥ãå¿ èŠã§ããããã§ã¯ãããŒããã©ãªãªãããã«ãã©ãã·ã¥ã¢ããããæ¹æ³ãšãå®éã®è»¢è·ããã»ã¹ã§ã®æŽ»çšè¡ã解説ããŸããç¹ã«ãæ±åãšãªã¢ã§ã®è»¢è·æŽ»åã«ãããŠã¯ãå°åã®ãªãœãŒã¹ãæå€§éã«æŽ»çšããããšãæåãžã®éµãšãªããŸãã
ããŒããã©ãªãªã®ã¬ãã¥ãŒãšæ¹å
èªèº«ã®èŠç¹ã ãã§ã¯æ°ã¥ããªãæ¹åç¹ãå€ããããŸãã客芳çãªãã£ãŒãããã¯ãåŸãŠãããŒããã©ãªãªãç¶ç¶çã«æ¹åããŠãããŸãããã
ã¡ã³ã¿ãŒãçµéšè ããã®ãã£ãŒãããã¯ïŒ çµéšè±å¯ãªWebãšã³ãžãã¢ãããã£ãªã¢ã¢ããã€ã¶ãŒã«ããŒããã©ãªãªãèŠãŠããããççŽãªæèŠãããããŸããããç¹ã«ãæ¡çšæ åœè ã®èŠç¹ããã©ã®ãããªç¹ãè©äŸ¡ãããã©ã®ãããªç¹ãæ¹åã®äœå°ããããã質åããŸããtohoku-dev.jpã®ã³ãã¥ããã£ã€ãã³ããªã©ã§ãçµéšè ãšç¹ããæ©äŒãç©æ¥µçã«å©çšããŸãããã
å人ãååããã®æèŠïŒ éãšã³ãžãã¢ã®å人ã«ãèŠãŠããããæè¡çãªç¥èããªã人ã«ãåãããããé åãäŒãããã確èªããŸãããã¬ãŒã³ããŒã·ã§ã³ã®åããããããUI/UXã®äœ¿ãããããªã©ã倿§ãªèŠç¹ããã®ãã£ãŒãããã¯ã¯è²Žéã§ãã
宿çãªæŽæ°ãšæ¹åïŒ ããŒããã©ãªãªã¯äžåºŠäœã£ããçµããã§ã¯ãããŸãããæ°ããæè¡ãåŠãã ããæ°ãããããžã§ã¯ãã«åãçµãã ããããã³ã«ãå å®¹ãæŽæ°ã»æ¹åããŠãããŸããããããã¯ãããªãã®ç¶ç¶çãªåŠç¿ææ¬²ãšæé·ã瀺ããã®ã§ãã
Google Analyticsãªã©ã§ã®å¹ææž¬å®ïŒ ããŒããã©ãªãªãµã€ãã«ã¢ã¯ã»ã¹è§£æããŒã«ãå°å ¥ããã©ã®ãããžã§ã¯ããããèŠãããŠããããã©ãã§é¢è±ããŠããããªã©ãåæããŸããããã«ããã蚪åè ã®è¡åãçè§£ãããµã€ãã®æ§æãã³ã³ãã³ããæé©åã§ããŸãã
广çãªå¿åæŠç¥ãšé¢æ¥ã§ã®ã¢ããŒã«
ããŒããã©ãªãªãæå€§éã«æŽ»çšããæžé¡éžèçªç Žãã颿¥ã§ã®æåãžãšç¹ããããã®å ·äœçãªæŠç¥ãç«ãŠãŸãããã
å±¥æŽæžã»è·åçµæŽæžãšã®é£æºïŒ å±¥æŽæžãè·åçµæŽæžã«ã¯ãããŒããã©ãªãªãžã®ãªã³ã¯ãæèšããåãããžã§ã¯ãã®æŠèŠãç°¡æœã«èšèŒããŸããæžé¡ã§ã¯æžããããªã詳现ããå®éã«åãã¢ããªã±ãŒã·ã§ã³ã®é åãããŒããã©ãªãªã§è£å®ããé¢ä¿æ§ãæèããŸãã
äŒæ¥ããšã®ã«ã¹ã¿ãã€ãºïŒ å¿åããäŒæ¥ãæ±ããã¹ãã«ãäºæ¥å 容ã«åãããŠãããŒããã©ãªãªã®èªå·±ç޹仿ããããžã§ã¯ãã®èª¬ææã調æŽããŸããäŸãã°ãæ±åã®ç¹å®ã®ç£æ¥ã«åŒ·ãäŒæ¥ã§ããã°ãé¢é£ãããããžã§ã¯ãã匷調ãããªã©ãäŒæ¥ãžã®ãã£ããæãã¢ããŒã«ããŸãã
颿¥ã§ã®ãã¬ãŒã³ããŒã·ã§ã³ïŒ 颿¥ã§ã¯ãããŒããã©ãªãªã®ãããžã§ã¯ãã«ã€ããŠãæè¡çãªè©³çްã ãã§ãªãããªããã®ãããžã§ã¯ããéžãã ã®ããéçºäžã«çŽé¢ãã課é¡ãšè§£æ±ºçãããããåŸãããåŠã³ãªã©ãèªä¿¡ãæã£ãŠèª¬æã§ããããã«æºåããŸããå®éã«ã¢ããªã±ãŒã·ã§ã³ããã¢ããæ©äŒãããã°ãç©æ¥µçã«è¡ããŸãããã
é質åã®æŽ»çšïŒ 颿¥ã®æåŸã«ãäœã質åã¯ãããŸããïŒããšèãããéã«ã¯ãäŒæ¥ã®æè¡ã¹ã¿ãã¯ãéçºäœå¶ããã£ãªã¢ãã¹ãªã©ã«ã€ããŠå ·äœçãªè³ªåãããŸããããã«ãããäŒæ¥ãžã®é¢å¿åºŠãšãèªèº«ã®ãã£ãªã¢ã«å¯Ÿããçå£ãªå§¿å¢ã瀺ããŸãã
ãããã¯ãŒãã³ã°ãšã³ãã¥ããã£æŽ»åã®ç¶ç¶
ç¹ã«å°æ¹ã§ã®è»¢è·æŽ»åã«ãããŠã人èã¯éåžžã«åŒ·åãªæŠåšãšãªããŸããtohoku-dev.jpã®ãããªå°åã³ãã¥ããã£ã掻çšããç©æ¥µçã«ãããã¯ãŒãã³ã°ãè¡ããŸãããã
å°åããã¯ã€ãã³ããžã®åå ïŒ æ±åã§éå¬ãããããã¯ã€ãã³ããå匷äŒãããã«ãœã³ã«ç©æ¥µçã«åå ããä»ã®ãšã³ãžãã¢ãäŒæ¥ã®æ¡çšæ åœè ãšäº€æµããŸãã察é¢ã§ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯ããªã³ã©ã€ã³ã§ã¯åŸãããªãä¿¡é Œé¢ä¿ãç¯ãäžã§éåžžã«éèŠã§ããtohoku-dev.jpã§ã¯ãæ±åã®ã€ãã³ãæ å ±ã宿çã«çºä¿¡ããŠããŸãã
ã³ãã¥ããã£å ã§ã®çºä¿¡ãšè²¢ç®ïŒ ã³ãã¥ããã£å ã§èªèº«ã®æè¡çãªç¥èŠãå ±æããããä»ã®ã¡ã³ããŒã®è³ªåã«çããããååããŠãããžã§ã¯ããé²ãããããããšã§ãããªãã®ååšæãé«ããŸããããã«ãããæãã¬è»¢è·ã®æ©äŒã«ã€ãªããããšããããŸãã
ãªãã¡ã©ã«æ¡çšïŒ ä¿¡é Œã§ãã人ããã®ç޹ä»ïŒãªãã¡ã©ã«æ¡çšïŒã¯ãæžé¡éžèãã¹ãããã§ããããäŒæ¥æåã«åã£ã人æãšããŠè©äŸ¡ããããããããéåžžã«æå©ã§ããã³ãã¥ããã£ãéããŠè¯å¥œãªäººéé¢ä¿ãç¯ãããšã¯ããªãã¡ã©ã«æ¡çšã®æ©äŒãå¢ããããšã«ãç¹ãããŸãã
ã«ãžã¥ã¢ã«é¢è«ã®æŽ»çšïŒ èå³ã®ããäŒæ¥ãããã°ããŸãã¯ã«ãžã¥ã¢ã«é¢è«ãç³ã蟌ãã§ã¿ãŸããããäŒæ¥ã®é°å²æ°ãå ·äœçãªæ¥åå 容ã«ã€ããŠèãããšãã§ããããŒããã©ãªãªãèŠããŠãã£ãŒãããã¯ããããæ©äŒã«ããªããŸããããã¯ãæ£åŒãªå¿ååã®æ å ±åéãšããŠéåžžã«æå¹ã§ãã
Webãšã³ãžãã¢ã®ããŒããã©ãªãªäœæã§ãããã質åãšèœãšã穎
ããŒããã©ãªãªäœæã¯ãå€ãã®Webãšã³ãžãã¢å¿æè ã«ãšã£ãŠæ©ã¿ã®çš®ã§ããããã§ã¯ãããããçåãé¥ããã¡ãªèœãšã穎ãè§£æ¶ãããã广çãªããŒããã©ãªãªäœæããµããŒãããŸãããããã®çåã解決ããããšã§ãããªãã®ããŒããã©ãªãªã¯ããã«æŽç·Žãããæ¡çšæ åœè ã®ç®ã«çãŸãããããªãã§ãããã
æªçµéšã»åå¿è ã¯ã©ããªããŒããã©ãªãªãäœãã¹ãïŒ
ããŸã å®åçµéšããªããããããŒããã©ãªãªã«æžãããšããªãããšæ©ãåå¿è ã®æ¹ãå€ãã§ããããããããæªçµéšè ã ãããããåŠç¿ææ¬²ãšåºç€åã瀺ãããŒããã©ãªãªãéèŠã§ãã
åºç€åŠç¿ã®ææã瀺ãïŒ ããã°ã©ãã³ã°ã¹ã¯ãŒã«ããªã³ã©ã€ã³åŠç¿ã§äœæããææç©ãåŠç¿äžã«äœæããå°ããªWebãµã€ããããŒã«ã§ãæ§ããŸãããéèŠãªã®ã¯ããã äœã£ãã ãã§ãªããããªãäœã£ãã®ãããäœãé£ããã£ããããã©ã解決ããããã説æã§ããããšã§ãã
ãªãªãžãã«èŠçŽ ã®è¿œå ïŒ ãã¥ãŒããªã¢ã«éãã«äœã£ããã®ã§ããããã«ç¬èªã®æ©èœè¿œå ããã¶ã€ã³å€æŽãå ããããšã§ããªãªãžããªãã£ãšå¿çšåã瀺ããŸããäŸãã°ãå°åã®ã€ãã³ãæ å ±ã衚瀺ããæ©èœã远å ããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæ¹åãããªã©ã§ãã
GitHubã®æŽ»åå±¥æŽïŒ æªçµéšè ã§ããGitHubã«æ¯æ¥ã³ãããããåŠç¿ã®é²æãå¯èŠåããããšã¯å¯èœã§ããREADME.mdãå å®ãããåŠç¿ãªãœãŒã¹ãç®æšãçŸåšã®ã¹ãã«ã¬ãã«ãèšè¿°ããŸãããã
ããã°ã§ã®åŠç¿èšé²ïŒ æ¥ã ã®åŠç¿å 容ãæè¡çãªæ°ã¥ããããã°ã«ãŸãšããããšã¯ãèªå·±åŠç¿èœåãšæ å ±çºä¿¡èœåã瀺ãè¯ãæ¹æ³ã§ããtohoku-dev.jpã®ãããªãµã€ãã§ãèªèº«ã®çµéšãå ±æããããšãæå¹ã§ãã
è€æ°ã®ãããžã§ã¯ããã©ãèŠããã¹ãïŒ
è€æ°ã®ãããžã§ã¯ããããå Žåãã©ã®ããã«æŽçãã广çã«èŠããã¹ããè¿·ãããšããããŸããå šãŠã®ãããžã§ã¯ããçŸ åããã®ã§ã¯ãªããæŠç¥çã«éžå®ããåãããããæç€ºããããšãéèŠã§ãã
代衚äœãå³éžããïŒ æãèªä¿¡ã®ãããæè¡çã«ææŠçã ã£ãããããã¯æãå®æåºŠã®é«ããããžã§ã¯ãã2ã3ç¹ã«çµãããããããŒãžã«å€§ãã衚瀺ããŸããæ®ãã®ãããžã§ã¯ãã¯ãµãããŒãžãäžèЧããŒãžã§ç޹ä»ããŸãããã
æè¡ã¹ã¿ãã¯ã®å€æ§æ§ã瀺ãïŒ ç°ãªãæè¡ã¹ã¿ãã¯ã䜿ã£ããããžã§ã¯ããããå Žåãããããããã©ã³ã¹ããèŠããããšã§ãå¹ åºãæè¡ãžã®å¯Ÿå¿åãã¢ããŒã«ã§ããŸãããã ããããããã®ãããžã§ã¯ãã§äžå®ã®å質ãä¿ã€ããšãåæã§ãã
圹å²ãšè²¢ç®åºŠãæç¢ºã«ïŒ ããŒã éçºãããžã§ã¯ãã®å Žåãèªèº«ã®å ·äœçãªåœ¹å²ãšè²¢ç®åºŠãæç¢ºã«èšè¿°ããŸããäŸãã°ããããæ©èœã®ããã¯ãšã³ãå®è£ ãæ åœããããŒã¿ããŒã¹èšèšãšAPIéçºãäž»å°ããªã©ãå ·äœçãªè¡åã瀺ããŸãã
ãã¢ãµã€ããšGitHubãžã®ãªã³ã¯ïŒ åãããžã§ã¯ãã«ã¯ãå®éã«åäœãããã¢ãµã€ãïŒããã°ïŒãšãGitHubãªããžããªãžã®ãªã³ã¯ãå¿ ãæ²èŒããŸããããã«ãããæ¡çšæ åœè ã¯ããªãã®ã³ãŒããçŽæ¥ç¢ºèªã§ããŸãã
ããŒããã©ãªãªã¯äžåºŠäœã£ããçµããã§ã¯ãªãïŒ
ããŒããã©ãªãªã¯ãäžåºŠäœæããŠå ¬éããã°çµãããšãããã®ã§ã¯ãããŸãããç¶ç¶çãªæ¹åãšææ°æ å ±ã®åæ ããããªãã®åžå ŽäŸ¡å€ãé«ããŸããæè¡ãã¬ã³ãã¯åžžã«å€åããŠãããããªãã®ã¹ãã«ãããã«åãããŠé²åããŠããã¹ãã§ãã
宿çãªã¢ããããŒãïŒ æ°ããæè¡ãç¿åŸããããæ°ãããããžã§ã¯ãã宿ãããããããã³ã«ãããŒããã©ãªãªãæŽæ°ããŸããããå€ãæ å ±ãå£ãããªã³ã¯ã¯ãããªãã®ããæèãçãããåå ãšãªããŸãã
æè¡ãã¬ã³ãã®åæ ïŒ ææ°ã®Webéçºãã¬ã³ãïŒäŸïŒWebAssembly, Edge Computing, Serverless FunctionsïŒãåŠã³ãå¯èœã§ããã°ããŒããã©ãªãªãããžã§ã¯ãã«åãå ¥ããããšã§ãããªãã®åŠç¿ææ¬²ãšå 鲿§ã瀺ããŸãã
ããã©ãŒãã³ã¹ãšã»ãã¥ãªãã£ã®æ¹åïŒ ããŒããã©ãªãªãµã€ãèªäœã®ããã©ãŒãã³ã¹ïŒããŒãžã®èªã¿èŸŒã¿é床ãªã©ïŒãã»ãã¥ãªãã£ïŒHTTPSåãè匱æ§å¯ŸçïŒã宿çã«èŠçŽããæ¹åããŸããããããã¯ãããªãããŠãŒã¶ãŒäœéšãšã·ã¹ãã ã®ä¿¡é Œæ§ãéèŠãããšã³ãžãã¢ã§ããããšã瀺ããŸãã
ãã£ãŒãããã¯ã®æŽ»çšïŒ å¿åå ã®äŒæ¥ã颿¥å®ããåŸããããã£ãŒãããã¯ãçæ¯ã«åãæ¢ããããŒããã©ãªãªã®æ¹åã«æŽ»ãããŸããããããã«ãããæ¬¡ã«ç¹ãããã£ã³ã¹ãæå€§åã§ããŸãã
ãŸãšãïŒæ±åã§èŒãWebãšã³ãžãã¢ã«ãªãããã«
Webãšã³ãžãã¢ãšããŠã®è»¢è·æåã¯ãåã«æè¡çãªã¹ãã«ãæã€ã ãã§ãªããããã广çã«ã¢ããŒã«ããããŒããã©ãªãªãšãæŠç¥çãªè»¢è·æŽ»åã«ããã£ãŠããŸããç¹ã«æ±åå°åã§ã¯ãå°åç¹æã®ããŒãºãçè§£ããã³ãã¥ããã£æŽ»åãéããŠåŸãå®è·µã¹ãã«ãå ·äœçã«ç€ºããæ±åå°åç¹ååããŒããã©ãªãªããéåžžã«æå¹ã§ãããã®ã¬ã€ãã§è§£èª¬ããã¹ãã«èŠä»¶ãããŒããã©ãªãªã®äŒç»ã»äœææ¹æ³ããããŠå·®å¥åæŠç¥ãå®è·µããããšã§ãããªãã¯ç«¶äºã®æ¿ããITæ¥çã§ç¬èªã®ãã£ãªã¢ãã¹ãåãéããæ±åã®å°ã§èŒãWebãšã³ãžãã¢ã«ãªãããšãã§ããã§ãããã
tohoku-dev.jpã¯ãæ±åã®ãšã³ãžãã¢ãåŠã³ã亀æµããæé·ã§ããå ŽãæäŸããŠããŸããå°åã³ãã¥ããã£ã®ã€ãã³ãã«ç©æ¥µçã«åå ããä»ã®éçºè ãšã®ãããã¯ãŒã¯ãç¯ããææ°ã®æè¡ãã¬ã³ããåŠã³ç¶ããããšããããªãã®ãã£ãªã¢ã次ã®ã¬ãã«ãžãšæŒãäžããã§ããããããªãã®æ ç±ãšåªåããæ±åã®ITæ¥çãããã«æŽ»æ§åãããåååãšãªãããšãæåŸ ããŠããŸããæªæ¥ã®Webãšã³ãžãã¢ãšããŠã®æåãå¿ããå¿æŽããŠããŸãã
ãããã質å
Webãšã³ãžãã¢ã®ããŒããã©ãªãªã«æ²èŒãã¹ãæäœéã®ãããžã§ã¯ãæ°ã¯ããã€ã§ããïŒ
Webãšã³ãžãã¢ã®ããŒããã©ãªãªã«ã¯ãæäœã§ã2ã3ã€ã®è³ªã®é«ããããžã§ã¯ããæ²èŒããããšãæšå¥šãããŸããéããã質ãéèŠã§ãããããããã®ãããžã§ã¯ãã§æè¡çãªæ·±ããéçºããã»ã¹ãå ·äœçã«èª¬æã§ããããšãè©äŸ¡ãããŸãã
æªçµéšããWebãšã³ãžãã¢ãç®æãå ŽåãããŒããã©ãªãªã«ã¯ã©ã®ãããªå 容ãå«ããã¹ãã§ããïŒ
æªçµéšè ã®ããŒããã©ãªãªã§ã¯ãåºç€åŠç¿ã®ææïŒããã°ã©ãã³ã°ã¹ã¯ãŒã«ã®èª²é¡ãèªäœã®ã·ã³ãã«ãªWebãµã€ãïŒãç¬èªã®æ©èœè¿œå ããã¶ã€ã³å€æŽãå ãããããžã§ã¯ããGitHubã§ã®åŠç¿å±¥æŽã掻åãæè¡ããã°ã§ã®åŠç¿èšé²ãªã©ãå«ãããšè¯ãã§ããããåŠç¿ææ¬²ãšåé¡è§£æ±ºãžã®å§¿å¢ã瀺ãããšãéèŠã§ãã
ããŒããã©ãªãªã广çã«èŠããããã®éèŠãªãã€ã³ãã¯äœã§ããïŒ
ããŒããã©ãªãªã广çã«èŠããããã«ã¯ããããžã§ã¯ãã®ãç©èªãïŒèª²é¡ã解決çãåŠã³ïŒãèªãããšãå®éã«åäœãããã¢ãµã€ããã¹ã¯ãªãŒã³ã·ã§ãããå«ããããšãGitHubãªããžããªã®ã³ãŒãå質ããããŠèªèº«ã®åœ¹å²ãšè²¢ç®åºŠãæç¢ºã«ããããšãéèŠã§ãã
æ±åã®äŒæ¥ã«è»¢è·ããå ŽåãããŒããã©ãªãªã§ç¹ã«ã¢ããŒã«ãã¹ãç¹ã¯äœã§ããïŒ
æ±åã®äŒæ¥ã§ã¯ãå°å課é¡è§£æ±ºãžã®èå³ãææ¬²ãå¹ åºãæè¡ã¹ã¿ãã¯ãžã®å¯Ÿå¿åããããŠtohoku-dev.jpã®ãããªå°åã³ãã¥ããã£æŽ»åãžã®è²¢ç®ãç¹ã«è©äŸ¡ãããŸããå°åã«é¢é£ãããããžã§ã¯ãããã³ãã¥ããã£ã§ã®çºè¡šçµéšãªã©ãç©æ¥µçã«ã¢ããŒã«ããŸãããã
ããŒããã©ãªãªã¯äžåºŠäœã£ããçµããã§ã¯ãªããç¶ç¶çãªæŽæ°ãå¿ èŠã§ããïŒ
ã¯ããããŒããã©ãªãªã¯äžåºŠäœã£ããçµããã§ã¯ãªããç¶ç¶çãªæŽæ°ãå¿ èŠã§ããæ°ããæè¡ã®ç¿åŸããããžã§ã¯ãã®è¿œå ãå€ãæ å ±ã®ä¿®æ£ããããŠæè¡ãã¬ã³ãã®åæ ãè¡ãããšã§ãããªãã®ææ°ã®ã¹ãã«ãšåŠç¿ææ¬²ã瀺ãããšãã§ããŸãã



