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

æ ªåŒäŒç€ŸLayerX
ãã¯ã©ã¯äºæ¥ ãœãããŠã§ã¢ãšã³ãžãã¢ãæŸæ¬ é§¿æ°
æåã«ç»å£ããã®ã¯ãLayerXã§æ¯åºç®¡çãµãŒãã¹ããã¯ã©ã¯ãã·ãªãŒãºã®ããã¯ã©ã¯ããžãã¹ã«ãŒããããã¯ã©ã¯é»å垳簿ä¿åãã«ãããŠãããã¯ãšã³ãããããã³ããšã³ããŸã§å¹ åºãæ åœããããã¯ãªãŒãã®æŸæ¬æ°ã
ãã¯ã©ã¯äºæ¥ã§ã¯ããå§åçã«äœ¿ãããããããã¯ããå±ããã¯ã¯ã¯ã¯ããåãæ¹ããããšã®ããžã§ã³ãæ²ããæäœæ¥ãå€ããªããã¡ãªè«æ±æžåŠçãçµè²»ç²Ÿç®ãçšè°ç³è«ãªã©ã®æ¯åºç®¡çæ¥åã®å¹çã»ããžã¿ã«åããäžæ°é貫ã§ãµããŒãããŠããã

ã¹ããŒãéçºãšå®å®çšŒåãå®çŸããããã«ãæŸæ¬æ°ã¯äž»ã«ä»¥äž3ã€ã®ç¹ãæèããªãããããã¯ãã®éçºãé²ããã
âçééçºÃå®å®çšŒåãå®çŸããããã«æèããããš
- ãã¡ã€ã³ããžãã¯ã®å®è£ ãªã©ãæ¬è³ªçãªéšåã«å®è£ ããæéãè²»ãããããš
- çééçºãããã®ã§ããã°ãèµ·ãã«ãã
- éçºã«æºããã¡ã³ããŒãèªç¶ãšå¹çãããéçºã§ããããš
ãLayerXã¯ããã¯ãšã³ããåŸæãªãšã³ãžãã¢ãå€ãã£ããããç§ã¯ããã³ããšã³ããäžå¿ã«éçºã«åãçµã¿ãŸããããããã¯ãéå®ã§ã¯ãªããä»ã®ãããã¯ãã«ãã¬ãã¬ããžãå¹ãæ¹åãæèããŸãããïŒæŸæ¬æ°ïŒ
æŸæ¬æ°ã¯å 3ã€ã®æèã«æºããŠã倧ãã3ã€ã®æ¹é©ãè¡ã£ãã1ã€ç®ã¯ããã¡ã€ã³ããžãã¯ã®å®è£ ãªã©ãæ¬è³ªçãªéšåã®å®è£ ããæéãå¢ããããšã ã
å ·äœçã«ã¯ãããŸã§å®è£ ãããŠããªãã£ãã³ãŒãçæã®ä»çµã¿ãOpenAPI generatorãtypescript-vue-apolloãå°å ¥ãéçºèšèªã¯ããã¯ãšã³ããGoãããã³ããšã³ãã¯Vue.jsãNuxt.jsãçšããã
ã³ãŒãéãå°ãªãããããã«ããããŸã§Options APIã§æžãããšãå€ãã£ãããCompostion APIãå°å ¥ããã®çµæãã³ãŒããææ¡ããããããã¹ããæžããããç¶æ ãæ§ç¯ã§ããã

Vueã§æèããã«éçºãé²ãããšãtemplateã®åãçããpropsæŒããªã©ãèµ·ãããããééã£ãŠããã®ã«ãã«ããããŠããŸããããªããšãããã
ãã®ãããªãã©ãã«ããã°ãé²ã察çãšããŠãVue.jsã®éçºã«ãããŠæ§ã ãªãµããŒããæ ãæ¡åŒµæ©èœãVeturãæ¡çšãtemplateã®åããã§ãã¯ããããšã§ãpropsã®æŒããåã®éããé²ãããã«ããã
ããã«ã¯ãããŒã¿ã®ãã£ãã·ã¥ç®çã§å ¥ããŠããVuexããå¿ èŠããªãç®æã¯swrvã«çœ®ãæããããã®çµæãå°ãªãã³ãŒãéã§ãããŒã¿ååŸã«ãããç¶æ 管çãåååŸããã£ãã·ã¥ã容æã«ãªããããåå®å šã«ç°¡åã«å®è£ ã§ããæ¹åã«ã·ããããŠãã£ãã

ç¶ããŠãæçްããŒã¿ã峿飿ºãããªã©ãã·ãªãŒãºçޝèš3000瀟以äžãå°å ¥ããŠããçµçåŠçæ¥åãå¹çåããæ¬¡äžä»£æ³äººã«ãŒãããã¯ã©ã¯ããžãã¹ã«ãŒãã«ãããåãçµã¿ã玹ä»ãããã
ãã¯ã©ã¯ããžãã¹ã«ãŒãã¯ããµãŒãã¹ç»é¢ã»äžä¿¡ã»å ¥éåŠçãšãã£ã瀟å ã®ç®¡çæ¥åãè¡ãç»é¢ãšã2ã€ã®ããã³ãã¢ããªã±ãŒã·ã§ã³ããæ§æãããŠãããä»åããã®2ã€ã®ããã³ããšã³ããå·æ°ããããšãšãªã£ãã

