ããã³ããšã³ãéçºç°å¢ã»èšèªã»ãã¬ãŒã ã¯ãŒã¯ã®éžå®åºæºã©ãããŠãïŒââé²åãç¶ããUXãšDX
ãã¢ãã³ããã³ããšã³ãå匷äŒïœé²åãç¶ããUXãšDXïœãã7æ23æ¥ã«éå¬ãæ¬ã€ãã³ãã«ã¯ããã³ããšã³ãéçºã§è±å¯ãªçµéšãèªããçŸåœ¹ãšã³ãžãã¢ããããã¯ããããŒãžã£ãŒ3åãç»å£ãããããã³ããšã³ãéçºç°å¢ã®å€é·ãªãã³ã«ãèšèªããã¬ãŒã ã¯ãŒã¯ã®éžå®åºæºãããã«ã¯ããã³ããšã³ããšã³ãžãã¢ã®åããããç°å¢æ§ç¯ãšãã£ãããŒããªã©ã«ã€ããŠãããã«ãã£ã¹ã«ãã·ã§ã³ãéããŠæèŠäº€æãQïŒAãè¡ããããèšèªããã¬ãŒã ã¯ãŒã¯ãäœã䜿ã£ãŠãïŒ
ãªãŒããã³ã°ã§åå è ã«ãã䜿ãèšèªãã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªãªã©ã«ã€ããŠèšãããšãããVue.jsã73åãšçŽåæ°è¿ããæ¬¡ãã§JavaScriptãReactã28åãã€ãjQueryã25åãAngularJSããšTypeScriptã10åãã€ããã®ä»ã§ãã£ãã
ã€ãã³ãåé ã§ã¯ãã©ã¯ã¹ã«æ°Žå³¶å£®å€ªæ°ãfreeeå è€æ §æ°ããµã€ããŠãºå°æåŸ¹æ°ããå人ã®ãã£ãªã¢ãªãã³ã«äŒç€Ÿã»ãµãŒãã¹ïŒãããã¯ãïŒã®ç޹ä»ãè¡ããããä»åã¯ããã®åŸã®ããã«ãã£ã¹ã«ãã·ã§ã³ãšåãããŠã¬ããŒãããã
èªç€ŸãµãŒãã¹ã§ã¯ã©ã®ãããªããã³ããšã³ãæè¡ã䜿ã£ãŠããã
æåã®ããŒãã¯ããèªç€ŸãµãŒãã¹ã§ã¯ã©ã®ãããªããã³ããšã³ãæè¡ã䜿ã£ãŠããããããå€é·ããéžå®åºæºïŒæ°æè¡ã䜿ãããšã«å¯ŸããèŠè§£ïŒãããšã«åããŠç޹ä»ããŠããã
â²freeeæ ªåŒäŒç€Ÿ 人äºåŽåéçºããŒã ã§ãšã³ãžãã¢ãåããå è€æ
§æ°
ã倿ã
å è€ïŒã人äºåŽåfreeeããããŒã³ããããã®ã2013幎ã®12æã§ãåœæã®åæ®ãšèšããŸããããã®ãšãæµè¡ã£ãŠããèšèªãç°å¢ããã®ãŸãŸçŸåšã«è³ããŸã§äœ¿ã£ãŠããç¶æ³ã§ãã
ãã ãããããã®èŠæš¡æã¯å€ãã£ãŠããŠããŸããä»ã§ã¯JavaScriptã1000ãè¶ ããŠããŠãSassïŒscssïŒã365ãCoffeeScriptã275ãšããç¶æ³ã§ãããç§ãfreeeã«å ¥ç€Ÿãã2幎åãããåã¯ãCoffeeScriptã®æ¹ãJavaScriptãããå€ãã600ããããããŸããããã


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

