ããã«ã¡ã¯ã第äºéçºã°ã«ãŒããšã³ãžãã¢ã®è¥¿æã§ãã䞻㫠CLINICS ã®éçºãæ
åœããŠããŸãã ã¯ããã« CLINICS ã¯é»åã«ã«ãããªã³ã©ã€ã³èšºçãäºçŽã·ã¹ãã ãæ£è
ã¢ããªãªã©ãå«ãçµ±åã¢ããªã§ããCLINICS ãããŒã³ãããŠããçŸåšã«è³ããŸã§åžžã«æ°æ©èœéçºãšå®åžžæ¹åãè¡ãããŠãããéçºç°å¢ã®ã¡ã³ããã³ã¹ã¯åŸæã«ãªããã¡ã§ãããä»åã¯ãããã£ãç¶æ³ãæ¹åãã¹ããéçºç°å¢ã®ã¡ã³ããã³ã¹ããªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ãéçšããåŸããããã©ã¯ãã£ã¹ã«ã€ããŠç޹ä»ããŠããããšæããŸãã ã¢ãããŒã·ã§ã³ ãããã¯ãã®æ°èŠéçºæã«è¡ãããæè¡éžå®ã¯éåžžã«é£ãããæ¥åèŠä»¶ãããŒã ç¶æ³ãªã©ç·åçã«èæ
®ããŠãã®æç¹ã§ã®ãã¹ããªéžæãããå¿
èŠããããŸãã ããããéžæããæè¡ã§é·æéçšãããŠãããã¡ã«ãã¡ã³ããã³ã¹ãè¡ãå±ããªããªã£ãã³ãŒããã©ã€ãã©ãªãåºãŠããŸããŸãã CLINICS ããŒã³ãåœåã¯ãªã³ã©ã€ã³èšºçã®ã¿ãæäŸããŠããŸãããSPA ã§æ§æãããŠããŸããããïŒã€ã® package.json ã§å¹ççã«éçºã§ããŠããŸãããä»ã«ãçŸåšã»ã© TypeScript ãäž»æµã§ã¯ãªãã£ãã®ã§ JavaScript ã®ã³ãŒããã¡ã€ã³ã§å®è£
ãããŠãŸããã æ°ããªã¢ããªã±ãŒã·ã§ã³ïŒé»åã«ã«ããäºçŽã·ã¹ãã ãªã©ïŒãå°å
¥ããã¿ã€ãã³ã°ãããªãã¡ãããã¯ããå°èŠæš¡ããäžèŠæš¡ã«å€é·ããã¿ã€ãã³ã°ããããã³ããšã³ãã®ææµã«ãã£ãŠãéçºç°å¢ãæ¹åã§ããéšåããããŸãããããããŠããªãéšåãåºãŠããŸããã ãã®æ¹åããããŠããªãéšåãæ®ãç¶æ
ãç¶ããš Developer Experience(DX)ã®äœäžã«ç¹ãã£ãŠããŸããŸããã§ãã®ã§ãç§ãã¡ã¯æ¹åããããŠããªãéšåãåãé€ããŠãããããã¢ãã³ãšãããéçºç°å¢ãžãªãã¡ã¯ã¿ãªã³ã°ãããŠããããšèããŸããã DX ãåäžããŠããããšã§æè¡çãªãã€ãºã«æéãåãããªãããã«ãªããŸãããããŠæäŸããæ©èœãã®ãã®ã«ã€ããŠèããæéãå¢ããçµæçã« CLINICS ãããè¯ããããã¯ããžé²åãããŠããã®ãåœãªãã¡ã¯ã¿ãªã³ã°ã®ç®çã§ãã èª²é¡æŽç æ¹åããŠããããã«ã¯ãçŸç¶æŽçãèª²é¡æŽçãè¡ããªãããšã«ã¯äœãå§ãŸããŸãããããã³ããšã³ãéçºç°å¢ãã¡ã³ããã³ã¹ããã¿ã¹ã¯ã¯ããããã¯ãã®æ©èœïŒãŠãŒã¶ã«æäŸãããæ©èœïŒã«çŽæ¥ãã©ã¹ã®åœ±é¿ãããããã§ã¯ãããŸãããèªããšéåžžã®æ©èœéçºãå®åžžæ¹åã«æ¯ã¹åªå
床ã¯èœã¡ããããã¹ããæéã§æ¹åãããŠããããšã«ãªããŸããããããã¹ããæéãæå¹æŽ»çšããããã«ã¯ãã¿ã¹ã¯ã®é£æåºŠã®çè§£ãã¿ã¹ã¯ãé©åœã«åå²ããã§ãŒãžã³ã°ã®èšç»ãè¡ãããšã極ããŠå€§äºã§ãã ãã®ããã«èæ
®ãã課é¡ã®äžã§ãæ¬èšäºã§èšèŒããã®ã¯ä»¥äžã®ïŒã€ã§ãã ã©ã€ãã©ãªã宿çã«ã¢ããããŒãããéçšãåºãŸã£ãŠãªã éçšæ¹åŒãåºãŸã£ãŠããªãããšã§ãæŸçœ®ãããŠããŸããã¡ã§ããçå
ããŠã¢ããããŒãããã¡ã³ããŒããããšããŠããå±äººåã®èª²é¡ãæ®ã£ãŠããŸããŸã æŸçœ®ãããŠããŸã£ãããšã«ãããææ°çãšã®å·®åã倧ãããªãã¢ããããŒãããã³ã¹ãã倧ãããªã£ãŠããŸããŸã çµæçã«ãã©ã€ãã©ãªã®ã»ãã¥ãªãã£ãã£ãã¯ã¹å¯Ÿå¿ãæ°ããæäŸãããæ©èœãããã«é©å¿ã§ããªãç°å¢ã«ãªã£ãŠããŸããŸã è€æ°ã® SPA ã®äŸåãïŒã€ã® package.json ã§ç®¡çããŠãã é»åã«ã«ãã»ãªã³ã©ã€ã³èšºçã瀟å
管ç Web ã¢ããªãæ£è
Web ã¢ããªã¯ããããå¥ã® SPA ãšããŠäœãããŠããŸã ããããïŒã€ã® package.json ã§ç®¡çããŠããããããããã® SPA ãåãäŸåããã±ãŒãžã䜿ããªããŠã¯ãªããŸãããå°èŠæš¡ã®ãšãã¯ãã®ãããªæ§æã§ååã§ããããèŠæš¡ã倧ãããªãã«ã€ããŠæè»æ§ã倱ããããšå
±ã«ãã©ã€ãã©ãªã®ã¢ããããŒãããããã圱é¿ç¯å²ãåºãã£ãŠããŸãããã容æã«ã¢ããããŒãã§ããªããªã£ãŠããŸããŸã æ¬èšäºã§ã¯èšèŒããŸããããRedux ã®æžãæ¹ãæ··åšããŠããããããã³ããšã³ãã®ãã¹ããå°ãªãããç¶²çŸ
çã« TypeScript åã§ããŠããªã JavaScript ããŸã æ®ã£ãŠããããªã©ã®èª²é¡ãæããããŸããã ãããã課é¡ã¯ãã©ã®ãããã¯ãã«ãååšãããšæããŸããããã¯ããŒã³ãåœæã®æè¡æµè¡ã§ãã£ããããããã¯ãã®æåŸ
èŠæš¡ãå°æ°ã¡ã³ãã«é©ããèšèšãªã©èŠå ã¯æ§ã
ãããããã°ã©ã ã®ãªãã¡ã¯ã¿ãªã³ã°ãšåæ§ã« ãããã¯ãã®æé·ã«äŒŽã£ãŠãªãã¡ã¯ã¿ãªã³ã°ããŠããããšãæ£ ã ãšä¿¡ããŠããŸãã ã¢ãããŒã·ã§ã³ã«ãŠèšèŒããéãããããè€æ°ã®èª²é¡ã¯éçºç°å¢ã®ãã€ãºã§ãããé€å»ããããšã«ãã£ãŠãããè¯ã DX ãåŸããããšèããŠããŸããä»ã«ãã®ãããªãªãã¡ã¯ã¿ãªã³ã°ãè¡ãããšã«ãã£ãŠããããã¯ããããå
ç¢ã«ã§ãããšããåŽé¢ããããŸãã äžèšã®ïŒã€ã®èª²é¡ã«å¯ŸããŠãããããã©ã€ãã©ãªã宿çã«ã¢ããããŒãããéçšææ®µãèšããããpackage.json ã SPA åäœã«åå²ããã話ãããããããŠãããŸãã ããã³ããšã³ãéçºç°å¢ã®ãªãã¡ã¯ã¿ãªã³ã° ã©ã€ãã©ãªã®å®æçãªã¢ããããŒããããéçšæé ãèšãã æåã¢ããããŒã ã©ã€ãã©ãªãã¢ããããŒãããã«ã¯ã³ãã³ããå©ãã ãã ãšèããŠããŸããããäŸåããŠããå¥ã®ã©ã€ãã©ãªã«åœ±é¿ãæ¬åœã«ãªãããªã©èª¿æ»ããå¿
èŠããããšç¥ããã©ã€ãã©ãªã®ã¢ããããŒãæ¹æ³ã暡玢ãããšããããéå§ããŸããã ã©ã€ãã©ãªã§ã¯ãªãã§ãããNode.js ã®ã¢ããããŒããããããšãããšãnode-sass ã Firebase ã圱é¿ããŠãããããŠãèã¥ãåŒã§æ ¹ã£ãã«ããã©ã€ãã©ãªã®ã¢ããããŒããããå¿
èŠãåºãŠãããããã®ã§ãäžã€äžã€åé¡ããªãã調æ»ããã®ã倧å€ã§ããã äœãããã¢ããããŒã察象ã©ã€ãã©ãªã®ãªãªãŒã¹ããŒãã« Breaking Changes ãæžãããŠããªãã£ãããsemver ãå®ãããŠãããããããªãã£ãããšããããã¯ãã«åœ±é¿ããªãã調ã¹ãå¿
èŠããããåé¡ã®åãåãæ¹ãé£ããã£ãã®ã§ãã ããã§åŸãããã©ã€ãã©ãªã¢ããããŒãã®å®å
šæ§æ
ä¿ã®ãã©ã¯ãã£ã¹ãšã㊠webpack ã«ãããã«ãçµæãå€ãããªãã±ãŒã¹ ãšã QA ãã¹ãã«ãã£ãŠæ
ä¿ããã±ãŒã¹ ãããããšãããããŸãããåè
㯠webpack ã«ããææç©ãå€ãããªãã®ã§ããã°ä»åã®ã¢ããããŒããå®å
šã§ãããšãããåŸè
ã¯ãšã³ãžãã¢ãš QA ãšã³ãžãã¢ã«ãã£ãŠã©ã€ãã©ãªã®åœ±é¿ç¯å²ã«ãã¬ãŒã·ã§ã³ããªãããšã確ãããŠå®å
šã§ãããšããããšãããã®ã§ãã renovate ã®éçšéå§ æ°ã«æéã¯äžèšã®ããã«ã©ã€ãã©ãªã®ã¢ããããŒããæåã§è¡ã£ãŠããŸãããã確èªå·¥æ°ãå¢ããŠããŸããä»ã®ã¿ã¹ã¯ã®æéãå§è¿«ããŠããŸãã»ã©ã§ããã ããã§ãã¢ããããŒããèªååãã renovate  㚠dependabot ãèŠéã«å
¥ããŸãããrenovate ã¯ãdependabot ã«æ¯ã¹ãŠé«æ©èœã§ãã€ãç¡æã§ãããšããçç±ã§éžå®ããŸããã éçšåœåãrenovate ã Pull Request ãäœæããŠãããããdiff ã«ããã©ã€ãã©ãªã®å€æŽç¹ãèŠãããã£ãããšãæ©æµãæããŠããŸãããããããåŸã
ã«ãã¢ããããŒã察象ãå€ãããããããã©ãããã©ã€ãã©ãªã§ã圱é¿ç¯å²ãã©ããªã®ãããšããããšã®èª¿æ»ã«æéãåãããããã«ãªã£ãŠããŸããŸããã ããã§åŸãããèª¿æ»æéãççž®ãããã©ã¯ãã£ã¹ãšããŠ**ãæ¬çªåœ±é¿ã®ãããã®ããéçºåããããã«ãåšãããš renovate ããæ¥ã Pull Request ãæŽçãã**ããšã§ãããã®ãããªæŽçãè¡ãããšã§ãæ¬çªåœ±é¿ã®ãããã®ã«æ³šåããŠã¬ãã¥ãŒã§ããããã«ãªããèŠã«ãªããã«ã¢ããããŒããã§ããããã«ãªããŸããã çµæ ã©ã€ãã©ãªã¢ããããŒãã®éçšæé ãèšããããšã«ãã£ãŠãä»ãŸã§ä»¥äžã«å
ç¢ãªç°å¢ã«ãªããŸããããããããrenovate ã«ãã£ãŠèªåçã«éèŠãªïŒæ¬çªåœ±é¿ã®ããïŒã©ã€ãã©ãªã®ã¿ã«éäžããŠã¬ãã¥ãŒãè¡ãããšã«ãã£ãŠãå°ãªãå·¥æ°ã§ã¢ããããŒãããŠãããããã«ãªããŸããã package.json ã SPA åäœã«åå² èª²é¡æŽçã§èšèŒããéããé»åã«ã«ãã»ãªã³ã©ã€ã³èšºçã瀟å
管ç Web ã¢ããªãæ£è
Web ã¢ããªã¯ããããå¥ã® SPA ãšããŠäœãããŠããŸãããïŒã€ã® package.json ã§ç®¡çããŠããŸããã§ãã®ã§ããããã® SPA ãåãäŸåããã±ãŒãžã䜿ããªããã°ãªããŸããã åŒå®³ãšã㊠package.json ã«å¯ŸããŠïŒã€ã®å€æŽããã£ããšãã«ãã¹ãŠã® SPA ã«åœ±é¿ãåºãŠããŸããŸããã§ãã®ã§ããã®è¥å€§åãã package.json ãããããã® SPA ã«åå²ããããšããŸããã package.json ã SPA åäœã«åå²ããããšã¯ 責ååé¢ ãšããåŽé¢ããããã©ã€ãã©ãªã ãã§ãªããå
±éããŠãã宿°ãããžãã¯ãã³ã³ããŒãã³ããwebpack.config.jsãbabel.config.js ãš tsconfig.json ãªã©ãã¹ãŠãããããã® SPA ã«äŸåã®ãªã圢ã«éããããã«ããŸããããããã®åå²ããäœæ¥ã¯éåžžã«æ³¥èããã®ã§ãæ¬èšäºã«èšèŒããã»ã©ã®ãã®ã§ã¯ãããŸããããåŸãããçµæã«ã€ããŠèšèŒããŠããããšæããŸãã çµæ ãŸãã責ååé¢ãã§ããã®ã§ãïŒã€ã® SPA ã«å¯Ÿãã倿Žããã£ããšãã«ãä»ã®å
šãŠã® SPA ã«å¯Ÿãã圱é¿ãåºãªããªããŸããããã£ãŠãïŒã€ã® SPA ã«å¯ŸããŠæ°ã㪠Web ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã詊ãããšã容æã«ãªããŸãããä»ã«ããïŒã€ã® webpack ã§ãã¹ãŠã® SPA ãã·ãŒã±ã³ã·ã£ã«ã«ãã«ãããŠããã®ã«å¯ŸããŠãçŸåšã¯ãã©ã¬ã«ã§ãã«ãã§ããããã«ãªããã«ãæéãççž®ããããããä»ãŸã§ä»¥äžã«ã³ããããããããã€ãŸã§ã®ã€ãã¬ãŒã·ã§ã³ãå°ãããªããŸããã ãããã®çµæããããã³ãéçºç°å¢ã®æ¹åããã³ DX åäžãæãããŸããã ä»åŸã®èª²é¡ æç¶çãªãªãã¡ã¯ã¿ãªã³ã°ãããä»çµã¿äœã ãã©ã€ãã©ãªã®å®æçãªã¢ããããŒããããéçšæé ãèšãããã¯ãŸãã«æç¶çã«ã©ã€ãã©ãªãã¢ããããŒãããããã®ææ®µã§ãããpackage.json ã SPA åäœã«åå²ããããããããã® SPA ãã¡ã³ããã³ã¹ããããç°å¢äœããšããŠã¯æ¬ ãããªãäœæ¥ã§ããã ãããããã®ãŸãŸãªãã¡ã¯ã¿ãªã³ã°ãäžæããã°ããããã¯ãã®èŠæš¡ã倧ãããªããšããããã³ããšã³ãã®ææµã«ãã£ãŠåã³ã¡ã³ããã³ã¹ãã¥ããç°å¢ã«ãªã£ãŠããŸããŸãã ãªã®ã§ãæç¶çãªãªãã¡ã¯ã¿ãªã³ã°ãããããã«ã¯ä»çµã¿äœããæ¬ ãããªããšèããŠããŸãããã®ããã«ã¯ãå±äººåã«ãããªãä»çµã¿ã¥ãããã¡ã³ããã³ã¹ããããç°å¢æ¹åããšã³ãžãã¢ããããã®ããã³ããšã³ãéçºç°å¢ã«å¯Ÿãããªãã©ã·ãé«ããåãçµã¿ãè¡ã£ãŠããå¿
èŠããããŸãããã®ãããçŸåš æšªè»žååŒ·äŒ ãªã©ã§ CLINICS ããã³ããšã³ãã®å®è£
èæ¯ãããªãã¡ã¯ã¿ãªã³ã°ããããæžãæ¹ãªã©ã®ãã¬ããžãå
±æããŠããŸãã ãŸãšã ããã³ããšã³ãéçºç°å¢ã®ã¡ã³ããã³ã¹ã»ãªãã¡ã¯ã¿ãªã³ã°èªäœã¯ãããŸã§ããŠãŒã¶ã«æ°ããæ©èœãæäŸããŠããããã§ã¯ãªããç²ã
ãšè¡ã£ãŠãããã®ã§ãããããã課é¡ãæŽãåºããåãåã£ãŠã解決ããŠãã£ãããšã«ãã£ãŠåŸããããã©ã¯ãã£ã¹ã¯å€ããããããã³ããšã³ãã®ãšã³ã·ã¹ãã ã«å¯Ÿããçè§£ãå€ãåŸãããŸããã ãããã®ãªãã¡ã¯ã¿ãªã³ã°ãè¡ãããšã«ãã£ãŠ DX ãåäžããŠãããæè¡çãªãã€ãºã«æ©ãæéãæžãããšã³ãžãã¢ã¯ãããããã¯ãã®æ©èœéçºã«å°å¿µã§ããããã«ãªã£ãŠãããšä¿¡ããŠããŸãã ä»åç§ãã¡ã課é¡ã解決ããããšã«ãã£ãŠãæç¶çã«ãªãã¡ã¯ã¿ãªã³ã°ãããããåå°äœãããããšããåŽé¢ããããšæããŸããä»åŸã®èª²é¡ãšããŠããã®åå°ãåºã«ããããã®ãšã³ãžãã¢ãæèãæã£ãŠã¡ã³ããã³ã¹ã§ãããããªä»çµã¿ã¥ãããè¡ã£ãŠãããããšæããŸãã æåŸãŸã§èªãã§ããã ãããããšãããããŸããã www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
çæ§ããã«ã¡ã¯ãã€ã³ãã¥ããŒã·ã§ã³æ¬éšãšã³ãžãã¢ã®æ¿±äžã§ãã 9/19ã21 ã« iOSDC Japan 2020 ïŒä»¥äž iOSDCïŒãéå¬ãããŸããã å
æ¥ã®èšäº ã®éããã¡ãã¬ãŒã¯ 2017 幎ãã iOSDC ã« åè³ ããŠãããŸãã ã¡ãã¬ãŒã§ã¯ãSwift ãå©çšããŠãªã³ã©ã€ã³èšºçïŒæè¬æå°ã¢ããªãCLINICSãiOS çã®éçºãããŠããŸãã CLINICS(ã¯ãªãã¯ã¹)ããªã³ã©ã€ã³èšºçã»æè¬æå°ã¢ã㪠5 åç®ãšãªãä»åã¯ãåã®ãªã³ã©ã€ã³éå¬ãšãªããäž»ã«ãã³ãã³çæŸéãDiscord äžã§çºè¡šã»ã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŸãããç§ã iOS ç CLINICS ã®éçºã«æºãã£ãŠããçžã§ãä»åã¹ãã³ãµãŒæ ãšã㊠iOSDC ã«åå ãããŠããã ããŸããã®ã§ç޹ä»ãããŠããã ããŸãã ã€ãã³ãå
šäœã«ã€ã㊠ãªã³ã©ã€ã³éå¬ãšãªã£ããããäŒå Žã®æ§åãäŒæ¥ããŒã¹ãªã©ãé°å²æ°ã®äŒããåçããå±ãã§ããªãã®ãæ®å¿µã§ãããçºè¡šã®äž»äŒå Žãšãªã£ããã³ãã³çæŸéã§ã¯ãçµå§ç©ãããªé°å²æ°ã§ããã€ã€ã掻çºã«ã³ã¡ã³ãããªããã倧ãã«çãäžãã£ãŠããŸããã åååæ§ãåæ¥ã¯ day 0 ãšããŠå€æ¹ããã2 æ¥ç®ä»¥éã¯æã倿¹ãŸã§ãæå€§ 5 ã€ã®ãã£ã³ãã«ã§äžŠè¡ããŠçºè¡šãè¡ãããŸãããã»ãã·ã§ã³ã«ã€ããŠã¯äºåã«é²ç»ãããã®ãæŸéããLT ã®ã¿ãªã¢ãŒãã«ãŠãªã¢ã«ã¿ã€ã çºè¡šãšãã圢åŒãšãªã£ãŠããŸããã 質çå¿çã«ã€ããŠã¯ãåçºè¡šã®çµäºçŽåŸã« Discord ãã£ã³ãã«ã«çºè¡šè
ãåŸ
æ©ããŠå¯Ÿå¿ããŠããŸãããåã®ãªã³ã©ã€ã³éå¬ãšããããšã§ãã€ã³ãããã¯ã·ã§ã³åç»ãã¯ãããšããåæã§ç©æ¥µçãªãã£ãŒãããã¯ã»ã³ãã¥ãã±ãŒã·ã§ã³ã奚å±ãããŠããããã«æããŸãïŒãªããã€ã³ãããã¯ã·ã§ã³ã»ã¹ãã³ãµãŒç޹ä»ã®ååç»ã¯ãã¬ãŒã·ã§ã³ã声åªã®ç·æ¹æµçŸããã»äžç³çŽä¹ãããšããšãŠã豪è¯ã§ãããçæŸéäžã®ã³ã¡ã³ããã 18 幎ã®åŒç€Ÿããã° ãèŠãéãã¯æ¯å¹ŽæäŸã®ããã§ããããããã§ãïŒïŒã ã»ãã·ã§ã³ã«ã€ã㊠æšå¹Ž iOS13 ãšãšãã«çºè¡šããã SwiftUI ãžã®ç§»è¡ããã³ãŒãç§»è¡ã»ã¢ãžã¥ãŒã«åå²çããããžã§ã¯ãã®æé©åã«ã€ããŠã®ãããã¯ãå€ãã£ãããã«æããŸãã SwiftUI ã¯ãåŸæ¥ Storyboard ã§èšèšããŠãã UI ãã³ãŒãããŒã¹ã§èšè¿°ã§ããç»æçãªãã¬ãŒã ã¯ãŒã¯ã§ãããSwiftUI ã䜿ã£ãã¢ããªã¯ iOS13 æªæºã®ç«¯æ«ã§ã¯å©çšã§ããªããªã£ãŠããŸãããšããããã¢ããªã®å
¬é察象ãåºãã«ãã£ãŠããããå Žåã¯ãªããªãä¹ãæãã¥ããå°è±¡ã§ããã2020 幎 6 æçŸåšã§ iOS13 ã®ã·ã§ã¢ã 9 å²ä»¥äžãšãªã£ãããšã§ãã¡ããã© iOSDC ã§ã®çºè¡šãããã¯ã決ããããã«å°å
¥äœæ¥ãè¡ã£ãïŒãã€èŠåŽããïŒãšããã±ãŒã¹ãå€ãã£ãã®ããªããšæããŸãã 以äžãèŠèŽããã»ãã·ã§ã³ã®ãã¡æ°ã«ãªã£ããã®ãããã€ãã玹ä»ããããŸãã ãªãŒãã³ãœãŒã¹ã® AltSwiftUI ã®çºè¡š fortee.jp 楜倩ã®ãšã³ãžãã¢ã®æ¹ã«ãããSwiftUI ã®æäŸãããã€ãã£ãã³ã³ããŒãã³ãã«å¯Ÿå¿ãã€ã€ãiOS11 以äžã§å©çšå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ AltSwiftUI ïŒ å
¬åŒ Doc ïŒã®éçºã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã iOS12 以äžã®å¯Ÿå¿ãåããã« SwiftUI ãžã®ä¹ãæããé²ããããïŒãã€æ¬å®¶ãšéã£ãŠãªãŒãã³ãœãŒã¹ã§ããïŒäŸ¿å©ããããã§ãããå¥éãã¬ãŒã ã¯ãŒã¯ãåºæ¥äžãã£ãŠããŸããããã«ãSwiftUI ãžã®ç§»è¡å¯Ÿå¿ãžã®èŠåŽããã®ã°ããå
容ã§ããããŸããïŒã¹ãã¢ã«ããæ¥œå€©æäŸã® iOS ã¢ããªã®æ°ãèãããšä¹ãæãã³ã¹ãã倧å€ããâŠïŒã ããããèªååã§ããŸããã: note ãæ¯ããã¯ãŒã¯ãããŒå€§å
š speakerdeck.com æ¹ä¿®èŠæãäžãã£ãŠãããå®éã«æ¹ä¿®ãè¡ã£ãŠã¢ããªããªãªãŒã¹ãããŸã§ã®äœæ¥ãã§ããéãèªååããããšããã»ãã·ã§ã³ã§ããCLINICS ã§ãããèšŒææžã®æå¹æé確èªãããã·ã¥ããã®ãã¹ããããŒãžããã®ãªãªãŒã¹æºåã㯠Bitrise ã®ããªã¬ãå©çšããŠèªååããŠããŸãã äžèšã®ãããªãGitHub äžã§ã®ã¢ã¯ã·ã§ã³ïŒããã·ã¥ãããŒãžãªã©ïŒãããªã¬ãšããèªååã¯ããèã話ã§ã¯ããã®ã§ãããSlack ã®ãã¹ãã«ç¹å®ã®ã¹ã¿ã³ãã€ãããš Issue åãã¯ã¡ãã£ãšç®æ°ãããŠé¢çœããªãšæããŸããïŒæ°ãã€ããªããšè¡šèšæºãã§åããã㪠Issue ãä¹±ç«ãããã§ããïŒã Issue ããã¡ããšç®¡çããŠãããªããšãã©ãã«ã®èµ·ããããéšåã§ãããã起祚è
ãšå®è£
è
ã®éã§ããŒã«ãæµ®ããŠããŸã£ããããããžã§ã¯ãã«çŽã¥ããŠããªãã£ãããã«å¯Ÿå¿ããæŽ©ããŠããŸã£ããâŠã ãŸãããã®ã¹ã©ã€ãã§ããçµå§ææžãã®æ¿çµµããããããŠããããã£ãæå³ã§ãã³ã¡ã³ãæ¬ãçãäžãã£ãŠããã®ãå°è±¡çã§ããã 100 人ã§ã¢ããªããªãã¡ã¯ã¿ãªã³ã°ããŠèŠããŠãããæåŒ·ã® iOS ã¢ããªèšèšã«æ±ããããããš fortee.jp ã¢ããªãé·æã«éçšããŠãããšã»ãŒå¿
é ãšãªã課é¡ã§ãããªããã人ããšã«åºæºãææ§ã ã£ãããæ©èœéçºã«ããããŠå¯Ÿå¿ãåŸæåŸæã«ãªã£ããâŠãšãäœããšã€ãã話ãããèããœãŒã¹ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«é¢ããã»ãã·ã§ã³ã§ããã åãç¶æ
ã®ãœãŒã¹ã³ãŒãã倿°ã®ãšã³ãžãã¢ããªãã¡ã¯ã¿ããçµæãæ¯èŒããããšã§ããè¯ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®èãæ¹ããšã¯äœãïŒã暡玢ããå
容ã§ãã ãã¥ãŒãšããžãã¯ã®åå²ããã£ããè¡ãããšããã®ã¯ PR ã¬ãã¥ãŒã§ãšã³ãžãã¢ãå£ãé
žã£ã±ãããŠããèšãããããšã§ã¯ãããŸããããããžãã¯ã®äžã§ããã¢ããªã®ä»æ§ã«äŸåãããã®ãšããã§ãªãæ®éçãªãã®ã¯åé¢ãã¹ãããšããã¢ã€ãã¢ã¯å人çã«ã¯çŒããé±ãèœã¡ããã®ã§ããã ãŸããããã説æãããªããŒã·ã®å
·äœäŸïŒã察æŠçžæã人éã AI ããã¯ã¢ããªä»æ§ã«äŸåããããžãã¯ããããã«ç³ã眮ããããã¯æ®éçãªããžãã¯ïŒãªããŒã·ã®ã«ãŒã«ãã®ãã®ïŒãéåžžã«ããããããã£ãã§ãã ãã®ã»ããReact / Redux ã§ããã³ããšã³ãéçºãè¡ã£ãŠãã人ã«ã¯ã銎æã¿ã® Action / Reducer ã䜿ã£ãåäžæ¹åã®ããŒã¿ãããŒã®å°å
¥ãªã©ã玹ä»ãããŠããŸãã æ°èŠæ©èœéçºããã¢ãžã¥ãŒã«åå²ãå§ããŠã¿ã speakerdeck.com äžã€ã®ã¢ããªãé·æééçšãããŠãããªãã§ãè€æ°ã®æ©èœãçµ±åãããã¹ãŒããŒã¢ããªã«ãªãããšããããŸãããããªã£ãå ŽåããœãŒã¹ã³ãŒããè¥å€§å â ãã«ãã»ãã¹ããé·å€§åããšãªã£ãŠã¡ã³ããã³ã¹æ§ãäœäžããããã察çãšããŠã³ãŒããåå²ããŠãã¹ãããã«ãã®åäœãå°ããããå¿
èŠããããŸãã ãããªãã¢ããªå
šäœãã¢ãžã¥ãŒã«ã«åå²ããã®ã¯æéãããããããæ¬ã»ãã·ã§ã³ã§ã¯ãŸãç¬¬äžæ®µéãšããŠæ°èŠã«éçºããæ©èœãå¥ã¢ãžã¥ãŒã«ãšããŠå®è£
ãããã®æåŸãç¥èŠã«ã€ããŠè§ŠããããŠããŸããã ãåå²ããã¢ãžã¥ãŒã«åŽã§ã®ãµãŒãããŒãã£è£œãã¬ãŒã ã¯ãŒã¯ã®ãªã³ã¯æ¹æ³ïŒâ»ãªã³ã¯ãæ£ããè¡ããªããšããã«ãããŠåäœã¯ããã®ã«ã¢ãŒã«ã€ãã«å€±æããŠãªãªãŒã¹ã§ããªããªãïŒããªã©ã¯ãä»åŸã®éçºã«ã¢ãžã¥ãŒã«åå²ãåãå
¥ããŠããéã«åèã«ãªãããã§ãã Swift ã§å§ããéçè§£æ speakerdeck.com Swift ãœãŒã¹ã³ãŒãããã®æ§ææšã®çæãè§£æãè¡ãã©ã€ãã©ãª SwiftSyntax ã®ç޹ä»ãšããããçšãããœãŒã¹ã³ãŒãéè€æ€åºæ©èœã®å®è£
ã«ã€ããŠã®ã»ãã·ã§ã³ã§ããã æ®æ®µ Xcode ãå§ããšãã IDE ã§éçºããŠãããšãã³ãŒãéè€ãäžèŠãªããŒã«ã«å€æ°ãåã Nullable ã®äžäžèŽã«å€æ°ãªãã¡ã¯ã¿ãªã³ã°âŠçã
ã®äŸ¿å©ãªæ©èœãæ°è»œã«äœ¿ããŠããŸããŸããããã®è£ã®åäœãæ¹ããŠäžã€ãã€å
·äœçã«è¿œã£ãŠãããšããã®ããããã¿ãèº«ã«æã¿ãŸãâŠã éçè§£æãã®ãã®ã¯ Swift ã«éããæ§ã
ãªèšèªã®ãœãŒã¹ã³ãŒãã«å¯ŸããŠé©çšã§ãããããã¯ã§ã¯ããã®ã§ãããæ®æ®µäœæ°ãªã䜿ã£ãŠããŸã IDE ã®æ©èœã«ã€ããŠèããããæ©äŒã«ãªã£ãããã玹ä»ãããŠããã ããŸããã ãŸãšã ã¡ããã©æ¥åã§ã iOS ã¢ããªéçºãæ
åœããŠããããšããããè峿·±ãç¥èŠãåŸãããããçµéšãšãªããŸããããŸããäºåé²ç»åœ¢åŒã«ãªã£ãããšã§çºè¡šã®æ§æãããç·ŽãããçµæãšããŠèããããïŒçæ§ããªãæ°ãã€ããŠãã£ããçºå£°ãããŠããŸããïŒãåæ§ã®ããçºè¡šãå€ãã£ãããã«æããŸãã ä»åãåã®ãªã³ã©ã€ã³ã§ã®éå¬ãšããããšã§ãéå¶å§å¡äŒã®çæ§ããããããšèŠåŽãããŠããã£ãããããã§ããããã ããã®ç²æãã£ãŠãåœæ¥ã®é²è¡ã¯ã¹ã ãŒãºã§ãäŒå Žã¯ãšãŠãçãäžãã£ãŠããŸãããé¢ä¿è
ã®çæ§ãæ¬åœã«ãç²ãæ§ã§ããã æ
å¢ãèžãŸããæ¥å¹ŽåºŠã®éå¬å¯åŠã»åœ¢åŒã¯æªå®ãšã®ããšã§ãããããªã³ã©ã€ã³ã»å¯Ÿé¢ã®ããããã®è¯ããåãå
¥ãã€ã€ãããå€ãã®äººãåå ã§ãã圢æ
ã«ãªã£ãŠãããšãããªãšæããŸãã å
¬åŒ YouTube ãã£ã³ãã« ã§éå»ã®çºè¡šãèŠèŽã§ããŸãã®ã§ããèå³ã®ããæ¹ã¯ãã²ã©ããïŒä»å¹Žã®çºè¡šåãäžã¶æã»ã©ãããå
¬éããããšã®ããšã§ããïŒã ãŸãã¡ãã¬ãŒã§ã¯ iOS / Android ãã€ãã£ãã¢ããªéçºãšã³ãžãã¢ãåéããŠããŸããèå³ãããæ¹ããã²ãæ°è»œã«ã話ããŸããã! www.medley.jp
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã https://www.medley.jp/jobs/
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
ããã«ã¡ã¯ã ãžã§ãã¡ãã¬ãŒ ã®éçºããŒã ã§ãšã³ãžãã¢ãããŠããæ°å±
ã§ãã ã¯ããã« 2020 幎 4 æã«ãæ°åãšã³ãžã㢠3 åãå
¥ç€ŸããŸããã å
¥ç€ŸåŸã¯æ°åãšã³ãžãã¢ç ä¿®ã宿œããå
æ¥ 8 æ 25 æ¥ã®æçµå ±åäŒããã£ãŠçµäºããŸããã ã³ãããŠã€ã«ã¹ã®åœ±é¿ã§å
¥ç€Ÿéããªããã«ãªã¢ãŒãå€åãšãªããäžæ
£ããªãšããããããŸããããæ¬å¹ŽåºŠã®ç ä¿®ã®åãçµã¿ã玹ä»ããŸãã 2020 幎床æ°åãšã³ãžã㢠ç ä¿®ã®æŠèŠ ã¡ãã¬ãŒã§ã¯æšå¹ŽåºŠããæ°åãšã³ãžãã¢ãè¿ããŠãããåãããŠç ä¿®ãéå§ããŸããã åããŠã®ç ä¿®ãã©ã®ãããªèŠç¹ã§èšç»ã»å®æœãããã«ã€ããŠã¯ãæšå¹Žå¹³æšããã¡ãã«ãŸãšããŠããŸãã 2019 幎床ãšã³ãžãã¢æ°åã®ç ä¿®ã«ã€ã㊠- Medley Developer Blog ä»å¹Žã¯äººäºéšã®ãååãããã ããªãããæšå¹Žã®å
容ãå°ãã¢ããããŒãããŠè¡ããŸããã ç ä¿®ã®ç®çã¯ã æ°åã¡ã³ããŒãåã空éã§äºãã«åºæ¿ãåããªããã瀟äŒäººãžã®æè転æãã¯ãããæ¥åéè¡ã«å¿
èŠãšãªãåºç€ç¥èãšã¹ãã«ãç¿åŸããããš ã§ãã ç ä¿®ã¯ä»¥äžã® 4 ã€ã®ãã§ãŒãºã«åºåã£ãŠè¡ããŸããã ç ä¿®ã®ãã§ãŒãº ç ä¿®ã®å
容 ãããã 4 ã€ã®ãã§ãŒãºæ¯ã«å
容ã玹ä»ããŸãã ãã§ãŒãº 1ïŒç€ŸäŒäºº&ã¡ãã¬ãŒåºç€ç ä¿® 1. ãªãªãšã³ããŒã·ã§ã³ ã¡ãã¬ãŒã®äºæ¥ãçµç¹ã倧åã«ããŠããè¡åèŠç¯ãªã©ã®æŠèŠèª¬æ ã»ãã¥ãªãã£ç ä¿®ãšã³ã³ãã©ã€ã¢ã³ã¹ç ä¿® 2. ããžãã¹ç ä¿® ããžãã¹ãããŒç ä¿® ããžãã¹ã¹ãã«ç ä¿® ããžãã¹ã¹ã¿ã³ã¹ç ä¿®ïŒå€éšç ä¿®ïŒ ãã§ãŒãº 1 ã§ã¯ãå»çãã«ã¹ã±ã¢ã®æªæ¥ãã€ãããã¡ã³ããŒã®äžå¡ãšããŠå€§åã«ããŠæ¬²ããããšãåŠã¶ãã§ãŒãºã§ããã 瀟äŒäººãšããŠã®æäœéã®ãããŒãã¹ã¿ã³ã¹ã¯å¿è«ã§ãããã¡ãã¬ãŒã§åãäžã§åå°ãšãªããã€ã³ããããã§åŠã³ã å»çãã«ã¹ã±ã¢åéã®èª²é¡ã解決ããäžå¡ ãšããŠå
±ã«ãããã¯ããäœãããã®ããŒã¹ãç¯ãããšæããŸãã ãã§ãŒãº 2ïŒãšã³ãžãã¢åºç€ç ä¿® 1. éçºåºç€ 1 è¬çŸ©ãã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ã ãžã§ãã¡ãã¬ãŒ ãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æ Ruby on RailsïŒä»¥äž RailsïŒã®åºç€ãã¬ãŒãã³ã° 2. éçºå®è·µ ããŒã éçºäœéš 3. éçºåºç€ 2 æžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒ ããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿® äžéå ±åäŒã®æºåãšå®æœ ãã§ãŒãº 2 ããéçºã®ç ä¿®ãã¹ã¿ãŒãããŸããã éçºåºç€ 1 éçºã®ç ä¿®ã«å
¥ãåã«ããšã³ãžãã¢ã®å·è¡åœ¹å¡ ç°äžãããã¡ãã¬ãŒãæ±ãããšã³ãžãã¢ãšã¯ããšããããŒãã§è¬çŸ©ãè¡ããŸãããã¡ãã¬ãŒãã©ããããšã³ãžãã¢ãæ±ããŠããã®ããç®æããšããã®èŠç¹åãããè¡ããããããè¡ãç ä¿®ã«å¯Ÿããæèãåãçµã¿ã®è³ªãäžããããšãç®æããŸããã ã¡ãã¬ãŒãæ±ãããšã³ãžãã¢åã«ã€ããŠã¯ CTO 平山ã®èšäºã«ã詳ããæžããŠããŸãã ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž: THE ãšã³ãžã㢠ãã®åŸãžã§ãã¡ãã¬ãŒãš CLINICS ã®äºæ¥ã»ãããã¯ãã«ã€ããŠã®æŠèŠèª¬æãRails ã®åºç€ãã¬ãŒãã³ã°ãè¡ããŸãããã¡ãã¬ãŒã®ãããã¯ã㯠Rails 補ã§ããRails ããŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«æ
£ããŠããªãæ°åã¡ã³ããŒã¯ãRails ã®åºç€ãã¬ãŒãã³ã°ã§ Ruby on Rails ãã¥ãŒããªã¢ã« ã䜿ã£ãŠåºç€ããã¿ã£ã¡ãåŠã³ãŸãã Ruby on Rails ãã¥ãŒããªã¢ã«ã®é²ãæ¹ ããã§å€§åãªããšã¯ãæŒ ç¶ãšã²ãããåçµããŠãã¥ãŒããªã¢ã«ãé²ããã®ã§ã¯ãªããæ¯æ¥ã®ãã£ãŒãããã¯äŒã§ãã£ãããã®æ¥ã®é²æãåŠã³ãå
±æããäžæç¹ã¯ã¡ã³ã¿ãŒã«è³ªåããŠãããããã«ããããšã§ãã ã¡ã³ã¿ãŒã¯ãæ°åã¡ã³ããŒãçè§£ãæµ
ããŸãŸé²ããŠãããçè§£ããŠããŠæ¬²ãããšãããããå æžã«ãªã£ãŠãããé²ãæ¹ãåŠã³ã®æ¹åæ§ããºã¬ãŠãå Žåãªã©ã¯ã¢ããã€ã¹ãå
¥ããŠè»éä¿®æ£ããããšãå¿æããŸããã ãŸããå®éã®éçºã§ã¯ããã ãããšãã£ãå®åãèžãŸããã¢ããã€ã¹ããæèããŠããããšãäŒããŠãããŸããã 20 æ°å S ããã®ææ³ ãæ¯æ¥ã®ãã£ãŒãããã¯äŒã®äžã§ããã®æ¥åŠãã æè¡ããžã§ãã¡ãã¬ãŒã§ã¯ã©ã®ããã«å©çšãããŠããã®ããã©ããã£ãããšã«çæããŠå©çšããŠããã®ããªã©ã確èªã§ããã®ã§ãçŸå Žã®äººã®æèŠãå°ããã€ç¥ãããšãã§ãããã æ°åã¡ã³ããŒã¯æ¯æ¥ãªãºã è¯ã鲿ãåºããã¡ã³ã¿ãŒã¯æ°åã¡ã³ããŒã®ãã©ããŒãšåŒãäžããæèããææãæå€§åã§ããããåªããŸããã éçºå®è·µ ç¶ããŠéçºå®è·µã§ã¯ããŒã éçºãè¡ããŸãããååãŸã§ã¯åèªåå¥ã«é²ããŠããŸããããããã§ã¯ãžã§ãã¡ãã¬ãŒã«é¢ãã課é¡è§£æ±ºãç®çãšãããããžã§ã¯ãã«å¯ŸããŠãããŒã ã§åãåãç ä¿®ã§ããã éçºå®è·µã®ç®çãšéæãã¹ãããš å®åã§ã¯ããŒã éçºãåºæ¬ãšãªããããŒã ã¡ã³ããŒãšã®ååã¯å¿
é ã§ããåŠçæä»£ã«æ¥åã¬ãã«ã®ããŒã éçºãçµéšããŠããã®ã¯çšã§ãããå®åã«å
¥ãåã«ããŒã ã§ãããžã§ã¯ãæšé²ãããšã¯ã©ãããããšããç¥ãã®ã¯ããšãŠã䟡å€ããããšæããŸãã å ããŠãããŒã ã§èª²é¡ãã©ã解決ããŠããã®ãããæ°åã¡ã³ããŒå士ã§è©±ãåã£ãŠæ±ºããå¿
èŠãããã®ã§ã課é¡è§£æ±ºåãé€ããããšæããŸãã ä»åã¯ãããã¿ã€ããäœã£ãŠææçºè¡šãããšãããŸã§ã§ãããããããžã§ã¯ãæšé²ã«ãããŠã¯ã¹ã±ãžã¥ãŒãªã³ã°ãèŠä»¶å®çŸ©ãåçš®èšèšãéçºãããŒãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã®æŽåãå®è£
ããã¹ãããªã©ãªã©ãããããšã¯å°œããŸããã ãŸãããã®ããã»ã¹ã®äžã§å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠäžå¯æ¬ ãšãªãã®ã§ãæ°åã¡ã³ããŒéã®ããŒã ã¯ãŒã¯ãåäžãããäºãã®ããšãæŽã«ç¥ãããšãã§ãããšæããŸãã ãã®æ®µéã§ãããŒã ã§ãããžã§ã¯ããæšé²ããããšã®å
šäœæãç¥ãããããžã§ã¯ãæšé²ã®èŠæ©èŠéãå®äœéšã§ããã®ã¯å€§ããªçµéšå€ã«ãªã£ããšæããŸãã 20 æ°å O ããã®ææ³ ãåæ©èœã®åœ±é¿ãäºãã«åããªãããã«ãã©ã³ãã现ååãããã©ã³ãæŠç¥ã GitHub ãçšããã³ãŒã管çã«ã€ããŠçè§£ã§ãããäžæ¹ã§ãUI ãèããéã«ããŒã ã®åã¡ã³ããŒã®èªèã®ãºã¬ãçããããšããåºç€ã¯åã¡ã³ããŒã®é²æã®è©³çŽ°ãææ¡ã§ããŠããªãã£ãããšããå ±ã»é£ã»çžã®éèŠæ§ãåèªèãããã 20 æ°å T ããã®ææ³ ãåããŠã®ããŒã éçºã§ãã£ãããšãããå®è£
ã®åºç€ã¯ãã©ã®ãã¡ã€ã«ãªãç·šéããŠãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ããªãã®ããåäœç¢ºèªã®ããã®ç»é¢ãäœããã¡ã€ã«ã¯èªç±ã«äœæããŠè¯ãã®ããã©ã®ããŒãã«ããé¢ä¿ããä»ã®ããŒãã«ã®æ
å ±ãå«ããæ
å ±ãååŸãããããªã©ã«æ©ãã§ãããä»ã«ãªã£ãŠæ¯ãè¿ããšããŒã å
ã§è©±ãã°è§£æ±ºããããšã«å¯ŸããŠãæè¡çã«ãå¿ççã«ãé£ãããæãããã ###éçºåºç€ 2 ãã§ãŒãº 2 æåŸã®éçºåºç€ 2 ã§ã¯ãæžç± ãWeb ãæ¯ããæè¡ -HTTPãURIãHTMLããã㊠RESTã ã®èŒªèªäŒãè¡ããŸããããã£ãšåã®ãã§ãŒãºã§ã®å®æœãæ€èšããŸããããéçºåºç€ 1 ãšéçºå®è·µãçµãåŸã®æ¹ãæžç±ã®å
容ã®çŽåŸæãé«ããªãã ãããšãã倿ã§ããã®æ®µéã§ã®å®æœãšãªããŸããã ãã®åŸãäžéå ±åäŒã«åããããã¥ã¡ã³ããŒã·ã§ã³ç ä¿®ãšãã¬ãŒã³ããŒã·ã§ã³ç ä¿®ãè¡ããŸãããä»äºãé²ããŠããäžã§ã¯ãèæ¯ãç®çãæ£ããã¹ããŒã¯ãã«ããŒãžå
±æããªããé²ããŠããããšãå¿
èŠã§ãäŒãããããšãé©åã«æç« ãšããŠæŽçããä»è
ãžåãããããäŒããŠããããšãæ±ããããŸããäžéå ±åäŒã§ã¯ããããã£ãããšãæèããªãããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãããããã¯ãéçºå®€ã®å®€é·ãšå¯å®€é·ãã¡ã³ã¿ãŒé£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã ãã§ãŒãº 3ïŒäºæ¥éš OJT 1.代衚åç· åœ¹å»åž« è±ç°ã®è¬çŸ© æ¥æ¬ã«ãããå»çå¶åºŠã®èª²é¡ãšããã«å¯Ÿããã¡ãã¬ãŒã®äœçœ®ä»ãã«ã€ããŠã®è¬çŸ© 2.ãžã§ãã¡ãã¬ãŒéçº OJT ãžã§ãã¡ãã¬ãŒã®å®éã®éçº Issue ã«å¯Ÿå¿ãããžã§ãã¡ãã¬ãŒã®éçºããã»ã¹ãäœéš ãã§ãŒãº 3 ã®æåã¯è±ç°ä»£è¡šã®è¬çŸ©ãåããŸãããåºç€çãªç ä¿®ãçµãããžã§ãã¡ãã¬ãŒéçº OJT ã«å
¥ãåã«ã¡ãã¬ãŒç€Ÿã®ç€ŸäŒçæçŸ©ãªã©ãæ¹ããŠä»£è¡šããäŒããŠããã ããŸããã ç¶ããŠããžã§ãã¡ãã¬ãŒéçº OJT ã¯ä»¥äžã®çããæã£ãŠé²ããŸããã ãžã§ãã¡ãã¬ãŒéçº OJT ã®çã å®éã«è¡ã£ãããšã¯ãæå§ãã«å°ããäžå
·åç³» Issue ã®å¯Ÿå¿ã«åãçµãã åŸããµãŒããŒã¬ã¹ãã³ã¹æ¹åã® Issue ã«åãçµããšãããã®ã§ããã ãµãŒããŒã¬ã¹ãã³ã¹ã®æ¹åã¯ã1 人 1 ç»é¢ãæ
åœããããããã¡ã€ã«ããŒã«ã§åæ â æ¹åã§ããããªç®æãèª¿æ» â æ¹åæ¹éã®æ€èš â ææ¡ â å®è£
â ã¬ãã¥ãŒ â ãªãªãŒã¹ããšãããµã€ã¯ã«ãåããŸããã 1 ã€ç®ã® Issue 察å¿ã§ãå¿æããããšã§ãããèšããããã®ãå®è£
ããã®ã§ã¯ãªãã ãã課é¡ã解決ããããã«ã©ããããè¯ãããèªåã§äž»äœçã«èããããšãéèŠããŸãããå®è£
åãšåãããã課é¡è§£æ±ºåã倧åã«ããŠããããã§ãã ãšã¯ããææãäœãåºããªããšããã®ã¯ã粟ç¥è¡çäžè¯ããªãã®ã§ãæ¥ã
ã®æäŒãšå€äŒã«ãŠé²æãç¶æ³ããã£ãã確èªããªããé©å®ãã©ããŒãã€ã³ããããè¡ãããã³ãã«ãªããããªéå» Issue ã®ãªã³ã¯ãæž¡ããŠåèã«ããŠããã£ãããã¡ã³ã¿ãŒã®é©åãªããã¯ã¢ãããå¿
èŠã§ãã ä»åã® OJT ãéããŠå®åãç¥ãããšã§ãå®éã«ãšã³ãžãã¢ãšããŠä»äºãããã€ã¡ãŒãžã沞ããåæã«ä»äºãããäžã§è¶³ããªãããšãæç¢ºã«ãªããŸããèªåã®èª²é¡ãšåãåãããšã§ãçŽè¿ã®èªèº«ã®åŠç¿ãã©ã³ã®è»éä¿®æ£ãã§ããŸãã 課é¡ã¯ç°¡åãªãã®ã§ã¯ãããŸããã§ããããæçµçã« 1 人 1 ã€ä»¥äžã®ãµãŒããŒã¬ã¹ãã³ã¹æ¹å PR ããªãªãŒã¹ããããšãã§ããŸããã S ããã®ææ³ ãé床ããã©ãŒãã³ã¹ã®æªãã³ãŒãã«å¯Ÿããå
èŠããªããžã§ã¯ããçæããããŠããªãããç¡é§ã«éä¿¡ãèµ°ãããŠããªãããªã©ãåŠã¹ããã O ããã®ææ³ ãIssue ãæ¬è³ªçã«è§£æ±ºããã¡ãã¬ãŒã®éçºå§¿å¢ã«ã€ããŠåŠãã ãIssue ã衚é¢çã«è§£æ±ºããã®ã§ã¯ãªããèæ¯ãç®çãé¢é£ããã³ãŒããªã©ã®äžæç¹ã調æ»ããååã«çè§£ã»çŽåŸããäžã§ä¿®æ£ããããšã®æèä»ããã§ããããŸããIssue ã«é¢é£ããäžéšåã®ã³ãŒããä¿®æ£ããã°è¯ããšããçãèŠéãæãããä¿®æ£ã«ãã圱é¿ç¯å²ãèæ
®ããäžã§å
šäœã®æé©åãèããããšãéèŠã§ãããšåŠãã ãã ãã§ãŒãº 4ïŒæçµå ±å 1. æçµå ±åäŒ æçµå ±åäŒã®æºåãšå®æœ æåŸã®ãã§ãŒãº 4 ã§ã¯ããããŸã§ã®ç ä¿®ã§ãã£ãŠããããšãææãåŠã³ãã¬ããŒãã«ãŸãšãã圹å¡é£ã®åã§ãã¬ãŒã³ããŒã·ã§ã³ããŠå ±åããŸããã 圹å¡é£ã®åãªã®ã§ç·åŒµã¯æé«æœ®ã«ãªããŸãããèªåéãç ä¿®ãéããŠäœãåŸãŠã©ãæé·ããããä»åŸã©ããããšã³ãžãã¢ãç®æããŠããã®ãããªã©ã圹å¡é£ã®åã§ã¢ããŒã«ãã貎éãªæ©äŒãšãªããŸããã 1 人 10 åã®æ å
ã§åœ¹å¡é£ã«ã©ãããæ
å ±ãã©ããã衚çŸã§ãã¬ãŒã³ããŒã·ã§ã³ããããèããæ©äŒã«ããªã£ãã®ã§ãæ
å ±æŽçåã衚çŸåãå¹ãããå Žã«ããªããŸããã ãããã« 2020 å¹ŽåºŠã®æ°åãšã³ãžãã¢ç ä¿®ãç¡äºçµäºããããšãã§ããŸãããæ¹ããŠãæ°åã¡ã³ããŒã®ã¿ãªãããé¢ä¿è
ã®ã¿ãªããæ¬åœã«ãç²ãæ§ã§ããã æ¯ãè¿ããšãã¡ãã¬ãŒç€Ÿå¡ãšããŠã®ãã€ã³ããéçºã®åºæ¬çãªããšããã£ããã€ã³ããããã€ã€ãæ°åã¡ã³ããŒãäž»äœçã«èª²é¡è§£æ±ºã«åãçµãç ä¿®ãã§ããããã«æããŸãã å¿
èŠãªæè¡ã¹ã¿ãã¯ã 1 ãã 10 ãŸã§æåäžå¯§ã«è³æã«èœãšã蟌ã¿ãè¬çŸ©åœ¢åŒã§è¡ãç ä¿®ã身ã«ãªãããšã¯å€ãã§ããã ã¡ãã¬ãŒã®ç ä¿®ã®ãããªèª²é¡è§£æ±ºãå®äœéšããç ä¿®ã¯ããå®åã«ç¹ããå®è·µçãªç ä¿®ã ãšæããŸãã å°ãããŒããªé¢ããããããããŸãããããã®ãããªç ä¿®ãä¹ãè¶ããå»çãã«ã¹ã±ã¢åéã®èª²é¡è§£æ±ºã«åãçµã¿ããåŠçãšã³ãžãã¢ã®ã¿ãªãããå°ãã§ãèå³ãæã£ãŠããã ãããšå¹žãã§ãã ãã¡ããäžéãšã³ãžãã¢ã®æ¹ããã²ãæ°è»œã«ã話ãããŸãããã åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
èªå·±çŽ¹ä» æ ªåŒäŒç€Ÿã¡ãã¬ãŒã®ãšã³ãžãã¢éªæ¬ã§ãã 9 æã«å
¥ã£ãŠãæãæ¥ãç¶ãäžãçããã¯ããããéããã§ããããã ååã®ããã°ã§ãæžããŸãããç§ã¯éç芳æŠïŒèå
ïŒãè¶£å³ã§ãæ¯æ¥ã®è©Šåçµæã«äžåäžæããŠããŸãã ãã®ããã°ã®å·çæç¹ã§ã¯ã»ã»ãªãŒã°ã¯éŠäœå·šäººã«ããžãã¯ãç¹ç¯ããæ®è©Šå 50 ãåã£ãç¶æ³ã§ã®ã²ãŒã å·® 10ãåªåãç®æãéªç¥ã«ãšã£ãŠã¯å³ããç¶æ³ãšãªããŸããããæ®ãçŽæ¥å¯Ÿæ±ºããã¹ãŠåãŠã°å¯èœæ§ã¯èŠããŠããã¯ããããã¯è«Šããã«å¿æŽããããšæããŸãã æ¬¡ã®èšäºãæžãé ã«ã¯äœããã®æ±ºçãçããŠãããšæããŸãã®ã§ããã®æã«ã¯åã³ã®ã¡ãã»ãŒãžãæžããäºãé¡ã£ãŠããŸãã ã¯ããã« çªç¶ã§ãããçãã㯠Fargate ã䜿ãããªããŠããŸããïŒ ä»ãŸã§ ECS(EC2)ã§ã®éçšãã¡ã€ã³ã§ãããããžã§ãã¡ãã¬ãŒã®ã·ã¹ãã ã§ã Fargate ã«è§Šããæ©äŒãå¢ããŠããŸããã çè
èªèº«ã¯åããŠã® Fargate ã§ããããEC2 ã®ååšãç¡ããªãããšã«äžæè°ãªæèŠãèŠãã€ã€ãã管çãããã®ãæžã£ãŠéçšã楜ã«ãªã£ããšå®æããŠããŸãã ããããEC2 ãç¡ããªã£ãäºã«ãããµãŒãå
ã«ã¿ãŒããã«ã§å
¥ãææ®µã倱ããŸããã å
¬åŒã® ã¬ã€ã ã§ã¯ 質åïŒïŒã³ã³ããã®äžã« ssh ã docker exec ã§å
¥ãããšã¯åºæ¥ãŸããïŒ ãã¡ãçŸç¶ãµããŒãããŠãããŸããããã³ã³ããã¯ãŒã¯ããŒãã§ã¯ã åäžã®ç°å¢ã§ãã£ãããã¹ããè¡ã ãããšãã ãã°ãå€éšã«å
šãŠåºã ãããšããã¹ããã©ã¯ãã£ã¹ãšãããŠããŠãã³ã³ããã«å
¥ãå¿
èŠæ§ãåºæ¥ãéãæžããæ¹ãå°æ¥çã«ã奜ãŸããã§ãã ãšãäºåã«ãã¹ããååã«å®æœãããããã°ã¯(S3 ã CloudWatchLogs ãªã©)å€éšã«åºåããã ããåºæ¥ãŠããã°å
¥ãå¿
èŠãç¡ãã¯ããšèšèŒãããŠãããã®ã®ã»ã»ã»å¿é
æ§ãªèªåã¯äžæž¬ã®äºæ
ãçºçããæã®äºãèããŠãµãŒãã«å
¥ãææ®µãæ±ããŠããŸããŸãã ããã§ä»£æ¿ææ®µã暡玢ããŠããæã SessionManager ã䜿ãã°å¯èœãšã®æç®ãèŠã€ããŸããã ãã§ã« SessionManager èªäœã¯ EC2 ã«å¯ŸããŠéçšãè¡ã£ãŠããããå°å
¥ã®æ·å±
ã¯äœããšèãããã®ææ®µãæ¡çšããããšã«ããŸããã Session Manager ãšã¯ïŒ Session Manager ãšã¯ AWS ã® Systems Manager ãµãŒãã¹ã® 1 æ©èœã§ãAWS äžã§ç®¡çããŠãããµãŒãïŒãããŒãžãã€ã³ã¹ã¿ã³ã¹ïŒã«å¯ŸããŠã¿ãŒããã«ã®ã¢ã¯ã»ã¹ãå¯èœã«ãããã®ã§ãã ã¿ãŒããã«ãžã®ã¢ã¯ã»ã¹ææ®µã¯ãããããææ®µã ãš SSH ããããŸãã ãã®æ¹æ³ã¯ SSH ããŒããå€éšã«éæŸããå¿
èŠãããããæ»æã®å¯Ÿè±¡ã«ãªãããããããŸã奜ãŸãããããŸããã ããã«æ¯ã¹ãŠ Session Manager 㯠SSH ããŒãã®éæŸã¯äžèŠã§ãµãŒãããèŠãŠã¢ãŠãããŠã³ãæ¹åã® HTTPS éä¿¡ã®ç¢ºä¿ã§æžãçºãå€éšããã®æ»æãåããå®å
šã«ã¢ã¯ã»ã¹çµè·¯ã®ç¢ºä¿ãå®çŸã§ããŸãã â»éä¿¡çµè·¯ã®ç¢ºä¿ä»¥å€ã«ã IAM ããŒã«ã®èšå®ãªã©ãå¿
èŠãšãªããŸãã詳ãã㯠ãã¡ã ãåè ãAWS äžã§ç®¡çããŠãããµãŒãããšå
ã«èšèŒããŸãããããã®ãµãŒã㯠EC2 ã€ã³ã¹ã¿ã³ã¹ã«éããªãã®ãæ¬èšäºã®éèŠãªãã€ã³ãã«ãªããŸãã ãªã³ãã¬ãã¹ãªãµãŒãã AWS äžã§ç®¡çãããŠããã®ã§ããã°ãSessionManager ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããäºã«ãã管ç察象ã«å«ããããšãå¯èœã«ãªãã®ã§ãã ä»å㯠EC2 ã§åããŠãã SessionManager ãšãŒãžã§ã³ãã Fargate ã§åãã³ã³ããã«ã€ã³ã¹ããŒã«ããäºã«ããã³ã³ããèªäœããµãŒããšèŠç«ãŠãŠãããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããSessionManager ã§ã¢ã¯ã»ã¹ããäºãç®æããŸãã å¯Ÿå¿ Systems Manager ã€ã³ã¹ã¿ã³ã¹æ ãã¹ã¿ã³ããŒãããã¢ããã³ã¹ãã«å€æŽãã ïŒ AWS ã³ã³ãœãŒã«ã§ã®èšå® ãªã³ãã¬ãã¹ãªãµãŒãã« SessionManager ã«ãŠã¢ã¯ã»ã¹ããå ŽåãSystems Manager ã®ãªã³ãã¬ãã¹ã€ã³ã¹ã¿ã³ã¹ãã£ã¢ã ã¹ã¿ã³ããŒãããã¢ããã³ã¹ããžãšå€æŽããå¿
èŠ ããããŸãã ãã®å€æŽäœæ¥ã¯ AWS ã³ã³ãœãŒã«ããè¡ãäºã«ãªããŸãããã¢ããã³ã¹ããžã®å€æŽã«åœãã£ãŠæ¢åã®ãããŒãžãã€ã³ã¹ã¿ã³ã¹ã«åœ±é¿ããããšã¯ãããŸããã ãã ãããã®éã®å Žåãã¹ã¿ã³ããŒãã«æ»ãéã«ã¯èæ
®ãå¿
èŠãšãªãã®ã§ ãã¡ã ãåç
§ãã ããã SSM Agent ã®ã€ã³ã¹ããŒã« ïŒ ã³ã³ããã«å¯Ÿããèšå® ããããã¯å®éã«åãã³ã³ããã«å¯Ÿããèšå®ã«ãªããŸãã AWS ã®ããã¥ã¡ã³ã æåã§ã€ã³ã¹ããŒã« SSM ãšãŒãžã§ã³ã EC2 ã§ Linux ã®ã€ã³ã¹ã¿ã³ã¹ ãåèã«ãOS ã«åã£ãæ¹æ³ã§ SessionManager ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ãè¡ããŸãã ã€ã³ã¹ããŒã«äœæ¥ã«ã¯éä¿¡ãªã©ã®æéãå¿
èŠãšãªãã®ã§ãäºåã«ã³ã³ããã€ã¡ãŒãžã«ã€ã³ã¹ããŒã«ãã圢ãšããŸããã ã³ã³ããããããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããŠç»é²ãã ïŒ ã³ã³ããã«å¯Ÿããèšå® ã³ã³ããããããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããŠç»é²ãããããã³ã³ããã®ã¹ã¿ãŒãã¢ãã(Entrypoint)ã«ãŠäžèšã¹ã¯ãªãããå®è¡ããŸãã # 1. ãã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ã®äœæ SSM_ACTIVATE_INFO = ` aws ssm create-activation --iam-role service-role/AmazonEC2RunCommandRoleForManagedInstances --registration-limit 1 --region ap-northeast-1 --default-instance-name medley-blog-fargate-container` # 2. ã¢ãŠããããããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ã®æœåº SSM_ACTIVATE_CODE = ` echo $SSM_ACTIVATE_INFO | jq -r '.ActivationCode'` SSM_ACTIVATE_ID = ` echo $SSM_ACTIVATE_INFO | jq -r '.ActivationId'` # 3. ã³ã³ããèªèº«ããããŒãžãã€ã³ã¹ã¿ã³ã¹ãžã®ç»é² amazon-ssm-agent -register -code $SSM_ACTIVATE_CODE -id $SSM_ACTIVATE_ID -region "ap-northeast-1" # 4. SessionManager ãšãŒãžã§ã³ãã®èµ·å amazon-ssm-agent & ãããã®ã³ãã³ãã«ã€ããŠã¯åè¡ããšã«èª¬æããŸã 1.ãã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ã®äœæ ãããŒãžãã€ã³ã¹ã¿ã³ã¹ç»é²ã«å¿
èŠãªã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ååŸã®ããããã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ã®ç»é²ãè¡ããŸãã åŸã
AWS ã³ã³ãœãŒã«ã«ãŠã€ã³ã¹ã¿ã³ã¹ã®èå¥ãã§ããããã«ã --default-instance-name ãªãã·ã§ã³ã«ãŠ medley-blog-fargate-container ãšããååãä»äžããŠããŸãã ãã®ã³ãã³ãã®ã¢ãŠããããã«ãŠäžèšã®ãã㪠JSON ãè¿ãããçºãäžæŠå€æ°ã«æ ŒçŽããŠããŸãã { "ActivationId" : "<<ã¢ã¯ãã£ããŒã·ã§ã³ ID>>", "ActivationCode": "<<ã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã>>" } ãŸã --iam-role ãªãã·ã§ã³ã§ãµãŒãã¹ããŒã« AmazonEC2RunCommandRoleForManagedInstances ã䜿ã£ãŠããŸãã ãã®ããŒã«ããŸã ååšããªãå ŽåãAWS ã³ã³ãœãŒã«ãããã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ãã IAM ããŒã« âãå¿
èŠãªæš©éãåããã·ã¹ãã ã®ããã©ã«ãã³ãã³ãå®è¡ããŒã«ãäœæãã«ããäœæããŠãã ããã 2. ã¢ãŠããããããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ã®æœåº åé
ã®ã¢ãŠããããããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ãåã
ã®å€æ°ã«åé¢ããŠããŸãã 3. ã³ã³ããèªèº«ããããŒãžãã€ã³ã¹ã¿ã³ã¹ãžã®ç»é² ååŸããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ãå©çšããã³ã³ããèªèº«ããããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããŠç»é²ããŸãã ç°å¢å€æ° AWS_DEFAULT_REGION ã®ããã« AWS ã® Credential ã«ãŠããã©ã«ãã® Region èšå®ããã£ãå Žåã§ãããã®ã³ãã³ãã§ã¯ãªãã·ã§ã³ã§ Region æå®ãå¿
é ãšãªãã®ã§ã泚æãã ããã 4. SessionManager ãšãŒãžã§ã³ãã®èµ·å æåŸã« SessionManager ãšãŒãžã§ã³ããèµ·åããŸãã ããã«ãã AWS ãšã®éä¿¡ã確ç«ãããSessionManager ãå©çšã§ããããã«ãªããŸãã ãã®ç¶æ
ã§ãããŒãžãã€ã³ã¹ã¿ã³ã¹ç»é¢ã«ãŠç®çã®ã€ã³ã¹ã¿ã³ã¹ãããªã³ã©ã€ã³ãã§ããã°èšå®ãå®äºã§ãã æ¥ç¶ç¢ºèª èšå®ãå®äºããã®ã§ãå®éã« SessionManager ã«ãŠæ¥ç¶ããŠã¿ãŸãã AWS ã³ã³ãœãŒã«ã®ã»ãã·ã§ã³ãããŒãžã£ããã»ãã·ã§ã³ã®éå§ãéžæããååãäºåã«ç»é²ãã medley-blog-fargate-container ã§ãããã®ãéžæããŸãã å€èŠã¯ä»ã® EC2 ãšå€ãããªã衚瀺ã§ããããã®ææ®µã§ç»é²ãããã®ã¯ã€ã³ã¹ã¿ã³ã¹ ID ã mi ããå§ãŸã ID ã«ãªããŸã(éåžžã® EC2 㯠i ããå§ãŸã ID)ã åŸã¯æ®æ®µéãã«ã»ãã·ã§ã³ãéå§ãããšã³ã³ããå
ãžã®ã¢ã¯ã»ã¹ãéå§ãããŸãã ããã§ EC2 ã®ç¡ã Fargate äžã®ã³ã³ããã«å¯ŸããŠãã¿ãŒããã«ã«å
¥ãããšãã§ããŸããã éçšããŠã¿ãŠã®ææ³ Fargate äžã®ã³ã³ããã«çŽæ¥å
¥ãããšã«ãããä»ãŸã§åºæ¥ãªãã£ã top ã³ãã³ãã«ããããã»ã¹ç¶æ
ã®ç¢ºèª df ã³ãã³ãã«ãã Disk 容éã®ç¢ºèª ãªã©ã®ç°å¢èª¿æ»ãåºæ¥ãããã«ãªããŸããã å©çšé »åºŠãå€ãèš³ã§ã¯ãããŸãããã調æ»ã®éžæè¢ãå¢ããäºã«ããæäºã®éã®æ©æå¯Ÿå¿ã«ç¹ãããããŠãããšæããŠããŸãã æ³šæç¹ ããããã¯éçšã«åœãã£ãŠã®æ³šæç¹ã«ã€ããŠæ°ç¹ç޹ä»ããŸãã æé EC2 ã§ã® SessionManager ãšéãã ãã®æ¹æ³ã§ç»é²ãããµãŒããžã® SessionManager éä¿¡ã¯æéãçºçããŸã ã æ£ç¢ºã«ã¯ ãSessionManager ãšãŒãžã§ã³ããèµ·åã AWS ãšéä¿¡ã確ç«ããŠããç¶æ
ã ã§ã®æé課éã§ SessionManager ã§ã®æ¥ç¶æç¡ã¯åããŸããã ãã£ãŠãåžžæå¿
èŠã§ã¯ãªãå Žå㯠SessionManager ãšãŒãžã§ã³ããæ¢ããŠç¯çŽããæ¹æ³ãæ€èšããŠãã ããã ã¢ã¯ãã£ããŒã·ã§ã³ããããŒãžãã€ã³ã¹ã¿ã³ã¹ããªã¹ãã«æ®ã ã³ã³ããçµäºæã§ã AWS ã³ã³ãœãŒã«ã®ãã€ããªããã¢ã¯ãã£ããŒã·ã§ã³äžèЧããããŒãžãã€ã³ã¹ã¿ã³ã¹äžèЧã«è¡šç€ºãæ®ã£ãŠããŸãããã§ãã äžèЧã®äžéã®èšèŒã¯èŠã€ãããªãã£ããã®ã®ãç¡éã«å¢ãããšãæããªãã®ã§é©æ Lambda ã䜿ã£ãŠåé€ããŠããŸãã SessionManager ã§ã®æäœã«ã€ã㊠EC2 ã€ã³ã¹ã¿ã³ã¹ã«å¯ŸããŠã® SessionManager ãšåæ§ã§ãããã»ãã·ã§ã³éå§çŽåŸã®ãŠãŒã¶ã¯ ssm-user åºå®ã«ãªãããã§ãã ç¹å®ãŠãŒã¶ã§ã®æäœãå¿
èŠãšãªãå Žåã su ã³ãã³ãã§ã®ãŠãŒã¶åãæ¿ããå¿
èŠã«ãªããŸãã ãããã« ä»åã®ããã«ã¡ãã¬ãŒã§ã¯æ°ããªæè¡ãåãå
¥ãã€ã€ããµãŒãã¹ã®å®å®ãç®çãšããæ§ã
ãªæœçãå°å
¥ããŠããŸãã ãããã£ãåãæ¹ã«èå³ãæãããæ¹ããŸãã¯äžèšãªã³ã¯ãããæ°è»œã«ã話ããŸãããïŒ åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp
èªå·±çŽ¹ä» æ ªåŒäŒç€Ÿã¡ãã¬ãŒã®ãšã³ãžãã¢éªæ¬ã§ãã 9 æã«å
¥ã£ãŠãæãæ¥ãç¶ãäžãçããã¯ããããéããã§ããããã ååã®ããã°ã§ãæžããŸãããç§ã¯éç芳æŠïŒèå
ïŒãè¶£å³ã§ãæ¯æ¥ã®è©Šåçµæã«äžåäžæããŠããŸãã ãã®ããã°ã®å·çæç¹ã§ã¯ã»ã»ãªãŒã°ã¯éŠäœå·šäººã«ããžãã¯ãç¹ç¯ããæ®è©Šå 50 ãåã£ãç¶æ³ã§ã®ã²ãŒã å·® 10ãåªåãç®æãéªç¥ã«ãšã£ãŠã¯å³ããç¶æ³ãšãªããŸããããæ®ãçŽæ¥å¯Ÿæ±ºããã¹ãŠåãŠã°å¯èœæ§ã¯èŠããŠããã¯ããããã¯è«Šããã«å¿æŽããããšæããŸãã æ¬¡ã®èšäºãæžãé ã«ã¯äœããã®æ±ºçãçããŠãããšæããŸãã®ã§ããã®æã«ã¯åã³ã®ã¡ãã»ãŒãžãæžããäºãé¡ã£ãŠããŸãã ã¯ããã« çªç¶ã§ãããçãã㯠Fargate ã䜿ãããªããŠããŸããïŒ ä»ãŸã§ ECS(EC2)ã§ã®éçšãã¡ã€ã³ã§ãããããžã§ãã¡ãã¬ãŒã®ã·ã¹ãã ã§ã Fargate ã«è§Šããæ©äŒãå¢ããŠããŸããã çè
èªèº«ã¯åããŠã® Fargate ã§ããããEC2 ã®ååšãç¡ããªãããšã«äžæè°ãªæèŠãèŠãã€ã€ãã管çãããã®ãæžã£ãŠéçšã楜ã«ãªã£ããšå®æããŠããŸãã ããããEC2 ãç¡ããªã£ãäºã«ãããµãŒãå
ã«ã¿ãŒããã«ã§å
¥ãææ®µã倱ããŸããã å
¬åŒã® ã¬ã€ã ã§ã¯ 質åïŒïŒã³ã³ããã®äžã« ssh ã docker exec ã§å
¥ãããšã¯åºæ¥ãŸããïŒ ãã¡ãçŸç¶ãµããŒãããŠãããŸããããã³ã³ããã¯ãŒã¯ããŒãã§ã¯ã åäžã®ç°å¢ã§ãã£ãããã¹ããè¡ã ãããšãã ãã°ãå€éšã«å
šãŠåºã ãããšããã¹ããã©ã¯ãã£ã¹ãšãããŠããŠãã³ã³ããã«å
¥ãå¿
èŠæ§ãåºæ¥ãéãæžããæ¹ãå°æ¥çã«ã奜ãŸããã§ãã ãšãäºåã«ãã¹ããååã«å®æœãããããã°ã¯(S3 ã CloudWatchLogs ãªã©)å€éšã«åºåããã ããåºæ¥ãŠããã°å
¥ãå¿
èŠãç¡ãã¯ããšèšèŒãããŠãããã®ã®ã»ã»ã»å¿é
æ§ãªèªåã¯äžæž¬ã®äºæ
ãçºçããæã®äºãèããŠãµãŒãã«å
¥ãææ®µãæ±ããŠããŸããŸãã ããã§ä»£æ¿ææ®µã暡玢ããŠããæã SessionManager ã䜿ãã°å¯èœãšã®æç®ãèŠã€ããŸããã ãã§ã« SessionManager èªäœã¯ EC2 ã«å¯ŸããŠéçšãè¡ã£ãŠããããå°å
¥ã®æ·å±
ã¯äœããšèãããã®ææ®µãæ¡çšããããšã«ããŸããã Session Manager ãšã¯ïŒ Session Manager ãšã¯ AWS ã® Systems Manager ãµãŒãã¹ã® 1 æ©èœã§ãAWS äžã§ç®¡çããŠãããµãŒãïŒãããŒãžãã€ã³ã¹ã¿ã³ã¹ïŒã«å¯ŸããŠã¿ãŒããã«ã®ã¢ã¯ã»ã¹ãå¯èœã«ãããã®ã§ãã ã¿ãŒããã«ãžã®ã¢ã¯ã»ã¹ææ®µã¯ãããããææ®µã ãš SSH ããããŸãã ãã®æ¹æ³ã¯ SSH ããŒããå€éšã«éæŸããå¿
èŠãããããæ»æã®å¯Ÿè±¡ã«ãªãããããããŸã奜ãŸãããããŸããã ããã«æ¯ã¹ãŠ Session Manager 㯠SSH ããŒãã®éæŸã¯äžèŠã§ãµãŒãããèŠãŠã¢ãŠãããŠã³ãæ¹åã® HTTPS éä¿¡ã®ç¢ºä¿ã§æžãçºãå€éšããã®æ»æãåããå®å
šã«ã¢ã¯ã»ã¹çµè·¯ã®ç¢ºä¿ãå®çŸã§ããŸãã â»éä¿¡çµè·¯ã®ç¢ºä¿ä»¥å€ã«ã IAM ããŒã«ã®èšå®ãªã©ãå¿
èŠãšãªããŸãã詳ãã㯠ãã¡ã ãåè ãAWS äžã§ç®¡çããŠãããµãŒãããšå
ã«èšèŒããŸãããããã®ãµãŒã㯠EC2 ã€ã³ã¹ã¿ã³ã¹ã«éããªãã®ãæ¬èšäºã®éèŠãªãã€ã³ãã«ãªããŸãã ãªã³ãã¬ãã¹ãªãµãŒãã AWS äžã§ç®¡çãããŠããã®ã§ããã°ãSessionManager ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããäºã«ãã管ç察象ã«å«ããããšãå¯èœã«ãªãã®ã§ãã ä»å㯠EC2 ã§åããŠãã SessionManager ãšãŒãžã§ã³ãã Fargate ã§åãã³ã³ããã«ã€ã³ã¹ããŒã«ããäºã«ããã³ã³ããèªäœããµãŒããšèŠç«ãŠãŠãããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããSessionManager ã§ã¢ã¯ã»ã¹ããäºãç®æããŸãã å¯Ÿå¿ Systems Manager ã€ã³ã¹ã¿ã³ã¹æ ãã¹ã¿ã³ããŒãããã¢ããã³ã¹ãã«å€æŽãã ïŒ AWS ã³ã³ãœãŒã«ã§ã®èšå® ãªã³ãã¬ãã¹ãªãµãŒãã« SessionManager ã«ãŠã¢ã¯ã»ã¹ããå ŽåãSystems Manager ã®ãªã³ãã¬ãã¹ã€ã³ã¹ã¿ã³ã¹ãã£ã¢ã ã¹ã¿ã³ããŒãããã¢ããã³ã¹ããžãšå€æŽããå¿
èŠ ããããŸãã ãã®å€æŽäœæ¥ã¯ AWS ã³ã³ãœãŒã«ããè¡ãäºã«ãªããŸãããã¢ããã³ã¹ããžã®å€æŽã«åœãã£ãŠæ¢åã®ãããŒãžãã€ã³ã¹ã¿ã³ã¹ã«åœ±é¿ããããšã¯ãããŸããã ãã ãããã®éã®å Žåãã¹ã¿ã³ããŒãã«æ»ãéã«ã¯èæ
®ãå¿
èŠãšãªãã®ã§ ãã¡ã ãåç
§ãã ããã SSM Agent ã®ã€ã³ã¹ããŒã« ïŒ ã³ã³ããã«å¯Ÿããèšå® ããããã¯å®éã«åãã³ã³ããã«å¯Ÿããèšå®ã«ãªããŸãã AWS ã®ããã¥ã¡ã³ã æåã§ã€ã³ã¹ããŒã« SSM ãšãŒãžã§ã³ã EC2 ã§ Linux ã®ã€ã³ã¹ã¿ã³ã¹ ãåèã«ãOS ã«åã£ãæ¹æ³ã§ SessionManager ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ãè¡ããŸãã ã€ã³ã¹ããŒã«äœæ¥ã«ã¯éä¿¡ãªã©ã®æéãå¿
èŠãšãªãã®ã§ãäºåã«ã³ã³ããã€ã¡ãŒãžã«ã€ã³ã¹ããŒã«ãã圢ãšããŸããã ã³ã³ããããããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããŠç»é²ãã ïŒ ã³ã³ããã«å¯Ÿããèšå® ã³ã³ããããããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããŠç»é²ãããããã³ã³ããã®ã¹ã¿ãŒãã¢ãã(Entrypoint)ã«ãŠäžèšã¹ã¯ãªãããå®è¡ããŸãã # 1. ãã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ã®äœæ SSM_ACTIVATE_INFO = ` aws ssm create-activation --iam-role service-role/AmazonEC2RunCommandRoleForManagedInstances --registration-limit 1 --region ap-northeast-1 --default-instance-name medley-blog-fargate-container` # 2. ã¢ãŠããããããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ã®æœåº SSM_ACTIVATE_CODE = ` echo $SSM_ACTIVATE_INFO | jq -r '.ActivationCode'` SSM_ACTIVATE_ID = ` echo $SSM_ACTIVATE_INFO | jq -r '.ActivationId'` # 3. ã³ã³ããèªèº«ããããŒãžãã€ã³ã¹ã¿ã³ã¹ãžã®ç»é² amazon-ssm-agent -register -code $SSM_ACTIVATE_CODE -id $SSM_ACTIVATE_ID -region "ap-northeast-1" # 4. SessionManager ãšãŒãžã§ã³ãã®èµ·å amazon-ssm-agent & ãããã®ã³ãã³ãã«ã€ããŠã¯åè¡ããšã«èª¬æããŸã 1.ãã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ã®äœæ ãããŒãžãã€ã³ã¹ã¿ã³ã¹ç»é²ã«å¿
èŠãªã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ååŸã®ããããã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ã®ç»é²ãè¡ããŸãã åŸã
AWS ã³ã³ãœãŒã«ã«ãŠã€ã³ã¹ã¿ã³ã¹ã®èå¥ãã§ããããã«ã --default-instance-name ãªãã·ã§ã³ã«ãŠ medley-blog-fargate-container ãšããååãä»äžããŠããŸãã ãã®ã³ãã³ãã®ã¢ãŠããããã«ãŠäžèšã®ãã㪠JSON ãè¿ãããçºãäžæŠå€æ°ã«æ ŒçŽããŠããŸãã { "ActivationId" : "<<ã¢ã¯ãã£ããŒã·ã§ã³ ID>>", "ActivationCode": "<<ã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã>>" } ãŸã --iam-role ãªãã·ã§ã³ã§ãµãŒãã¹ããŒã« AmazonEC2RunCommandRoleForManagedInstances ã䜿ã£ãŠããŸãã ãã®ããŒã«ããŸã ååšããªãå ŽåãAWS ã³ã³ãœãŒã«ãããã€ããªããã¢ã¯ãã£ããŒã·ã§ã³ãã IAM ããŒã« âãå¿
èŠãªæš©éãåããã·ã¹ãã ã®ããã©ã«ãã³ãã³ãå®è¡ããŒã«ãäœæãã«ããäœæããŠãã ããã 2. ã¢ãŠããããããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ã®æœåº åé
ã®ã¢ãŠããããããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ãåã
ã®å€æ°ã«åé¢ããŠããŸãã 3. ã³ã³ããèªèº«ããããŒãžãã€ã³ã¹ã¿ã³ã¹ãžã®ç»é² ååŸããã¢ã¯ãã£ããŒã·ã§ã³ã³ãŒã/ID ãå©çšããã³ã³ããèªèº«ããããŒãžãã€ã³ã¹ã¿ã³ã¹ãšããŠç»é²ããŸãã ç°å¢å€æ° AWS_DEFAULT_REGION ã®ããã« AWS ã® Credential ã«ãŠããã©ã«ãã® Region èšå®ããã£ãå Žåã§ãããã®ã³ãã³ãã§ã¯ãªãã·ã§ã³ã§ Region æå®ãå¿
é ãšãªãã®ã§ã泚æãã ããã 4. SessionManager ãšãŒãžã§ã³ãã®èµ·å æåŸã« SessionManager ãšãŒãžã§ã³ããèµ·åããŸãã ããã«ãã AWS ãšã®éä¿¡ã確ç«ãããSessionManager ãå©çšã§ããããã«ãªããŸãã ãã®ç¶æ
ã§ãããŒãžãã€ã³ã¹ã¿ã³ã¹ç»é¢ã«ãŠç®çã®ã€ã³ã¹ã¿ã³ã¹ãããªã³ã©ã€ã³ãã§ããã°èšå®ãå®äºã§ãã æ¥ç¶ç¢ºèª èšå®ãå®äºããã®ã§ãå®éã« SessionManager ã«ãŠæ¥ç¶ããŠã¿ãŸãã AWS ã³ã³ãœãŒã«ã®ã»ãã·ã§ã³ãããŒãžã£ããã»ãã·ã§ã³ã®éå§ãéžæããååãäºåã«ç»é²ãã medley-blog-fargate-container ã§ãããã®ãéžæããŸãã å€èŠã¯ä»ã® EC2 ãšå€ãããªã衚瀺ã§ããããã®ææ®µã§ç»é²ãããã®ã¯ã€ã³ã¹ã¿ã³ã¹ ID ã mi ããå§ãŸã ID ã«ãªããŸã(éåžžã® EC2 㯠i ããå§ãŸã ID)ã åŸã¯æ®æ®µéãã«ã»ãã·ã§ã³ãéå§ãããšã³ã³ããå
ãžã®ã¢ã¯ã»ã¹ãéå§ãããŸãã ããã§ EC2 ã®ç¡ã Fargate äžã®ã³ã³ããã«å¯ŸããŠãã¿ãŒããã«ã«å
¥ãããšãã§ããŸããã éçšããŠã¿ãŠã®ææ³ Fargate äžã®ã³ã³ããã«çŽæ¥å
¥ãããšã«ãããä»ãŸã§åºæ¥ãªãã£ã top ã³ãã³ãã«ããããã»ã¹ç¶æ
ã®ç¢ºèª df ã³ãã³ãã«ãã Disk 容éã®ç¢ºèª ãªã©ã®ç°å¢èª¿æ»ãåºæ¥ãããã«ãªããŸããã å©çšé »åºŠãå€ãèš³ã§ã¯ãããŸãããã調æ»ã®éžæè¢ãå¢ããäºã«ããæäºã®éã®æ©æå¯Ÿå¿ã«ç¹ãããããŠãããšæããŠããŸãã æ³šæç¹ ããããã¯éçšã«åœãã£ãŠã®æ³šæç¹ã«ã€ããŠæ°ç¹ç޹ä»ããŸãã æé EC2 ã§ã® SessionManager ãšéãã ãã®æ¹æ³ã§ç»é²ãããµãŒããžã® SessionManager éä¿¡ã¯æéãçºçããŸã ã æ£ç¢ºã«ã¯ ãSessionManager ãšãŒãžã§ã³ããèµ·åã AWS ãšéä¿¡ã確ç«ããŠããç¶æ
ã ã§ã®æé課éã§ SessionManager ã§ã®æ¥ç¶æç¡ã¯åããŸããã ãã£ãŠãåžžæå¿
èŠã§ã¯ãªãå Žå㯠SessionManager ãšãŒãžã§ã³ããæ¢ããŠç¯çŽããæ¹æ³ãæ€èšããŠãã ããã ã¢ã¯ãã£ããŒã·ã§ã³ããããŒãžãã€ã³ã¹ã¿ã³ã¹ããªã¹ãã«æ®ã ã³ã³ããçµäºæã§ã AWS ã³ã³ãœãŒã«ã®ãã€ããªããã¢ã¯ãã£ããŒã·ã§ã³äžèЧããããŒãžãã€ã³ã¹ã¿ã³ã¹äžèЧã«è¡šç€ºãæ®ã£ãŠããŸãããã§ãã äžèЧã®äžéã®èšèŒã¯èŠã€ãããªãã£ããã®ã®ãç¡éã«å¢ãããšãæããªãã®ã§é©æ Lambda ã䜿ã£ãŠåé€ããŠããŸãã SessionManager ã§ã®æäœã«ã€ã㊠EC2 ã€ã³ã¹ã¿ã³ã¹ã«å¯ŸããŠã® SessionManager ãšåæ§ã§ãããã»ãã·ã§ã³éå§çŽåŸã®ãŠãŒã¶ã¯ ssm-user åºå®ã«ãªãããã§ãã ç¹å®ãŠãŒã¶ã§ã®æäœãå¿
èŠãšãªãå Žåã su ã³ãã³ãã§ã®ãŠãŒã¶åãæ¿ããå¿
èŠã«ãªããŸãã ãããã« ä»åã®ããã«ã¡ãã¬ãŒã§ã¯æ°ããªæè¡ãåãå
¥ãã€ã€ããµãŒãã¹ã®å®å®ãç®çãšããæ§ã
ãªæœçãå°å
¥ããŠããŸãã ãããã£ãåãæ¹ã«èå³ãæãããæ¹ããŸãã¯äžèšãªã³ã¯ãããæ°è»œã«ã話ããŸãããïŒ åéã®äžèЧ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã®æ¡çšæ
å ±ã¯ãã¡ãããã確èªãã ããã www.medley.jp