æè¡ã¹ã¿ãã¯ã¯äžèšã¹ã©ã€ãã®ãããªæ§æãšããããããŸã§ã®éçºã¯Vue.jsãäžå¿ã§ãã£ããReactã®æ¡çšã決ããçç±ãã以äžã®ããã«èªã£ãŠããã
ããšã³ãžãã¢ãæ £ããŠãããšããç¹ã§ã¯ãVueã«åªäœæ§ããããŸãããããããæ¢åãããã¯ãã§å©çšããŠããOSSã®BootstrapVue.jsãVue3é察å¿ã ã£ããããTypeScriptã®æ©æµãåãããããæ¢åã®ãªãœãŒã¹ãåå©çšããããšãé£ããã£ãããã§ããïŒæŸæ¬æ°ïŒ
æŸæ¬æ°ã¯Reactã«ç§»è¡ããŠãçç£æ§ãåºããããã«ãæ§ã ãªå·¥å€«ãåãçµã¿ãè¡ã£ããäŸãã°ãLayerXã§ã¯ãã¶ã€ããŒãå®è£ ãŸã§è¡ãã±ãŒã¹ãå€ãããããã¶ã€ããŒãšäžç·ã«ãã¢ããã宿œãVue.jsãšã®å·®åã説æããªãããå°ããéçºæ¡ä»¶ã«åãçµãã§ãã£ãã
çµæãšããŠçç£æ§ãèœãšãããšãªããã¹ã±ãžã¥ãŒã«éãã«éçºã¯é²ãã ããã®ä»ã«æ¡çšããæè¡ã«ã€ããŠããããããçç±ã説æããŠãã£ãã


ç¹ã«Monorepoã®å°å ¥ã«ãããŠã¯ããéçºã¡ã³ããŒãèªç¶ãšå¹çããéçºã§ããäœå¶ã®åºç€ã¥ãããã«è²¢ç®ã§ãããšããã®ææãæ¯ãè¿ã£ãããããŠæ¬¡ã®ããã«è¿°ã¹ãã»ãã·ã§ã³ããŸãšããã
ãæ¢åã®ã¢ãŒããã¯ãã£ã絶察èŠããã®ã§ã¯ãªããç©æ¥µçã«æ¹åããŠããããšããã®çµæåŸãææãä»ã®ããŒã ããããã¯ãã«éå ããŠããããšã§ãçµç¹å šäœã®ããŒã¹ã®åºäžãã«ã€ãªãã£ãŠãããšèããŠããŸããïŒæŸæ¬æ°ïŒ

ããŒã¿çµç¹ã®æšªæãããã¯ãã§ãã¹ããŒãéçºãšå®å®éçšã®äž¡ç«ã«åãçµã

æ ªåŒäŒç€Ÿãªã¯ã«ãŒããããŒã¿æšé²å®€
ããŒã¿ãšã³ãžãã¢ãªã³ã°éšãé¶Žè°· èª ææ°
ç¶ããŠç»å£ãããªã¯ã«ãŒãã®é¶Žè°·æ°ã¯ããªã¯ã«ãŒãã®äŒæ¥ãšäººïŒB to CïŒãäŒæ¥ãšäŒæ¥ïŒB to BïŒã人ãšäººïŒC to CïŒãçµã³ã€ããããšã§å¯ŸäŸ¡ãåŸããããã³ã°ãã©ãããã©ãŒã ãæäŸããããžãã¹ã¢ãã«ã説æãããããªãŒããŒããŒããWebãžãšãã©ãããã©ãŒã ã®å Žã¯å€ããã€ã€ããããããžãã¹ã®æ ¹å¹¹ã¯å€ãã£ãŠããªãã

é¶Žè°·æ°ãæå±ããããŒã¿æšé²å®€ã¯ãäºæ¥é åããšã«åçš®ããŒã¿æœçãæšé²ããæŽ»åãè¡ã瞊ã®çµç¹ã§ããDSUïŒããŒã¿ãœãªã¥ãŒã·ã§ã³ãŠãããïŒãååšãããããã«ããŒã¿ãµã€ãšã³ã¹ãããŒã¿ãšã³ãžãã¢ãªã³ã°ãæ±ãéšçœ²ãªã©ãå°éæ§åŒ·åãè¡ã暪ã®çµç¹ã亀差ããããããªãã¯ã¹åãšãªã£ãŠããã®ãç¹åŸŽã ã
ããŒã¿æšé²å®€ã§ã¯ãè€æ°ã®äºæ¥é åã§å©çšå¯èœãªå ±éæ©èœãDPUïŒããŒã¿ãããã¯ããŠãããïŒã暪æçã«ãããã¯ãåããããšã§ãäºæ¥é åã®éçºã®å¹çåãé«éåãåçŽç«ã¡äžããå®çŸããŠããã