â²ã©ã¯ã¹ã«æ ªåŒäŒç€Ÿ å·è¡åœ¹å¡å
ŒCPOïŒChief Product OfficerïŒã®æ°Žå³¶å£®å€ªæ°
æ°Žå³¶æ°ã¯ãã©ã¯ã¹ã«ã®ããšã ãã§ã¯ãªãããããŸã§ã®ãã£ãªã¢ã«ãããããã³ããšã³ãæè¡ã®å€é·ã«ã€ããŠãèšåããã®ã§äœµããŠç޹ä»ããã
ã倿ã
æ°Žå³¶ïŒæ°åã§IBMã«å ¥ã£ãããã¯ãããã³ããšã³ããšã³ãžãã¢ãšããèšèã¯ãããŸããã§ããããã åèªèº«ã¯èªãJavaScriptããŽãªãŽãªæžããŠããªãªãžãã«ã®JSãã¬ãŒã ã¯ãŒã¯ã®ãããªãã®ãã€ãã£ãŠããŸãããããä»ã§ãããšããã®ããã³ããšã³ããšã³ãžãã¢ã®ãããªåããããŠãããšæããŸãã
ãã®åŸã転è·ããDeNAã§ã¯ãFlashã§åãã¬ã©ã±ãŒã®ã¢ãã¡ãŒã·ã§ã³ãHTMLã«å€æããããŒã¹ããã¯ãªAndroidäžã§é«éåçãããã©ã€ãã©ãªãŒã®ã¡ã³ããã³ã¹ã«æºãã£ãŠããŸããã
Vue.jsãæµè¡ãå§ããã®ã¯ãDeNAã«åšç±ããŠããææã®åŸåããã§ãããã©ã¯ã¹ã«ã«è»¢è·ããåœæã¯ãã¢ããªã·ãã¯ãªã¬ã¬ã·ãŒã¢ããªéšåã«ã¯jQueryãå ¥ã£ãŠããçšåºŠã§ãããããã®åŸæ°ããç»é¢ã«ã¯éšåçã«Vue.jsãå ¥ããŠãããçŸåšã§ã¯å šé¢çã«Vue.jsãnuxt.jsçã«å ããŠã°ã©ãã£ãã¯ã3Dé åã«åŒ·ããFabric.jsãthree.jsãæ¡çšãå§ããŠããŸãã

ãéžå®åºæºã
æ°Žå³¶ïŒVue.jsãå ¥ããã®ã¯ãåãã©ã¯ã¹ã«ã«ãžã§ã€ã³ããé ã®2017幎ã§ãã倿Žããããšæã£ãåºæºã¯ãå ã«ãèšããŸããã巚倧ã§å€æ©èœåããã¢ããªã·ãã¯ãªã·ã¹ãã ããããã€ã¯ããµãŒãã¹ã»ã©å°ããã¯ãããŸããããåã ã®ãã¡ã€ã³æ¯ã«ã¢ããªã±ãŒã·ã§ã³ããã¡ã£ãšåå²ããããšããåãããã£ãããã§ãããã®ã¿ã€ãã³ã°ã§ãäžç·ã«èšèªãæ°ãããã®ãæ¡çšããããšãReactãšæ©ã¿ãŸããããVue.jsã®æ¹ãããã°ã¬ãã·ããã¬ãŒã ã¯ãŒã¯ãšããŠå°å ¥ãããããšããå€æã§æ¡çšããŸããã
ããã³ããšã³ãéçºã«éã£ãããšã§ã¯ãããŸããããæ¢åã·ã¹ãã ãåå²ãåãåºãããããã¯ãæ°ããªãã¡ã€ã³ãéçºãããªã©ã®ã¿ã€ãã³ã°ã§ãæãåã£ãŠæ°ããéçºç°å¢ã«ãã£ã¬ã³ãžããããšã¯ã倧åãªããšã ãšèããŠããŸãã
å ã»ã©å è€ããããã£ããããããšãããæ°ãããã®ã䜿ã£ãæ¹ããšã³ãžãã¢ã®ç®ãæŽ»ãæŽ»ããšããããããã¯ããããŒãžã£ãŒã§ããåã®ç«å ŽãšããŠã¯ããšã³ãžãã¢ã®ããæ°ã¯ãšãŠã倧äºãªã®ã§ç¹ã«æèããŠãããšããã§ããããŸãïŒç¬ïŒã
äžæ¹ã§ãæ°ãããã®ãåãå ¥ãããã¡ãªããããããŸããããžãã¹ãµã€ãã®äººãã¡ãSPAïŒSingle Page ApplicationïŒã®æŠå¿µãããŸãçè§£ããŠããªãããšã§ãããããŸã§ã¿ã°ãããŒãžã£ãŒã䜿ãã°ã§ããŠããããšãã§ããªããªã£ãããæ°ãããµãŒãã¹ã远å ããããšæã£ããšãã«åé¡ãçºçããããããžãã¹ãµã€ããšéçºãµã€ãã®è°è«ãããªããé²ããå¿ èŠããããšèããŠããŸãã

â²ãµã€ããŠãºæ ªåŒäŒç€Ÿ ããã³ããšã³ããšãã¹ããŒãããŒã ã®å°æåŸ¹æ°ãæ ªåŒäŒç€ŸSmartHRã®ããã³ããšã³ãæè¡é¡§åãåãã
ã倿ã
å°æïŒä»åãã¢ãã³ããã³ãå匷äŒãšããã¿ã€ãã«ã§ãããåœç€Ÿã®å€§ããªãããã¯ãã§ããkintoneãGaroonã«ãããŠã¯ãã芧ã®ãšããã§ããäžéšReactã䜿ã£ããããŠããŸãããéçºåœåããã»ãŒClosureãšjQueryã§éçºããŠããŸãããããã¢ãã³ãšã¯èšããŸããïŒç¬ïŒããã å¥ã®ãããã¯ãã«ãããŠã¯ReactãTypeScriptãšãã£ããå²ãšæè¿ã®æè¡ã䜿ã£ãŠããŸãã

ãéžå®åºæºã
å°æïŒKintoneã®éçºã¯2011幎ããã§ããããReactãTypeScriptããŸã ãªãæä»£ã§ãããkintoneã¯ãã ã®ãããã¯ãã§ã¯ãªãããŠãŒã¶ãŒãkintoneãã©ãããã©ãŒã äžã§JavaScriptãæžããŠã«ã¹ã¿ãã€ãºã§ãããªã©ãå€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã«æé·ãããšäºæž¬ããŠããŸãããããå®å šã§ä¿¡é Œã§ããèšèªãšããåºæºã§Closureãéžå®ãããŸæ¯ãè¿ã£ãŠã¿ãŠãããã®éžæã¯ééã£ãŠããªãã£ããšæã£ãŠããŸãã
ã¬ãã¬ããªã·ã¹ãã ã«ã¯ãªããŸããããåé¢ãæ°ãããã®ãå ¥ããããšãé£ãããšã®åé¡ã«æè¿ã¯çŽé¢ããŠããŸãããããŠãã®åé¡ã¯Garoonã®éçºç°å¢ã§ãåãã§ããGaroonã«ãããŠãæ°ããã©ã€ãã©ãªãªã©ã¯ã»ãŒå ¥ããããšãªããjQueryã®ã¿ã§éçºããŠããŠããŸãã
ããã³ããšã³ãéçºã¯Reactã®ç»å Žã§å€§ããæµããå€ãã£ããšã¯æããŸããããã以éã®æè¡ã§ãç¹ã«æ¡çšããããšæããã®ã¯ãããŸããããã¡ããå ¥ããã¡ãªããããã£ãããé©ãããããã¯ããéçºããã®ã§ããã°æ¡çšããŠããã€ããã§ããã
æ¡çšåºæºã¯åºæ¬ããããã¯ãããŒã ãèªç±ã«éžå®ããŠããŸãããã å€§èŠæš¡ã»é·æéã«ãªããããã¯ãã«ãããŠã¯ãå ã®2ã€ã®ãããã¯ããšåæ§ãå®å šã»ä¿¡é Œã®æ ä¿ãäŒç€ŸãšããŠããã£ãããšç¢ºèªããããã«ããŠããŸãã
ãµãŒãã¹ã®ããã©ãŒãã³ã¹ãé«ããããã«ããŠããããš
æ°Žå³¶ïŒã©ã¯ã¹ã«ã®ãµãŒãã¹ã¯äž»ã«toBã§ãããã客æ§ã«å©çšããŠããã ãããŒã¯ã®æé垯ãå¹³æ¥ã®æŒéã§ãããã®ããtoCåããµãŒãã¹ã«æ¯ã¹ããšãã©ãã£ãã¯ããããŸã§éäžããªããããæ£çŽãããŸãããã©ãŒãã³ã¹ã¯æèããŠããŸããããã¡ãããã£ãã·ã¥ã¯ãµãŒããŒãµã€ãã§ãšãã£ããåœããåã®æœçã¯è¡ã£ãŠããŸããã
æèããŠããããšãšããã°UXã§ãããµãŒãã¹ã®ç¹æ§äžãå€ãã®ãã¡ã€ã«ããµãŒããŒãµã€ãã§éåæåŠçããããšãå€ãããŠãŒã¶ãŒãæ°åã»ã©åŸ ã€å Žé¢ãçããŸãããã®éããŠãŒã¶ãŒãäžå¿«ã«æããªããããããã³ããšã³ããšã³ãžãã¢ãæ°ã®å¹ããèŠãæ¹ã工倫ããã«ã«ãã£ãŒããããŸãã
å°æïŒåœç€ŸãtoBãµãŒãã¹ãªã®ã§ãããã³ããšã³ãã®ããã©ãŒãã³ã¹ã«é¢ããŠã¯ãããŸãæèããŠããŸããããã ãµãŒãã¹ã®æ§è³ªäžããµãŒããŒãµã€ãã®è² è·ãããã«ããã¯ã«ãªãããšã¯ããã®ã§ããã¡ãã®ããã©ãŒãã³ã¹ã«ã€ããŠã¯æ³šæããŠããŸãã
äžæ¹ã§ããããæ°Žå³¶ããã®æèŠãšåãã§ãããã¯ã©ã€ã¢ã³ããµã€ãã®ããã©ãŒãã³ã¹ããããããããšãã話é¡ã床ã åºãŸããããã§çŸç¶ã®ãããã¯ãã®ããã©ãŒãã³ã¹ãšã¯ã©ããªãã®ã§ãã©ã®ãããªèª²é¡ãããã解決ããã«ã¯ã©ããããããã®ãããããããããã©ãŒãã³ã¹ãšã¯ãªãããïŒããšãã£ãå 容ã®ã¬ãã«ããå匷äŒãªã©ãéå¬ããããã©ãŒãã³ã¹ã®åäžã«åãçµãã§ããŸãã
ã¢ã¡ãªã«ã«ããµãŒãã¹ãæäŸããŠããã®ã§ãããåããã¯æ¥æ¬ãšæ¯ã¹ããšãããã¯ãŒã¯ç°å¢ãå®å®ããŠããªãããããã¡ã€ã«ãµã€ãºãå§çž®ãããªã©ã®ã±ã¢ãããŠããŸãã
å è€ïŒReactãæ¡çšãã以åãBackbone.jsã䜿ã£ãŠããããã¯ããã©ãŠã¶ã®ä»çµã¿ãçè§£ããäžã§ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãè¡ãå¿ èŠããããŸããããã®ãããããªãã«å匷ããŠããŸããããããReactã䜿ãåºããŠããã¯ãä»®æ³éšåãæ£ãã䜿ãããšãäžçªå¹æçã§ããããããå šãŠã®äžç芳ã ãšåãããŸãããããä»ã¯ããŸãæ°ã«ããŠããŸãããäœã ãå¯ããæ°ãããŸããã
åè³ªãæ ä¿ããããã®åãçµã¿
å è€ïŒã³ã¹ãã嵩ããããªãã¹ãã¯è¡ã£ãŠããããéã«äœã³ã¹ãã§ãããªããããããããšäœ¿ãåæã®ããããŒã«ãå°å ¥ããŠããŸãããã䜿ãã®ã¯Storybookã§ãã³ã³ããŒãã³ãã远å ããŠã¹ãããã·ã§ãããã¹ããªã©ãè¡ã£ãŠããŸãã
ããšã¯åœããåã®ããšã§ãããéçè§£æã®lintãããããããŠããŸãã
æ°Žå³¶ïŒE2Eãã¹ãã¯ä»¥åããè¡ã£ãŠããŠãæè¿ã¯TestCafeã䜿ã£ãŠããŸããlintãå°ããã€ã§ããå°å ¥ããŠããŸãã
ããšã¯ãšã³ãžãã¢ããããã§ããããIEã§ã®åäœã¯ç¢ºèªããïŒããå£çã®ããã«èšã£ãŠããŸãïŒç¬ïŒãããã³ãã®éå®³ã®æ®ã©ã¯IEã§çºçããŸãã®ã§ã
å°æïŒæ©èœãèããããã°ã©ããšå質ä¿èšŒãè¡ãQAãããããã¯ãã«ããããŸãããçžè«ãããè°è«ãããªã©ååããªããåè³ªãæ ä¿ããŠããŸããããšãã°æ©èœãèããæ®µéãããã¹ããæžãããããŸãCIïŒç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒããŒã«ã¯åœããåã«å°å ¥ããŠããŸãã
æè¿ããåºã話é¡ã¯ãå€§èŠæš¡ãªE2Eãã¹ãã§å šãŠãã«ããŒããã®ã§ã¯ãªããã¹ã¢ãŒã«ãªãã¹ããå¢ããããšã§ããã¹ãé åãããåºããããšèããŠããŸãã
ââå質æ ä¿ãèãããšãèªç¶ãšçµç¹ã®è©±ã«ãçŽã¥ããŠããããã§ãããäºäººã¯ã©ãã§ããïŒ