ãªã¯ã«ãŒããå®éã«æäŸããŠããæšªæãããã¯ãã玹ä»ãããããããåŠçãå¹ççã«éçºã»éçšããããã®ãããã¯ãŒã¯ãããŒæ©èœãæãããCroisãã§ãããéçºå¹çåã®ããè€æ°äºæ¥é åã§ã®å©çšãæ³å®ãããæ©èœãå ±éã¢ãžã¥ãŒã«ãšããŠåããŠããã®ãç¹åŸŽã ã
ä»åã®ã»ãã·ã§ã³ã§ã¯ããã®Croisãäžåç£æ å ±ãµã€ããSUUMOãã®ã¬ã³ã¡ã³ãã·ã¹ãã ã«å°å ¥ããäºäŸã玹ä»ããã
ãSUUMOãã§ã¯ããšããšå 補éçºããã·ã¹ãã ã䜿çšããŠããããæè¡çè² åµãæ±ããŠããããããè§£æ¶ããããã«ãåœåã¯æ¢åã·ã¹ãã ã®ãšã³ãã³ã¹éçºãAWSã®ãµãŒãã¹ã®å©çšãæ€èšããããæçµçã«Croisã®å°å ¥ã決ããããã®éã«èª²é¡ãšãªã£ãã®ããææ°ã®ç©ä»¶æ å ±ãæ¥ã å®å®çã«æŽæ°ãããå§ãã®ç©ä»¶æ å ±ããŠãŒã¶ãŒã«å±ããå®å®éçšé¢ã ã

Croisã¯ãã«ãããã³ãæ¹åŒã§ããããšããã峿¥ã®å©çšãäžæ¬ã§ã®ã¢ããããŒããã§ãããããéçšãå¹ççã§ãããšããã¡ãªããããã£ããäžæ¹ãä»ã®é åã§ããŒã¹ãçãªè² è·ããããéã«ãå¥ã®é åã圱é¿ãåããå¯èœæ§ããã£ããšãããé¶Žè°·æ°ã¯æ¬¡ã®ããã«èªãã
ããããã¯ãã®å éšãã°ãå©çšè ããã¯åç §ã§ããªã仿§ã®ãããé害çºçæã®åå ç©¶æã«æéãèŠãããªã©ãå®å®éçšã«ãããæžå¿µãã©ãè§£æ¶ãããã課é¡ã§ãããïŒé¶Žè°·æ°ïŒ

ããã§æã¡æãšããŠåºãããã®ããåé åã®æ åœè ãã»ã«ãã§æ§ç¯ã»éçšããã»ã«ããã¹ãã£ã³ã°æ¹åŒã®å°å ¥ã ãã»ã«ããã¹ãã£ã³ã°æ¹åŒã®ãã€ã³ãã¯å€§ãã2ã€ããã1ã€ç®ã¯ãã»ã«ãæ¹åŒã«ããèªåŸçãªæ§ç¯ã»éçšãå®çŸããç¹ã ã
ã€ã³ãã©ç°å¢æ§ç¯æé ãæ±çšåããããã°ã©ã ããTerraformã䜿ã£ãŠæŽåãã瀟å ã®Webäžã«å ¬éãããå ããŠãä»»æã®ããŒãžã§ã³ã«èªåãã€ç¡åæ¢ã§ã¢ããããŒãã§ãããããã€ããŒã«ãéçºããã
2ã€ç®ã¯ãã¬ããžã®ç¿åŸã ãé åã®Croisæ åœè ãæšªæçµç¹ã®éçºæ¥åãå Œåããããšã§ãCroisã®ãã¬ããžãå ±æã§ããæ åœé åã«æã¡åž°ãäœå¶ãšããã
é¶Žè°·æ°ã¯æ¬¡ã®ããã«å®å®éçšã®ææãèªã£ãŠããã
ãç°å¢æ§ç¯æéãéçšå·¥æ°ãšããé¢ã§ã¯ã以åãšæ¯ã¹ãŠå€å°å¢ããŸããããããå šäœã®ã¡ãªããã»ãã¡ãªããã§èŠãã°ã以åãšæ¯ã¹å®å®éçšãå®çŸã§ããŠãããšãæå¿ããæããŠããŸããïŒé¶Žè°·æ°ïŒ
é«éãã€å®å®çã«ã»ã«ããã¹ãã£ã³ã°æ¹åŒãå®çŸãã工倫

æ ªåŒäŒç€Ÿãªã¯ã«ãŒããããŒã¿æšé²å®€
ããŒã¿ãããã¯ããããžã¡ã³ã1éšãå®é çšç« æ°
ç¶ããŠç»å£ããå®éæ°ã¯ãã»ã«ããã¹ãã£ã³ã°æ¹åŒãé²ããäžã§ã®å·¥å€«ãå®éã®ã¢ãŒããã¯ãã£ããã«ãããã³ãæ¹åŒãšã®åæéçšã«ãããèŠåŽãåŠã³ã«ã€ããŠç޹ä»ããã
ã»ã«ããã¹ãã£ã³ã°æ¹åŒã¯ãAWSäžã®æ§ã ãªãããŒãžããµãŒãã¹ãå©çšããŠæ§ç¯ãããããã®ããé åæ åœè åŽã®AWSç°å¢ã«ã察å¿ããå¿ èŠããã£ããäŸãã°ãç°å¢ç¬èªéšåã®ç¹å®ãã©ã¡ãŒã¿åã ãå®éæ°ã¯å¯Ÿå¿ã®èŠåŽã次ã®ããã«èªãã
ãããšããšé åæ åœè åŽã®å¥ç°å¢ã«æ§ç¯ããããšãæ³å®ããŠããªãã£ãããããµãŒãã¹ã®ãã¡ã€ã³åãªã©ãåºå®ã§æžãããŠããã³ãŒããããã€ããããŸãããããã§ãç°å¢ããšã«ç°ãªãéšåãç¹å®ãã倿°åãè¡ããŸãããïŒå®éæ°ïŒ
é åæ åœè åŽã®ç°å¢ã§å¿ èŠã®ãªããªãœãŒã¹ãæ©èœã®å·®å管çã«ã課é¡ããã£ãã察çãšããŠã¯ãåç°å¢ã«èšå®ãã¡ã€ã«ãçšæããããã€æã«ãã¡ã€ã«ã«ãããã©ã°ãå©çšãããã«ãããã³ãç°å¢ãšã»ã«ããã¹ãã£ã³ã°ç°å¢ã§äœæãããªãœãŒã¹ãã¢ãããã¯ã«åå²ããããããããã®åãçµã¿ã¯åŸã 倱æã«ã€ãªãã£ãã詳现ã¯åŸã»ã©æ¹ããŠè§Šããã
ç°å¢ã®åé¢ã»ãã©ã¡ãŒã¿åã«ãããŠã¯ãã€ã³ãã©æ§ç¯ã§å©çšããŠããTerraformãäŸã«ç޹ä»ããããããã€ãè¡ãéã¯ãåãªããžããªã®CodeBuildãéå§ããããããã€çšã®S3ãã±ããã®èšå®ãã¡ã€ã«ãååŸããã