æ°Žå³¶ïŒã©ã¯ã¹ã«äºæ¥éšã«ã¯QAããŒã ããªãããããã¯ããããŒãžã£ãŒãå ŒããŠããŸããQAããŒã ãäœãããšããè°è«ã¯äœåºŠãåºãŠããã®ã§ãããé©ãã人æã®æ¡çšãé£ããããšãããQAããŒã ãã§ããããé ŒããããŠããŸãã®ã§ã¯ãªãããšãã£ãæèŠãããããããã¯ããããŒãžã£ãŒã«è£äœãä»ããçšåºŠã«ããŠããŸãã
å è€ïŒQAããŒã ã¯ãããŸãããã åœç€Ÿã®ãããã¯ãã¯æ³åŸã®åœ±é¿ãåããŠä»æ§ãå€ãããããå°éç¥èããªããšçè§£ãé£ãããåãã¡ã€ã³ããšã«ãããã§ãã·ã§ãã«ããããããªç¶æ³ã§ãããã®ãããã§ãã·ã§ãã«ããŒã ãæ¶ãæ©ãšãªã£ãŠããã¹ãã調æŽãããªã©å·¥å€«ããŠããŸãã
ã¯ãŒã¯ãããŒã§å·¥å€«ããŠããããš

å°æïŒãããã¯ãã®æµããšããŠã¯ããŸãã¯éçºè ããµã ã䜿ã£ãŠããç°å¢ã§ã©ã®ããã«åãã®ããèªåã§ãããã€ããããã«ããŠããŸãããã®ãããŒãã¯ãªã¢ããããæ¬¡ã¯å šç€Ÿå¡ã䜿ã£ãŠããç°å¢ã«åãããããã€ããã®åŸãæ¬çªã§ãããŠãŒã¶ãŒã«å ¬éããããã®ãããªãããŒãèžãã§ããŸãã
éçºãããŒã¯å°ãåãŸã§ã¯ã¹ã¯ã©ã ããã¡ããã¡ãæµè¡ã£ãŠããŠãã©ãã®ãããžã§ã¯ãããŒã ã«è¡ã£ãŠããããã°ããæ²ããŠãããŸããïŒç¬ïŒãããããã1幎ãããã§ã¢ãããã°ã©ãã³ã°ã«ç§»è¡ãåœç€Ÿã®éçºæ ç¹ã¯ãæ±äº¬ã倧éªãæŸå±±ãããã«ã¯èªå® ã§ä»äºãããŠãããšã³ãžãã¢ãããŸãã®ã§ãã¡ã³ããŒããªã¢ãŒãã§ç¹ããªãããã¢ãããã°ã©ãã³ã°ãè¡ã£ãŠããŸãã
ã¢ãããã°ã©ãã³ã°ã®ã¡ãªããã¯ããã£ãªã¢ã®æµ ãã¡ã³ããŒãåå ã§ããããšãã³ãŒãã®å±äººæ§ããªããªã£ãããšãã¬ãã¥ãŒã³ã¹ããäžãã£ãããšãªã©ã§ãã
äžæ¹ã§ããã¡ãªãããæããŠããŸããå人ã®ã¿ã¹ã¯ãåœç¶æžããŸãããããšã³ãžãã¢åã ã®æé·ãšããç¹ã§ã¯ã以åã®ããã«1人ã§ã²ãããèããŠããç°å¢ãšæ¯ã¹ããšãã©ãããŠãå£ããšæããããåŸãªãããã§ãã
ãŸãã¢ãããã°ã©ãã³ã°ã¯äžž1æ¥ãããŠè¡ãå Žåãå€ãã®ã§ãã·ã³ãã«ã«ç²ããŸããä»åŸã¯åŸæ¥ã®éçºç°å¢ãšäœ¿ãåããŠããããšèããŠããŸãã