ãããã€ã®å¯Ÿè±¡ç°å¢ããã«ãããã³ããªã®ãã»ã«ããã¹ãã£ã³ã°ãªã®ããèå¥ããåŸè ã®å Žåã¯ãã«ãããã³ãç°å¢ã®ã¿ã§å©çšãããªãœãŒã¹ãã¡ã€ã«ã®åé€ãè¡ãããŸããã¡ã€ã«ã§åå²ã§ããªãéšåã«é¢ããŠã¯ããã©ã°ãå©çšããŠäœæãåå²ããã¹ãã£ã³ã°ç°å¢ã®äžæžãèšå®ãçšããŠåæ ãããã
åŸæ¥ã®ãã«ãããã³ãæ¹åŒã§ã¯ææ°ããŒãžã§ã³ã®ãªãªãŒã¹ãé©çšããä»çµã¿ããåãã£ãŠããªãã£ãããããã»ã«ããã¹ãã£ã³ã°ç°å¢ã§ã¯å®å®éçšäžã®åé¡ãããä»»æã®ã¿ã€ãã³ã°ã§ä»»æã®ããŒãžã§ã³ã®ãªãªãŒã¹ãé©çšããå¿ èŠããã£ãããã®é£ããããå®éæ°ã¯æ¬¡ã®ããã«èªã£ãã
ãCroisã¯ãAPIãµãŒããŒãLambda颿°ãªã©è€æ°ã®ã³ã³ããŒãã³ãããæ§ç¯ãããŠããããããããã€ãè¡ãéã«ã¯ããããã®äŸåé¢ä¿ãèæ ®ããªããè¡ã£ãŠããŸããã忥åãé åæ åœè ãè¡ãããšã¯ãäºå®äžäžå¯èœã§ãããïŒå®éæ°ïŒ
ãããå®éæ°ãã®ããŒã ã¯ãäžå¯èœãå¯èœã«ãããè€æ°ã³ã³ããŒãã³ãã®äŸåé¢ä¿ãèªåã§è§£æ±ºããªãããããã€ãå®è¡ããç¬èªããŒã«ã®éçºã«æåããããã ã

ãŸãã¯ãéçºè ããã«ãªã¯ãšã¹ãã«äŸåé¢ä¿ãèšè¿°ããããã«ããããªãªãŒã¹ã®éã«ã¯ãRelease Creatorãšããã¹ã¯ãªãããå®è¡ã ãã®ã¹ã¯ãªããã¯GitHubäžã®åãªããžããªã®masterã«ããŒãžãããŠãããããªãªãŒã¹ãããŠããªããã«ãªã¯ãšã¹ããèªåã§åéãèšèŒãããŠããäŸåé¢ä¿ãå ã«ããããã€ã®é çªãèªåçã«å€æãããªãªãŒã¹ãã¡ã€ã«ã®åœ¢ã§èšé²ããã
ãã®ãªãªãŒã¹ãã¡ã€ã«ãèªã¿èŸŒã¿ããã«ãããã³ãç°å¢ã®å Žåã¯WebHookãå©çšããåŸæ¥ã©ããå³åº§ã«ãªãªãŒã¹ãããäžæ¹ã»ã«ããã¹ãã£ã³ã°ç°å¢ã®å Žåã¯ãæåã§Deployer Projectãå®è¡ããããšã§ãä»»æã®ã¿ã€ãã³ã°ã§ãªãªãŒã¹ãè¡ããšããä»çµã¿ã ã

ãã®ãããã€ããŒã«ã®éçºã«ãããä»»æã®ã¿ã€ãã³ã°ã§ãä»»æã®ããŒãžã§ã³ãé£ç¶ããŠãããã€ã§ããããã«ãªã£ããã ãå®éã«ã¯ããªãªãŒã¹ã«ãã£ãŠã¯é£ç¶ããŠé©çšã§ããªããã®ãååšããŠããã
ã ããããã§ããããã¯ãããŒã ãæè¡æ€èšãè¡ãã解決ããŠãããä»åãæ åœè ã«äŸåããããšãªããç¡åæ¢ã§ãªãªãŒã¹ãè¡ãä»çµã¿ãæ§ç¯ãã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ã®å°å ¥ã ãããã«ãããã¡ãžã£ãŒããŒãžã§ã³ãã¢ãããããªãªãŒã¹ã«ãããŠã¯ãé£ç¶é©çšã§ããªãããã«é æ ®ããããšã§äºææ§åé¡ã«ã察å¿ããã
ãCI/CDã®CodeBuildç§»è¡ãšãããã€ããŒã«ã®éçºã«ãããå®å®ããã»ã«ããã¹ãã£ã³ã°æ¹åŒãå®çŸããããšãã§ãããšæã£ãŠããŸãããããããã«ãããã³ãç°å¢ã®éçºãšäžŠèµ°éçšããŠããäžã§ã¯ãæ§ã ãªå°é£ããããŸãããïŒå®éæ°ïŒ
1ã€ç®ã¯ãå è¿°ã®ã»ã«ããã¹ãã£ã³ã°ãã©ã°ãå©çšããã¢ãããã¯ãªç°å¢åé¢ã«ãã圱é¿ã ãå·®åã«ãããããã€ããªãªãŒã¹ã®å€±æãçºçãããã®å¯Ÿå¿ããããã¯ãããŒã ã®ã¡ã³ããŒãè¡ãå¿ èŠãçãããçµæãšããŠéçºå¹çãäœäžããã
2ã€ç®ã¯ãã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°å°å ¥ã«é¢ãããã©ãã«ã ãæ¬æ¥äºææ§ããªãã¯ãã®ãªãªãŒã¹ããäŸåé¢ä¿èšè¿°æã®èŠèœãšãã«ãããã€ããŒããŒãžã§ã³ã¢ããã§é£ç¶ããŠãªãªãŒã¹ãããŠããŸããã¢ããªã±ãŒã·ã§ã³ãå£ããåé¡ãçºçããã
3ã€ç®ã¯ãä»»æã®ã¿ã€ãã³ã°ã§ã¢ããããŒãã§ããæ©èœã«é¢ãããã®ã ããããã¯ãããŒã ãšé ååŽã®ã³ãã¥ãã±ãŒã·ã§ã³äžè¶³ã«ãããã¢ããããŒãã®æéããã£ããã®ãææ¥ãŸã§ã«ãããã€ãããããžã§ãå®è¡ã忢ããåé¡ãçºçããã
ãéãããæéå ã§ãããã¯ãã®å®å®éçšãè¡ãããšã¯ãéåžžã«é£ããããšãåãããŸãããäžæ¹ã§çµéšãããšã«ãçŸåšã§ã¯éçºåŽãšé åæ åœè ãå¯ã«æ å ±ã®é£æºãè¡ããªã©ã倱ææã«é«éã§åŸ©æ§ã§ãããããŒã®æŽåãããããšãªã©ããåŠã³ãéãããã¥ãŒãã³ã°ãç¹°ãè¿ãããšã§ãã¹ããŒãéçºãšå®å®éçšã®äž¡ç«ãç®æããŠããŸããïŒå®éæ°ïŒ
ããããé£çµ¡è¬æåž³ã¢ããªéçºã«ãããã¹ããŒãéçºãšå®å®éçšã®åãçµã¿

æ ªåŒäŒç€Ÿã«ã±ãã·
ãœãããŠã§ã¢ãšã³ãžãã¢ã皮岡 ç¯€å¿æ°
ã«ã±ãã·ã¯ãæ¥æ¬ã®å»çäœéšããããªããã«ããšã®ããã·ã§ã³ãæ²ããè¬å±ãšæ£è ãçµã¶ã¯ã©ãŠãåé»åè¬æŽãµãŒãã¹ãMusubiïŒã ã¹ãïŒããå±éãæ£è åãã®ããããé£çµ¡åž³ãPocket Musubiããªã©ãæè¬æéäžã®æ£è ãšè¬å±ã®é¢ä¿äœãããµããŒããããµãŒãã¹ãéçºã»æäŸããŠããã
ä»åç»å£ãã皮岡æ°ã¯ããPocket Musubiãã®éçºããŒã ã«æå±ãããã¯ãšã³ããã¡ã€ã³ã«ãã€ã³ãã©ãããã³ããšã³ããªã©å¹ åºãé åã®éçºãªã©ã«æºããã皮岡æ°ã¯ã«ã±ãã·ãªãã³ã«ãããã¯ãã®ç¹åŸŽããæ¬¡ã®ããã«èªãã
ãè¬å±ã®æ°ã¯ã³ã³ãããããå€ããå šåœã«çŽ6äžåºããããŸããBIããŒã«ãåçš®ã·ã¹ãã ãå°å ¥ããããšã§ãè¬å±ã®DXã«è²¢ç®ããããã¯ãããžãŒã§è¬å±ãããã¹ã圢ã«ããããšèããŠããŸãããã®äžã§ãPocket Musubiã¯toCåãã§ãLINEäžã§åäœããã®ãç¹åŸŽã§ããä»åã¯ãLINEã ãã§ãªããiOSãAndroidã§ãåäœããã¢ããªãããŒã³ãããŸããããïŒçš®å²¡æ°ïŒ
éçºæéã¯çŽå幎ãã¹ããŒãéçºã«ãããŠã¯ãFlutterFlowãªãã³ã«ServerlessStackãå©çšããå®å®éçšã«é¢ããŠã¯ããŒã åå²ãè¡ãããšã§ããã®å®çŸãç®æããã