æ°Žå³¶ïŒåŒç€Ÿãã¢ãããã°ã©ãã³ã°ãå°å ¥ããŠããŸãããå°æããããã£ãããããã«ãããªãç²ããŸãããªã®ã§ç¶æ³ã«å¿ããŠäœ¿ãåããŠããŠãå šå¡ã§ã¯ãªã2人ã§è¡ããã¢ããã°ã©ãã³ã°ããããŠããŠãå ±æããç®çã§1æéçšåºŠã§çµãã軜ãã«è¡ã£ããããŠããŸããã¢ãããããã¢ããã¯å°çšããŒã¹ããããŸãã
ãŸãã¹ã¯ã©ã ãçµãå Žåã以åã ãšãµãŒããŒãšã³ãžãã¢5人ã«å¯ŸããŠããã³ããšã³ããšã³ãžãã¢1人ãšããæä»£ããããæ£çŽãããã³ããšã³ããšã³ãžãã¢ãå€ç¬ã§ç²Ÿç¥çã«åã£ãŠããç¶æ³ããããŸããã
ããã§çŸåšã¯ãå Œä»»ã§ãããã®ã§1ã¹ã¯ã©ã ã«å¿ ã2人以äžã®ããã³ããšã³ããšã³ãžãã¢ãé 眮ããããã«ããŠããŸãããã¢ã«ãããŠãæ°äººãšäžå ã»ããã©ã³ãçµã¿åããããªã©ããŠãæ°äººæè²ã«ãç¹ããããã«é æ ®ããŠããŸãã