皮岡æ°ã¯ä»¥äžã®ã·ã¹ãã ã®æŠèŠå³ãšåãããŠãFlutterFlowãæ¡çšããçç±ã«ã€ããŠããèªã£ãŠããã
ãiOS/Androidäž¡æ¹ããªãªãŒã¹ããå¿ èŠããããŸããããåœæã¯æ åœãšã³ãžãã¢ãããããäžäººãã€ããããããå§åçã«ãªãœãŒã¹ãè¶³ããªãç¶æ³ã§ãããããã§ãããŒã³ãŒãããŒã«ã䜿ãããšèããŸãããïŒçš®å²¡æ°ïŒ
FlutterFlowã¯ããããããŒã³ãŒãããŒã«ã§ãããã³ãŒããèšè¿°ããããšãªããGUIäžã§ããŒããçµã¿äžããŠããæèŠã§ãFlutterã¢ããªãéçºããããšãã§ããããŸãããã¶ã€ã³ã ãã§ãªãããžãã¯ã®å®è£ ãå¯èœãææãã©ã³ãå©çšããã°GitHubãšé£æºããœãŒã¹ã³ãŒããç¥ãããšãã§ããã

ãã ããä»åã®ã±ãŒã¹ã§ã¯äž»ã«åç»é¢ã®äœæãšãã¶ã€ã³ã§æŽ»çšãããäžæ¹ãããžãã¯ã«ãããŠã¯ããŒã«äžã ãã§ã¯å®è£ ãé£ãããããèšèšèгç¹ã§ããŒã«ã«äŸåããããšãªã©ãèæ ®ããèªåã§è¡ã£ããšããã
ãŸããèªåçæããã³ã³ããŒãã³ãã«ãããŠã¯ãFlutterFlowÃÃÃã®ããã«æœè±¡åããç¬èªã³ã³ããŒãã³ããäœæãããå°æ¥çã«è² åµãªã¹ã¯ã«ãªããšã®æžå¿µããããã¹ããæžããå°æ¥çã«ãªãã¬ãŒã¹å¯èœãªæºåãããŠãã察çããšã£ãã

ç¶ããŠã¯ãServerlessStackã«ã€ããŠãCDKãšåãäœ¿çšæã§ãããªãããã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®éçºæ¯æŽãè¡ãããªã©ã®ã¡ãªããã玹ä»ãããã
äŸãã°ãããŒã«ã«ç°å¢ã§Lambdaã®ããžãã¯éçºãç°¡åã«ã§ãããLive Lambda Developmentãšããæ©èœã ãã¡ã³ããŒããšã®éçºç°å¢ãããŒã«ã«ã§ã®éçºç°å¢ãç°¡åã«æ§ç¯ã§ããã
ãLambdaéçºã«ãããéå£ããServerlessStackã䜿ãããšã§åãé€ããããšæããŠããŸããïŒçš®å²¡æ°ïŒ

皮岡æ°ã¯ãLive Lambda Developmentã®å©çšäŸã玹ä»ãããäžå€®ã®é åãããŒã«ã«ã§ãããå³ãAWSé åã ãåãšã³ãžãã¢ã¯ããŒã«ã«ç°å¢ã§éçºã«éäžã§ãããããéçºã¹ããŒããä¿é²ããã
ããŒã¿ããŒã¹ã«ãããŠãDockerã䜿ãããšã³ãžãã¢å°çšã®éçºããŒã¿ããŒã¹ãæ§ç¯ãããŠããããšããããã

ç¶ããŠã¯ãå®å®éçšã«ã€ããŠã ãåæãšããŠãä»å玹ä»ããããããé£çµ¡åž³ã¢ããªã®éçºã«ãããŠã¯ãLINEäžã§å±éããŠãããµãŒãã¹ã®éçºã«æºãã£ãŠãããšã³ãžãã¢ãå šå¡åå ããç·åæŠã§éçºãè¡ã£ãŠããã
ãã®ãããªèæ¯ãããã¡ã³ããã³ã¹å¯Ÿè±¡ã®å¢å ãªã©ãéçšé¢ã§æ§ã ãªèª²é¡ãçããããšãèããããã
ãæ¢åã®ãµãŒãã¹ã¯AngularJSãšPythonã§éçºãããŠãããããæ°ããªæè¡ã¹ã¿ãã¯ãçè§£ããå¿ èŠããããŸããããã¡ã€ã³ç¥èãåæ§ã§ããäžæ¹ã§å šãšã³ãžãã¢ã«ããã¹ãŠã®æè¡ããã¡ã€ã³ã®çè§£ãæ±ããã®ã¯é£ãããšèããŸãããïŒçš®å²¡æ°ïŒ

çµæãšããŠãããŒã ãåå²ããããšã決ãããäžæ¹ã§ããããããŠã³ã§äžæ¹çã«ããŒã ãåå²ããã®ã¯ãããªããšèãã皮岡æ°ã¯ãããŒã ãã«ãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ãäœç³»çã«åŠãŒããšãé¢é£æžç±ãåèã«é²ããŠããããšãšããã
皮岡æ°äžäººãæžç±ãèªãã®ã§ã¯ãªããã¡ã³ããŒå šå¡ã«ãã¹ãã®ããŒã åå²ã®ãã©ã¯ãã£ã¹ã«ã€ããŠèããŠããããããšã茪èªäŒã宿œãå®éãå€ãã®æèŠãæãããæèŠäº€æãªã©ãè¡ããããåãçµã¿ã®ææãã皮岡æ°ã¯æ¬¡ã®ããã«æ¯ãè¿ã£ãã
ãããŒã åå²ã«é¢ããããŒãã«ãã確å®ã«äžãã£ããšæããŠããŸããããããã®æ åœé åã®èªç¥ãæ·±ããªã£ãçµæãéçšå¹çã®ã¢ããã«ãå¯äžããŸãããããã«ã¯æ°ããã¡ã³ããŒãåç»ããéã«ããã£ããã¢ãããããããªããªã©ã®æ©æµãåŸãããšãã§ããŸãããïŒçš®å²¡æ°ïŒ
äžæ¹ã§ãã³ã³ãŠã§ã€ã®æ³åã®ããšãçãã課é¡ãããå šå¡ãç·åæŠã§éçºããããšã§ããŒã¿ããŒã¹ãå¯çµåã«ãªããããŒã¿ããŒã¹ã¹ããŒãã®ç®¡çãè² è·ã倧ãããªã£ãã®ã
æã¡æãšããŠã¯ãã€ã¯ããµãŒãã¹åãªã©ãèãããããã®ã¢ãããŒãã¯ãããŸã§çŸåšã®èª²é¡ãçããããšã«ããã¢ã€ãã¢ã§ãããããŒã åå²ãå ã«è¡ããªã©ããŠãããã倿ãå€ãã£ãŠããã§ããããšçš®å²¡æ°ã¯æ¯ãè¿ãã