å è€ïŒã¢ãããã°ã©ãã³ã°ã«è¿ãã§ãããåœç€Ÿã§ã¯ã©ã€ãã³ãŒãã£ã³ã°ãè¡ã£ãŠããŸããé«ãã¹ãã«ãæã€ãšã³ãžãã¢ããæèããã»ã¹ãå£ã«åºããªããã³ãŒãã£ã³ã°ããŠããããšã§ãä»ã®ãšã³ãžãã¢ãå ±æããããšããçãããããŸãã
ã©ã€ãã³ãŒãã£ã³ã°ã®ãããšããã¯æèã ãã§ãªããããŒã«ã䜿ãã¿ã€ãã³ã°ãå®éã®äœ¿ãæ¹ãªã©ãèŠãŠåŠã¹ãç¹ã§ããå¹çããä»ã®ãšã³ãžãã¢ã®æé·ã«ç¹ããã¯ãŒã¯ãããŒã ãšæããæè¿é »ç¹ã«è¡ã£ãŠããŸãã
ããã³ããšã³ããšã³ãžãã¢ãåããããç°å¢
æ°Žå³¶ïŒå ã®è©±ã«é¢é£ããŸãããã©ãããŠããµãŒããŒãšã³ãžãã¢ãšæ¯ã¹ããšãããã³ããšã³ããšã³ãžãã¢ã®æ°ãå°ãªãããã®ãããåé¢ä¿ããµãŒããŒãšã³ãžãã¢ã®ã»ããäžã®ããã«æããŠããŸããŸããããã³ããšã³ããšã³ãžãã¢ãåããããç°å¢ã«ããããã«ã¯ãå ã®5人ã«2人ã®ã¹ã¯ã©ã ã®ããã«ãå€ç¬ã«ããªãããšãç°¡åã«èšãã°æ°ãå¢ããããšã ãšæã£ãŠããŸãã
å®éåŒç€Ÿã§ãç§ãå ¥ç€Ÿãã2幎ã»ã©åã¯ãããã³ããšã³ããšã³ãžãã¢ã¯ããã2åã§ããããçŸåšã§ã¯10åã«å¢å ãåæã«3ã€ã®ã¢ããªã±ãŒã·ã§ã³ãã¬ãã¥ãŒãããããªç°å¢ã«å€ãããŸããã
å°æïŒãããŸã§ã¯ããã³ããšã³ãããµãŒããŒãµã€ããšç¹ã«åããã«ãåããšã³ãžãã¢ãããã°ã©ãã³ã°ããŠããŸãããäž¡æè¡ãåŠã¹ããšã®ã¡ãªãããããã®ã§ãããããããã¯ããã³ããšã³ããå°éçã«ãµããŒãããŠããããŒã ãå¿ èŠã ãããšã2017幎ã®åŸåããããããããã³ããšã³ããšãã¹ããŒãããŒã ããèšç«ãç§ãå«ãçŸåš5åäœå¶ã§ãããã³ããŸããã®éçºã«å°ä»»ããŠããŸãã
å è€ïŒãäºãæèŠãèšãåããã«ãžã¥ã¢ã«ãªé°å²æ°ãåããããç°å¢ã ãšæããŠããŸããåœç€Ÿã§ããã°ããšã³ãžãã¢ãããã°ã©ãã³ã°ãçµããåŸã«èŠããã¡ãŒã¹ãã€ã³ãã¬ãã·ã§ã³ãUXããŒã ã«æ°è»œã«ãã£ãŒãããã¯ã§ããããããŒãªãã³ã«ã«ã«ãã£ãŒããããŸãã
ããã³ããšã³ããšã³ãžãã¢ã«æåŸ ããŠããããš
æ°Žå³¶ïŒå ã»ã©ç޹ä»ãããåŒç€Ÿã®ããã³ããšã³ããšã³ãžãã¢ãæè¿ãã䜿ã£ãŠããFabric.jsãthree.jsã¯ããããããŸã å€ãã®ããã³ããšã³ããšã³ãžãã¢ã¯ç¥ããªããšæããŸããããããããã䜿ãã°ã衚çŸåã«å¯ãã ãã°ã©ãã£ã«ã«ã§ç«äœçãªUIãå®çŸã§ãããªã¢ã«ç£æ¥ãçžæã«ãããµãŒãã¹ã§ã¯éå®ãããŸããUIã»UXã«ãã ãããæã€ãšã³ãžãã¢ã¯ãæ°ããæè¡ã§ããããšãå«ããé åããéçºç°å¢ã ãšæããŸã
ããã²ãšã€ããããtoBãµãŒãã¹ãªãã§ã¯ã§ãããtoCã«æ¯ã¹ãã©ã€ããµã€ã¯ã«ã4ïœ5幎ãäžã«ã¯10幎ãšé·ãã«ãããããã°ã©ã ã䜿ãããŸãããã®ããè² åµãæ®ããªããæ¡åŒµæ§ãæã£ãŠãããªã©ã®èšèšãã€ã³ããªãã³ã«å®éã®ã³ãŒãã£ã³ã°ã¹ãã«ã身ã«ã€ããŸãã
å è€ïŒåœç€Ÿã®ã¢ããªã±ãŒã·ã§ã³ã§æ±ããããŠããã®ã¯ããšã«ããå£ããªãããšããã£ãããšå ¥åºåãã§ããå ç¢ãã§ãããŸãããçšåºŠéçºãããŠãããããã¢ããªã±ãŒã·ã§ã³ã®ç¹åŸŽã掻ããã€ã€ããããªãåé¡ãã©ã解決ããŠãããããã®éšåã«ãšã³ãžãã¢ãšããŠã®ãããããæããæ¹ã§ããã°ã楜ããåãããšæããŸãã
å°æïŒå è€ããã®æèŠãšåãããåœç€Ÿã®ãããã¯ããããããæ°ãã«æžãçŽããšãããã§ãŒãºã§ã¯ãããŸãããæ°ããªæè¡ã䜿ã£ãŠãä»ããåé¡ã解決ããããšãä»äºã®äžå¿ã ããã§ããããšãã°ããŸã䜿ã£ãŠããªãCSSãæ¶ãããããã®æ¹æ³ãèãããšããESLintã®ãã©ã°ã€ã³ãèªåã§æžããŠã¿ããªã©ã
ç¹åŸŽãšããŠã¯ãè åãæéããããŠç®åã®åé¡ã解決ããã®ã§ã¯ãªããæ°ããæè¡ãã¢ã€ãã¢ã§è§£æ±ºããã«ã«ãã£ãŒã§ããããšã§ãã
ãŸããããã¯éçºã§åŸããã¬ããžãOSSãšããŠãäžçäžã®ãšã³ãžãã¢ã«ã¢ãŠããããããŠãããã°ãšèããŠããŸãã
ãQïŒAãåå è ããã®è³ªåã§çãäžãã£ãQ&Aã¿ã€ã

ââããããªããšãã£ãŠããããªãããã¡ããã¡ã䟿å©ãšããå®çªã®ã©ã€ãã©ãªãéçºããŒã«ãããã°ç¥ãããã
å è€ïŒESLintãšFlowããã®2ã€ããªãªããšãã£ãŠãããªããããéå®ããŠããŸããçç±ã¯ãéçè§£æã«å©ããããŠããããã§ããéçè§£æã«é¢ããããŒã«ãåžžã«èª¿æ»ããŠã䜿ããããªãã®ãæ¢ããŠãããšãèªåã«å¿ èŠãªããŒã«ãç¥ãããšãã§ããã®ã§ã¯ãªãããšæããŸãã
æ°Žå³¶ïŒå çšæãããã®ä»¥å€ã«ç¹ã«ãããŸãããã匷ããŠæãããªãã°Sentryã§ãããããã³ããšã³ããšã³ãžãã¢ãç£èŠç³»ããŒã«ã¯å ¥ããŠããããšã®æµããã瀟å ã«ãããŸããçµæ§ãšã©ãŒåºãŠãŸãã (ç¬)ã
æïŒå è€ãããšãã¶ããŸããããã¡ãESLintãããšã¯PrettierãTypeScriptããã®3ã€ã¯ä»å¿ ãå ¥ããäžçš®ã®ç¥åšçãªååšã§ããããšã¯Reactãšãã现ãããšããã ãšãã£ã±ããããŸãããããã³ããšã³ããšã³ãžãã¢ã ãšnpmããã±ãŒãžããããã䜿ããšæãã®ã§ããã®æŽæ°ç®¡çã«äœ¿ãããªããã€ãïŒäžæïŒãªã©ãæè¿ç€Ÿå ã§æ³šç®ãããŠããŸãã
ââ圹å²åæ ãã°ã¬ãŒã«ãªã£ãŠãããšæããããã¶ã€ããŒãšã®åæ¥ã¯ã©ããã
æ°Žå³¶ïŒããŒã ã«ãã£ãŠç°ãªããŸããããã ãã£ãŠãããšãã¯ãã¶ã€ããŒãšããã³ããšã³ããšã³ãžãã¢ãããã¢ããã°ã©ãã³ã°ããªããã¢ãã¡ãŒã·ã§ã³ã®ãã¥ãŒãã³ã°ããããããŸãã
ãã ãã¶ã€ããŒã¯å€å¿ãªå Žåãå€ãã®ã§ãããã³ããšã³ããšã³ãžãã¢ãããçšåºŠã«ã¹ã¿ãã€ãºã§ããè£éãæã£ãŠããŸãããããŠæçµçã«ãããã¯ããããŒãžã£ãŒãšãã¶ã€ããŒããã§ãã¯ãããšããæµãã§ãã
å°æïŒãããã¯ãã«ãã£ãŠç°ãªããŸããããšãã°kintoneããŒã ã§ããã°ããã¶ã€ããŒãæåã«ãã¶ã€ã³ãäœã£ãŠããšã³ãžãã¢ãå®è£ ããŠãæåŸèª¿æŽãã¢ãããã°ã©ãã³ã°ã§ãã£ãŠä»äžããããšãããã¿ãŒã³ã§ããåºæ¬ãäžç·ã«éçºãé²ããããšãå€ãã§ããã
å è€ïŒåœç€Ÿã®ãã¶ã€ããŒã¯ã³ãŒããæžããªãã®ã§ããã¢ããã°ã©ãã³ã°ã®ããã«ããã¶ã€ããŒãšãšã³ãžãã¢ãäžç·ã«ããããšã¯ãããŸããã
ãã ããããã£ãæ°ããæè¡ã䜿ããšãããªãã®ãäœãããããã£ãšå¥ã®UXãäœéšã§ãããããããã¯ãšã³ãžãã¢ãã³ãŒããæžããŠããŠæ°ã¥ããããšãããã¶ã€ããŒã«äŒããããšãäŒããããç°å¢ã§ããããšãæèããŠããŸãã
ããšãã°ããŸãã«ãã¶ã€ã³ã现ããããŠããŠãŒã¶ãŒãäºæž¬äžèœãªUIã«ãªã£ãŠããå¯èœæ§ãããå Žåãªã©ã§ãã
ââããã³ããšã³ããšã³ãžãã¢ã®æ¡çšã«ã€ããŠ
å°æïŒããã³ããšã³ããšã³ãžãã¢ãšãããããã§ã¯åéã¯ããŠããŸããããµãŒããŒãµã€ããããã³ããµã€ãäž¡æ¹ã§æ±äººããããå®éã«åããŠã¿ãŠããã³ããšã³ããŸãããåŸæãªäººãæ åœã«ãªã£ãŠããæµãã§ãã
äžæ¹ã§ãå ã»ã©è©±ããããã«ãšãã¹ããŒãããŒã ãçµæãããã®ã§ãããã§ã®æ¡çšã¯å¥ã§ããããã³ããšã³ãã«ç¹åãããšã³ãžãã¢ãåéããŠããŸãã
æ°Žå³¶ïŒããã³ããšã³ããšã³ãžãã¢ãšããåç®ã§åéããŠããŸãããŸãèªç€Ÿã®ãªãã£ã¹ãªã©ã§å匷äŒãéå¬ãããªã©ããŠããã³ããšã³ããŸããã«ææãªãšã³ãžãã¢ãéããæ¥œããã³ãã¥ããã£ã圢æãããããæ¡çšããæµããªã©ãæèããŠããŸãã
å è€ïŒåœç€Ÿãç¹ã«åããŠããªãã®ã§ãå ¥ç€ŸããŠããã®ç¹æ§ãæé·ãèŠãŠãããã³ããšã³ããšã³ãžãã¢ãšããŠæé·ããŠããæµãã§ããã§ããã颿¥æ®µéã§ã¯ãšã³ãžãã¢ãšããŠã®çŽ é€ã§ãããæœè±¡çãªæ§é ã®çè§£åãéèŠããŠããŸãã
ããããã€ãã³ã
é¢é£ããã€ãã³ã