皮岡æ°ã¯ãçŸæç¹ã§ãã€ã¯ããµãŒãã¹åãããµãŒãã¹ã®éçšçµéšè ãããªãããšããã£ããªã©ããããŸã§çµæããã®å¯Ÿçã ãšææã次ã®ããã«è¿°ã¹ãã»ãã·ã§ã³ãç· ããã
ããã€ã¯ããµãŒãã¹åãå«ããã¹ããŒãéçºãå®å®éçšã«é¢ããåãçµã¿ã¯ãçµç¹ã®ãã§ãŒãºãéçºãªãœãŒã¹ãªã©å€çèŠå ã«ãã£ãŠå€ããããã倿ãé£ãããšããã®ãæ£çŽãªãšããã§ããäžæ¹ã§ä»åã®çµéšãå«ããåŸãç¥èŠãä»åŸã®å€æè»žã«æŽ»ãããŠãããããšèããŠããŸããïŒçš®å²¡æ°ïŒ
ãQïŒAãåå è ããã®è³ªåã«ç»å£è ãåç
ã»ãã·ã§ã³åŸã¯ãã€ãã³ããèŽè¬ããåå è ããã®è³ªåã«ãç»å£è ãåçããã
QïŒåŸãç¥èŠãä»ã®ãããã¯ãã«æšªå±éããéã®å·¥å€«ãªã©
æŸæ¬ïŒå®æçã«è¡ããšããããã¯ãã¹ãããã§ãšã³ãžãã¢ãéããŠè¡ã£ãŠããŸããå 容ã«é¢ããŠã¯å®éã«èµ·ããããšããæçŽã«ãã®ãŸãŸäŒããããã«ããŠããŸããäžæ¹ã§ããªããã®ããŒã«ãå°å ¥ããããªã©ã¯ãçç±ãåççã«èª¬æããŠããŸãããŸããä»ã®ãããã¯ãã§ã䜿ãå Žåã¯ããã§ã«çµéšããŠããç§ãã€ã³ã¹ããŒã«ãæ ãããšãããŠããŸãã
QïŒããã³ããšã³ããšããã¯ãšã³ãäž¡æ¹ãå Œããéã®æè¡ã®ãã£ããã¢ããã«ã€ããŠ
æŸæ¬ïŒãããªãäž¡æ¹ä»»ããã®ã¯å€§å€ãªã®ã§ããããŸã§ããšã³ãžãã¢ãäž¡æ¹ã«èå³ãããã°ä»»ããããã«ããŠããŸããLayerXã«ã¯ãã¢ããæåããããããæ°ããã¡ã³ããŒãå«ããä»ã®é åã®ãã£ããã¢ãããããéã«ã¯ç©æ¥µçã«æŽ»çšããããŠããŠãªã©ãå ±æããŠããŸãã
QïŒæ°èŠãããã¯ãã§äžæçãªå Žåãããžãã¹ãµã€ããšã®é£æºã§å·¥å€«ããŠããç¹ã¯ïŒ
é¶Žè°·ïŒãŸãã¯äœ¿ã£ãŠããããå°å ¥ãæ€èšããŠãããããšã倧äºã ãšèããŠããŸããCroisã§ã¯PoCã®ãã§ãŒãºãå ¥ãã宿©ã§ã®æ€èšŒãè¡ããŸããããŸããCroisã®ãœãŒã¹ã³ãŒããå ¬éãããããã«ãããŒãžãªã©ã§Croisã®äœ¿ãæ¹ã仿§ãå ±æããããšã§ãã³ãã¥ãã±ãŒã·ã§ã³ã®åæ»åãæèããŠããŸãã
QïŒã»ã«ããã¹ãã£ã³ã°æ¹åŒã®å°å ¥ãå«ããCroisã«ããå ·äœçãªå¹æãªã©
é¶Žè°·ïŒä»¥åã¯ãªãªãŒã¹ãæåã§è¡ãå¿ èŠããããŸããããããCroisã¯CI/CDç°å¢ãæŽã£ãŠããã®ã§ãèªåã§ãªãªãŒã¹åºæ¥ãŸãããã®çµæããšã³ãžãã¢ã®è² æ ãæžããŸãããéçºè ã¯ãã¡ããéçšè ãå«ããŠãã¿ããªãããããŒã«ãªã£ãŠãããšæããŠããŸãã
QïŒMVPã§ããã°ãiOS/Androidã¯ã©ã¡ããã ãã§ãããã£ãã®ã§ã¯ãªãã
皮岡ïŒä»ç€Ÿããã§ã«åæ§ã®ã¢ããªãäž¡OSã§åºããŠãããããäž¡OSã§åºãããšã¯å¿ é ã§ããããã®äžã§æ©èœãã§ããã ãçµã£ãŠãããŸããã
QïŒããããé£çµ¡åž³ãPocket Musubiãéçºæéã®è©³çްã¯ïŒ
皮岡ïŒããŒã³ãŒãããŒã«ã®æ¢æ±ã¯2é±éããããæ§æ³ãã§ããŠããã¯äžæ°ã«ã¢ã¯ã»ã«ãèžãã§éçºãé²ããŸãããå šäœãšããŠã¯å幎ã»ã©ã§ããããããŒã³ãŒãããŒã«ãšã®ãã ãã§ããã°ãããã³ããšã³ãã¯ãã®çŽååã3ã«æã»ã©ã ã£ããšæããŸãã
QïŒãã¶ã€ã³é¢ã«ãããFlutterFlowã®å¹æã¯ïŒ
皮岡ïŒä»¥åã¯ãšã³ãžãã¢ãšãã¶ã€ããŒãã³ã³ããªã¯ãããããšããããŸãããFlutterFlowã䜿ãã°ãšã³ãžãã¢äž»å°ã§ãã¶ã€ã³ãé²ããããšãã§ããã®ã§ãFlutterFlowã®å°å ¥ã§è§£æ¶ã«ã€ãªãããšæåŸ ããŠããŸãã
QïŒããã¯ãªãŒããšããŠæ¥ã 倧åã«ããŠããããšã¯ïŒ
æŸæ¬ïŒ1ã€ã¯ãããã¯ãã®ããã«ãªãããšããèªãç©æ¥µçã«æãåãããŠè¡ãããšã§ãããã1ã€ã¯ã¡ã³ããŒããã£ãããšã€ããŠæ¥ããããããæè¡ã«é¢ããæææ±ºå®ãæç¢ºã«ããããšã§ãã
å®éïŒãŸãã¯ããªãŒããŒã§ããåã«è¯ãã¡ã³ããŒã§ãããšããããšã§ããã¬ãã¥ãŒãæ¥é ã®ã³ãã¥ãã±ãŒã·ã§ã³ãéããŠãéçºè ãšããŠåšãããå§¿ãªã©ãäœçŸããããšã§ãã¡ã³ããŒããã®ä¿¡é ŒãåŸãããã«ããŠããŸãããã1ã€ã¯ãèªåã§äœã§ãåé¡ã解決ããã®ã§ã¯ãªããããŒã ã¡ã³ããŒãå·»ã蟌ãã§ãçµæãšããŠããŒã ãšããŠè§£æ±ºã«å°ãå§¿å¢ã§ããåé¡ãšåãåãããšãéèŠã ãšèããŠããŸãã
é¶Žè°·ïŒç§ã¯ãããŒãžã£ãŒãªã®ã§ãããã¯ãªãŒããå šé¢çã«ä¿¡é Œããããšãå¿ãããŠããŸãã 皮岡ïŒèšèšãã·ã¹ãã æ§æãªã©ããã¯ãããžãŒã«é¢ããŠåççãªèª¬æãšãããã«æºããæææ±ºå®ãªãã³ã«è²¬ä»»ãæã€ããšãéèŠã ãšæ¥ã èããŠããŸãã
æ ªåŒäŒç€Ÿã«ã±ãã·
https://www.kakehashi.life/
æ ªåŒäŒç€Ÿã«ã±ãã·ã®æ¡çšæ
å ±
https://recruit.kakehashi.life/
æ ªåŒäŒç€Ÿãªã¯ã«ãŒã
https://www.recruit.co.jp/
æ ªåŒäŒç€Ÿãªã¯ã«ãŒãã®æ¡çšæ
å ±
https://recruit-saiyo.jp/
æ ªåŒäŒç€ŸLayerX
https://layerx.co.jp/
æ ªåŒäŒç€ŸLayerXã®æ¡çšæ
å ±
https://jobs.layerx.co.jp/
ããããã€ãã³ã
é¢é£ããã€ãã³ã

ãã«ã±ãã·/ãªã¯ã«ãŒã/LayerXãïœããã¯ãªãŒããæ¯ãè¿ãã¢ã³ãã...
2023幎02æ21æ¥ (ç«)ããããã®èšäº

ã«ã±ãã·ã»Ubieã»ããã¿ã®ããã¯ãªãŒããèªããå€åã«åŒ·ãã·ã¹ãã ãå®çŸããããã«è¡ã£ãåæšéžæ

ãœãããŠã§ã¢ãšã³ãžãã¢ãã¯ã«ãã®ã³ã¢ãèªãâã¢ããªãã£ã®äŸ¡å€ãæå€§åããè»èŒãœãããŠã§ã¢éçºã®æåç·








