人æ°ã®ãããªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã®äœæè ã®äººçã¯ã©ãã§ããïŒ ãã¡ãããããªãã®ä»äºã®çµæãäžçäžã®å€ãã®äººã ãå©ããããšã¯çŽ æŽãããããšã§ãã ããããããªãã¯èªåã®äž»ãªä»äºã§ãããªãä»äºã«å§åãããŠãããšæããŸããïŒ ã©ã®ããã«å¯ŸåŠããŸããïŒ ã©ãã»ã©å€§èã«æš©éãå§ä»»ã§ããŸããïŒ
Michelle Weststrateã¯ãã®ãã¹ãŠãååã«èªèããŠããŸãã圌ã®MobXã©ã€ãã©ãªã«ã¯ ãgithubã«17,000以äžã®æãããããã®è²¢ç®è ã®æ°ã¯100ãã¯ããã«è¶ ããŠããŸãã ãããŠããã«ãã·ã§ã«ã¯HolyJSã§è©±ãããã«ãã·ã¢ã«æ¥ãã®ã§ãäŒè°ã®ããã°ã©ã å§å¡äŒã®ã¡ã³ã㌠ïŒDmitry DmitryMakhnev MakhnevãšEvgeny bunopus KotïŒã¯åœŒã«è©³çŽ°ã«å°ããŸããïŒãªãŒãã³ãœãŒã¹å šè¬ããããŠç¹ã«MobXã«ã€ããŠããããŠäŒè°ã«ã€ããŠã
ãŠãŒãžãŒã³ïŒããªãã®ããšãç¥ããªã人ã®ããã«ãæåã«èªåèªèº«ã«ã€ããŠå°ã話ããŠããããŸããïŒ
ãã¯ãããã¡ãããã ç§ã®ååã¯ãã·ã§ã«ãŠã§ã¹ãã¹ãã©ããïŒã»ãšãã©ã®äººã«ãšã£ãŠçºé³ãé£ããããïŒã§ããç§ã¯ãªã©ã³ãåºèº«ã§ãã ã»ãšãã©ã®å Žåã圌ãã¯MobXãŸãã¯immerã§ã®ç§ã®ä»äºããç§ãç¥ã£ãŠããŸãã ç§ã¯ã¡ã³ãã£ãã¯ã¹ã§åããŠããŸãã å€ãã®ã³ã³ãµã«ãã£ã³ã°äŒç€Ÿã䜿çšããã¢ããªã±ãŒã·ã§ã³éçºãã©ãããã©ãŒã ã§ãããœãããŠã§ã¢ãäœæãããœãããŠã§ã¢ãäœæããŠããŸãã å€æ°ã®éè¡ä¿éºäŒç€Ÿããã³åæ§ã®ã·ã¹ãã ãèªååããŸãã ç§ã¯æè¡çãªåŽé¢ããã£ãŠããŸã-ã€ãŸããç§ã奜ããªããšã§ãã ãããŠçŽ2幎åãç§ã¯ãªãŒãã³ãœãŒã¹ã®äžçã«åå ããŸããããã®ç¬éãããReactã³ãã¥ããã£ãšJSã³ãã¥ããã£ã®äž¡æ¹ã§æŽ»åããŠããŸããã
ãŠãŒãžãŒã³ïŒã¡ã³ãã£ãã¯ã¹ã§æ£ç¢ºã«äœãããŠããŸããããã¯ãã«ã«ã¢ããã€ã¶ãŒã¯ããŸããïŒ
-ã¯ãã ããã«ã¯ããã€ãã®ç°ãªã圹å²ããããäž»ãªåœ¹å²ã¯ããªããã§ãã æ¬è³ªçã«ãããã¯ç§ãã¡ã®ãéšæãã® 1ã€ã«å¯Ÿããæè¡ç解決çã®éžæã«è²¬ä»»ãããããšãæå³ããŸãã ãããã£ãŠãç§ã¯ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ç°å¢ã§ãã補åã«åãçµãã§ããŸãã ç§ãã¡ã¯4ã€ã®ããŒã ãšé£æºããäž»ã«ã¢ãŒããã¯ãã£ãšæè¡ã«é¢ããé©åãªæ±ºå®ãäžããŸãã ããã«ãç§ã¯ãŸã ããã°ã©ãã³ã°äžã§ãã ããã¯ç§ã®ä»äºã®äžéšã§ãã
ãã1ã€ã¯ããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ãžã®åå ã§ãã ããã¯ãåæ¹åãã®ã¢ã¯ãã£ããã£ã§ãã äžæ¹ã§ã¯ãäŒè°ã§å ±æãããã¯ãŒã«ãªæè¡çãªããšãè¡ã£ãŠãããèªåã§è©±ãããååã«è©±ãããšãå§ããŠããŸãã å察ã«ãäŒè°ãžã®é »ç¹ãªèšªåã§ãå察ã®ããšãèšããŸããããªããç§ãã¡ã«åœ¹ç«ã€ãããããªãäœããèŠã€ãããããããç 究ããŠã¹ã¿ãã¯ã«å«ããŸãã
EugeneïŒã OSSäŒéãã¯Twitterã®èª¬æã§èšåãããŠããŸãã ããã¯äœã§ããããªãããªãã«ãšã£ãŠãããéèŠãªã®ã§ããïŒ
-ãããéèŠã§ããæåã®çç±ïŒéçºããªãŒãã³ãœãŒã¹ã«å€æãããšãæéããŸã£ããç¯çŽã§ããŸãããããã¹ãã«å€§ãã«åœ¹ç«ã¡ãå質ãåäžããããšãããããŸããã MobXã®ãããªã©ã€ãã©ãªã¯éåžžã«ç°ãªãæ¡ä»¶ã§äœ¿çšãããããã§ãã ãããŠããã®æå³ã§ããªãŒãã³ãœãŒã¹ã«ã¯ä»ã®æ¹æ³ã§å ¥æããã®ãéåžžã«é£ãããšããå©ç¹ããããŸãã
ãããŠ2ã€ç®ïŒç§ãã¡ã®ãäœã¬ãã«ãéçºã¯äŒç€Ÿãå®çŸ©ããªããšä¿¡ããŠããã®ã§ããªãããããå ±æããªãã®ãã ã€ãŸããäŒæ¥ã¯ãæè¡èªäœã§ã¯ãªãããã®æè¡ã«åºã¥ããŠäœããã補åã«ãã£ãŠãå€å°ãªããšã競äºåãé«ãããããšããããšã§ãã ãããŠèª°ããã³ã©ãã¬ãŒã·ã§ã³ã®æ©æµãåããããã«ããéçºå šäœãå éãããŸãã
EugeneïŒæã ã圌ãã¯ãéçŸéããªãŒãã³ãœãŒã¹ã¯å®éã«ã¯éåžžã«é«äŸ¡ãªåã³ã ãšèšãã Linuxã®ãããªãããžã§ã¯ãã«ã¯ãOracleãMicrosoftã®ãããªå·šäººããã®è«å€§ãªè³éãå¿ èŠã§ãã ããã§ããïŒ å€§èŠæš¡ãªãã³ããŒããéããªããŠããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã¯ååšã§ããŸããïŒ
-ç¹å®ã®ç¶æ³ã«äŸåãããšæããŸãã ãã®ããã«ååšããå¯èœæ§ã®ããå°ããªã©ã€ãã©ãªããããŸãã ããããäžèšã®Linuxã«ãŒãã«ãReact Nativeãªã©ã®ãããžã§ã¯ãã¯éåžžã«è€éã§ãããéåžžã«å€ãã®äººã ããããã«äŸåããŠãããããä¿¡é Œã§ãã財åã¢ãã«ãå¿ èŠã§ãã ãã®å Žåã倧ããªã¹ãã³ãµãŒãããªããã°éåžžã«é£ããã§ãããã ããããç§ã¯ãããåé¡ã ãšã¯æããªãã äŒæ¥ã責任ãè² ãããšãåŠã¶ããšã¯ãäŒæ¥ãªãã§è¡ãããšãåŠã¶ããšãããéèŠã ãšæããŸãã
EugeneïŒããšãã°ãFacebookãããªãã®ãšããã«æ¥ãŠãMobXãè³Œå ¥ããããMobXãåŸæŽããŠãéçºãç§ãã¡ã®ãã©ã³ãã®äžã«è¡ãããã«ããŸãããããšèšã£ããïŒ
-ãŸããå®éã圌ãã¯ãã§ã«ã¹ãã³ãµãŒã§ãïŒ é¢çœãã§ãããFacebookã¯Open Collectiveã§ã®MobXã®ã¹ãã³ãµãŒã®1ã€ã§ãã ããæå³ã§ãããã¯ãã§ã«èµ·ãã£ãŠããŸãã ç§ã®æèŠã§ã¯ããªãŒãã³ã³ã¬ã¯ãã£ãã¯ãªãŒãã³ãœãŒã¹ã®è²¡æ¿ç¶æ ãæ¹åããæ¹æ³ã®è¯ãäŸã§ãã è«æ±æžãªã©ã®è²¡æ¿çã«æ·±å»ãªã¢ãããŒãããããããäŒæ¥ã¯èªåã«åã£ãæ¹æ³ã§éçºãåŸæŽããããšãã§ããŸãã
Mendixã§ã¯ãå®éãç§ã¯ãã§ã«MobXã§äœæ¥ããããã®å ±é ¬ãã»ãšãã©åãåã£ãŠããã®ã§ãFacebookã«å®å šã«åãæ¿ããããšã«èå³ã¯ãããŸããã ä»ã®äººã®èå³ãåŒãå¯èœæ§ãããããšã¯ç解ããŠããŸãããããã«ã¯åé¡ã¯ãããŸããã ç§ã®æèŠã§ã¯ãã©ã€ã»ã³ã¹ããªãŒãã³ãœãŒã¹ã®ãŸãŸã§ããã°ããã®è£œåãã¡ã€ã³ã¹ãã³ãµãŒã®ãã©ã³ãäžã«ãããšããäºå®ã«ã¯äœã®åé¡ããããŸããã ãã¬ãã§ãµãã«ãŒãèŠãŠãããããªãã®ã§ãã誰ããè©ŠåãèŠãããšãã§ããã°ãTã·ã£ãã«ã©ããªããŽãä»ããŠããŠãããã»ã©éãã¯ãããŸããã
ãŠãŒãžãŒã³ïŒå€§äŒæ¥ãå³æžé€šãåŸæŽããŠããå Žåããç§ãã¡ã¯ãããªã«ãéãæã£ãŠããã®ã§ãããã§ç§ãã¡ã«ãããããŠãã ããããšèšãããšã¯ã§ããŸãããïŒ
ãå°ãªããšãããã«ééããããšããªãã®ã§ãåé¡ã«ãªããŸããã ç§ãééã£ãŠããªããã°ãwebpackã¯ãã®ãããªã¢ãã«ã䜿çšããŸããããã§æ©èœã®ä»£éãæ¯æãããšã¯å¯èœã§ãã ãã®ãããå€å°ã®ãªã¹ã¯ã¯ãããŸããããããžã§ã¯ãããã®å²åŠã«å¿ å®ã§ããããšãä¿èšŒããã®ã¯ãã¡ã³ãããŒã®è²¬ä»»ã ãšæããŸãã ãããããã®å²åŠã®ç¯å²å ã§ã¯ãååãªæäœã®äœå°ãããããã§ãã ããã«ããªãŒãã³ãœãŒã¹ã§ã¯ãçªç¶äœããå®å šã«ããŸããããªãå Žåãå°ãªããšããã©ãŒã¯ã®å¯èœæ§ãæ®ããŸãã
EugeneïŒãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®éçºã¯æ²ç·ã®ãããªãã®ã§ããæåã«ã誰ãå¿ èŠãšããªãã©ã€ãã©ãªãäœæãã次ã«ããã䜿ãå§ããããããgithubã§äœåãã®æãç²åŸããŸãã ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããäžè¬çã«ãªããšãå€ãã®æéããããå§ããŸãã MobXã«ãããè²»ãããŸããïŒ
-æè¿ã¯ããŸããããŸããã MobXã¯çŸåšéåžžã«å®å®ããŠããŸãã ãã¡ãããéå»ã«å€ããè²»ãããŸããã ããã¯éåžžã«ç°ãªã£ãŠããŸããã æåã®æ°å¹Žéã¯é±ã«æ°å€ã§ãTwitterã§å°ããªåé¡ã質åã«çããã ãã®å°ããªç¬éããã£ããšæããŸãã ãããã®ããããªããšã¯ãæéã®å€§ããªæè³ãšããŠã¯æããããŸããããåèšãããšèããå¢å ãããšæããŸãã ãã ãã枬å®ããã®ã¯éåžžã«å°é£ã§ãã ãããä»äºçšã¡ãŒã«ã®ç¢ºèªæ¹æ³ã§ããåé¡ã確èªããããã«å¿çãéä¿¡ããŸãã
EugeneïŒããªããéçºè ã§ãããã©ã€ãã©ãªãäœæãã人æ°ãåºãŠããŠããŸããŸãæéããããç¶æ³ã§çç£æ§ãäžããã«ã¯ã©ãããã°ããã§ããïŒ ããªãã¯å¹žéã§ããããªãã¯å€åæéäžã«ãããããæ©äŒããããŸãã ããããããªãããã§ã«ä»äºãšè¶£å³ãæã£ãŠããŠããããžã§ã¯ãããã人æ°ã«ãªã£ããïŒ
-ããŠãç§ãMobXã®ä»äºãå§ãããšããããã¯ç§ã®èªç±ãªæéã§ããããŸããããããžã§ã¯ãã人æ°ãåãããšããä»äºã®æéã¯è¿œå ãããŸããã ããããããã€ãã®ãã³ãããããŸãã ç§ãå©ããŠãããããã€ãã®ã«ãŒã«ãããããšã«æ°ã¥ããŸããã
æåïŒããã¥ã¡ã³ãã®é¢é£æ§ãç£èŠããŸãã åã質åã3ã4ååãåã£ãå Žåã¯ãããã¥ã¡ã³ãã«åçãèšé²ããŠãã ããã æçµçã«æéãç¯çŽã§ããããã§ãã
第äºã«ãã©ã®åé¡ãåãå ¥ãããã«ã€ããŠéåžžã«æ°ãé ãããšã æåã¯ããšã©ãŒãéç¥ããããšããã«ãå©çšå¯èœãªèª¬æã«åºã¥ããŠåé¡ãåçŸããããšããŠããŸãã ãŸããå Žåã«ãã£ãŠã¯ãããäžå¯èœã§ããããã§ã«æéãããã£ãŠããããšãããããŸãã ãã®ããããµã³ãããã¯ã¹å ã®ã³ãŒãã§ããããšãåäœãã¹ãã䌎ããã«ãªã¯ãšã¹ãã§ããããšãåé¡ããçŽæ¥å®è¡ã§ãããã®ãèŠæ±ããŠããŸãã åé¡ãã©ãã«ããããå€æã§ããããã«ãããã®-ã©ã€ãã©ãªå ãŸãã¯ãŠãŒã¶ãŒåŽã ããã¯éåžžã«éèŠã§ããæéãç¯çŽããåé¡ã®äœæè ãæéãè²»ããæºåãã§ããŠããããšã確èªã§ããããã§ãã ããã°ãåçŸããæéããªãããšèšã人ãããŸãããããããªããåé¡ã解決ããæéããªãããšæããŸãã çµå±ã®ãšããã人ã¯ããããèªåã®ã©ã€ãã©ãªã䜿çšããä»äºã«å¯ŸããŠæ¯æãããŠããã§ããããããã§ã¯ããªãèªåã®èªç±æéã圌ã®åé¡ã«æè³ãã¹ããªã®ã§ããããïŒ äžè¬ã«ããã®ãããªéžææ§ã¯åœ¹ç«ã¡ãŸããããã¹ãŠã®äººãå©ãããã®ã§ããã責任æãæžããŸãã ãããããã¿ããªãå©ãããããšã¯åã«éçŸå®çã§ããããšãããããŸããã
ããã§ããããã€ãã®ã©ã€ãã©ãªãæ±ã£ãŠããããããã¹ãŠã®åé¡ã«å³åº§ã«å¯Ÿå¿ããã®ã§ã¯ãªããããã©ã€ãã©ãªããå¥ã®ã©ã€ãã©ãªã«ããžã£ã³ããããŸããåã©ã€ãã©ãªã§äžåºŠã«æ°æ¥éäœæ¥ãã次ã®ã©ã€ãã©ãªã«é²ã¿ãŸãã ãããŠãç§ãä»ããŠããããšã«ã€ããŠæžããŠããã ããã°æ°åã§çããããšãã§ããŸãããããªãã®çªããŸã å±ããŠããªãå Žåã¯äœæ¥ãçããããŸããã ããã«ãããã³ã³ããã¹ããåãæ¿ããé »åºŠãå°ãªããªããŸãã
ãããã®ãã³ãã¯ãã¹ãŠãã©ã€ãã©ãªã人æ°ãåãå§ãããšãã«åœ¹ç«ã¡ãŸãã
ãŠãŒãžãŒã³ïŒäººæ°ã®ããã©ã€ãã©ãªã®äœæè ããåçŸã§ããªããåäœãã¹ããæžãããšçãããšããããã¯äººã ã«ã圌ã¯ãã¬ãŒããŠããŠãå©ããããªãããšæããããŸãããïŒ
-ç§ã¯ãã®ãããªå¹æã«åºããããŸãããããã£ãã«ãããŸããã éåžžããŠãŒã¶ãŒã¯ãã¡ã³ãããŒãéåžžã«å¿ãããé«ã確çã§åé¡ã圌ã®åŽã«ããããšãç解ããŠãããšæããŸãã Lodashãã£ã«ã¿ãŒã䜿çšããŠããŠåé¡ãããå Žåã¯ãã誰ããLodashã䜿çšããŠãããããããããäœãééã£ãŠããå¯èœæ§ããããŸãããšããç¡æèã®æ°æã¡ã«ãªãã§ãããã ãã®ãããã»ãšãã©ã®äººã¯åé¡ã«æ³šæããå¿ èŠãããããšãç解ããŠããŸãã
EugeneïŒã©ã€ãã©ãªã人æ°ãåããããå€ãã®æéãå¿ èŠãšãããšããè²¢ç®è ãšããŠããªãã®åœ¹å²ãå ±æããã³ãã¥ããã£ã®ä»ã®ã¡ã³ããŒã«æš©å©ãäžãã䟡å€ã¯ãããã§ããïŒ
-ããã¯çŽ æŽãããã¢ã€ãã¢ã§ããéåžžã1人ããã®è€æ°ã®è¯ããã«ãªã¯ãšã¹ãïŒãŸãã¯å€§ããå Žåã¯1ã€ã®ãã«ãªã¯ãšã¹ãïŒãèŠã€ãããããã«è²¢ç®è ã®æš©å©ãäžããŸãã ç§ã®æèŠã§ã¯ãããã¯ããŸãæ©èœããŸãã ããšãã°ãMobXç¶æ ããªãŒã§ã¯ãã»ãšãã©ã®äœæ¥ãç§ã§ã¯ãªãä»ã®äººã«ãã£ãŠè¡ãããŠããŸãã ãŸããã³ãŒãããŒã¹ã«ã¯ãç§ãããç解ããããéšåãä»ã«ããããŸãããã¹ãŠããã®ç¶æ ã«ãªã£ãããšã¯çŽ æŽãããããšã§ãã ãã³ã¢ãMobXã®å Žåãããã¯å¿ é ã§ã¯ãããŸããããã¹ãŠããã§ã«èœã¡çããŠãããã¢ã«ãŽãªãºã ã¯éå»æ°å¹Žã«ããã£ãŠå€æŽãããŠããªãããããµããŒãäœæ¥ã¯ãããã§ãã ããããMobXç¶æ ããªãŒã®å Žåãå€ãã®ãŠãŒã¶ãŒã©ã€ãã©ãªãäœæãã人ã ãæå³çã«éžæããã¡ã³ãããŒã®æš©å©ãä»äžããŸããã çµå±ã®ãšãããæ¥åžžæ¥åã§ã©ã€ãã©ãªãç©æ¥µçã«äœ¿çšãããšãèŠéãããã¿ãŒã³ãäžè¬çãªåé¡ã«åºãããããšã«ãªããŸãã ãŸããéçºè ã®ã¢ãããŒã·ã§ã³ãšä¿¡é ŒæãäžããŠããããšæããŸãããªããªãã圌ãã¯å³æžé€šãçŽé¢ããŠãããã®ãæ±ãã®ãå©ããããšãã§ããããã§ãã
ãŠãŒãžãŒã³ïŒåæã«ãå³æžé€šãåäŸã®é ã«æã¡ã®ããããŠãããšããæèŠã¯ãããŸãããïŒ ãããããä»ã®äººãã©ã®ããã«ãããéçºãããã«ã€ããŠããªãã¯åæããªãã®ã§ããããïŒ
-æã ããã¯å°ãèµ·ãããŸãã ããããç§ã¯ãããæ£åžžã ãšæããŸãã ããªãã¯åäŸãã¡ãšå€§ããªé¡æšãããŸããã圌ãã¯æéãšãšãã«æé·ãã18æ³ã«ãªãããããŠããªãã¯åœŒããèªåã®éãèŠã€ããæãæ¥ãã®ã§ã圌ããææŸãå¿ èŠããããŸãã ããçšåºŠããªãŒãã³ãœãŒã¹ã®ã©ã€ãã©ãªãåæ§ã ãšæããŸãã ããããæåããã°ãããå°é£ãªç¶æ³ã«çŽé¢ãå§ããŸãã ããªãã¯ç§ãäžè¬çã«å¯ŸåŠããããªãã±ãŒã¹ã«å¯ŸåŠãå§ããŸãã ã³ãŒãã¯ãåœåç§ã欲ããã£ãçŸãããã¯ãªãŒã³ã§ãããã«ãªã³ãŒãã§ã¯ãªããªããŸãã ããã¯é¿ããããŸããã
MobXã«ã¯ããã®çŽ æŽãããäŸããããŸããå ã ã¯ããã³ã¬ãŒã¿ãéåžžã«ã·ã³ãã«ãªTypeScriptã®ããã«æžãããã®ã§ããã®åŸã人ã ã¯å®å šã«ç°ãªãå®è£ ãããBabelã§ããã䜿ãå§ããŸããã ãããŠãæçµçã«ãã³ãŒãããŒã¹ã®äžéšã¯ãTypeScriptãŸãã¯Babelã®ã©ã¡ãã䜿çšããŠããããå€æããããšããŠãããããéåžžã«èŠèŠãããªããŸãã ããã¯ã²ã©ãèãããã²ã©ãèŠããŸãã ããããããã¯ä»äºã®äžéšã§ãã ãããæããå¿ èŠã¯ãããŸãããããã¹ãŠãã©ãã§ãããŸãæ©èœããããšã確èªããå¿ èŠããããŸãã ãããŠããã®æå³ã§ãããªãã®åäŸã¯ããªããèããŠããªãã£ãæ¹åã«é²ãããšãã§ããŸãããæçµçã«ã¯äººã ããããžã§ã¯ããããŸãå©çšã§ããããšãéèŠã§ãããããããã¯æ£åžžã§ãã
EugeneïŒéçºã¯å€åããŠããã10ã20幎åããããã£ãšç°¡åã«ãªã£ãŠããŸãã ãããã®å€æŽã«é¢é£ããŠãªãŒãã³ãœãŒã¹ã®çŸåšã®ç¶æ³ã«ã€ããŠã©ãæããŸããããŸãå°æ¥ã«äœãæåŸ ããŸããïŒ å€§äŒæ¥ã¯ãã¹ãŠã®ç±ççãªãã¡ã³ã«ãªããŸããïŒ
-ããã¯é£ãã質åã§ãã 倧ããªå€æŽããããã©ããã¯ããããŸããã ãããŠãäžåºŠã«äž¡æ¹åã«å€åããããŸãã FacebookãšMicrosoftã«ã¯ç¹ã«æéãåããŠããŸããçŸåšã©ã®ãããéããŠããã®ãããµãŒãããŒãã£ã®éçºè ãã©ã®çšåºŠè²¢ç®ã§ããã®ãã React Nativeã¯ãäœåã®å€§éšåãFacebookããã®ãã®ã§ã¯ãªããç¹ã«å°è±¡çãªäŸã§ãã äžæ¹ãå€ç¬ãªäººã«ãšã£ãŠã¯ããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«åå ããããèªåã®ãããžã§ã¯ããäœæãããããããšã¯ãä»ã®ããã«ç°¡åã§ã¯ãªãã§ãããã ããŒã«ã¯ããæšæºåãããŠããã CodeSandboxãGitpodãªã©ã®åªãããªã³ã©ã€ã³IDEããããŸã ã ç§ã¯ããæ°é±éGitpodã§ä»äºãããŠããŸããããããã¯çŽ æŽãããããšã§ããããŒã«ã«ã§äœãããªããŠããã«ãªã¯ãšã¹ãããã§ãã¯ã§ããŸãã ãã©ãŠã¶ã§Dockerãå®è¡ããã ãã§éçºã§ããŸãã ãã®ãããå€æŽãäœã«ãªããããããŸããã
EugeneïŒ8幎åãç§ãC ++éçºè ã ã£ããšããçŸåšã®ãããªãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã¯ãããŸããã§ããã ãããŠä»ãWebãšJavaScriptã®äžçã§ã¯ããªãŒãã³ãœãŒã¹ã®éçºãã©ãã©ãéããªã£ãŠããããšãããããŸãã ãã®æé·ã¯ç¶ãã®ã§ããããïŒ
-éåã¯ç¶ããšæããŸãã ç§ã®æèŠã§ã¯ãçç±ã®1ã€ã¯æ¬¡ã®ãšããã§ããäŒæ¥ãšéçºè ã®äž¡æ¹ãããªãŒãã³ãœãŒã¹ãéçºãŸãã¯äœ¿çšãã人ã«ãšã£ãŠæçšã§ããã ãã§ãªããåŸæ¥å¡ãèŠã€ããã®ã«ã圹ç«ã€ããšããŸããŸãç解ããŠããŸãã ãã®äººã®ãªãŒãã³ãœãŒã¹ãžã®åå ãèŠããšãäžæ¥äžã€ã³ã¿ãã¥ãŒãããããã圌ã«ã€ããŠãã£ãšç解ã§ããŸãã 圌ãåé¡ã«çããããããããéå§ããæ¹æ³ã¯å€ãã瀺ããŠããŸãã éçºè ãäŒæ¥ã¯ããã®éèŠæ§ããŸããŸãèªèãå§ããŠãããšæããŸãã
ãŠãŒãžãŒã³ïŒããã§ã¯ããªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã®éçºãã€ã³ã¿ãã¥ãŒã«åœ¹ç«ã€ãšæããŸããïŒ
-ãŸãã«ã ããªããäŒç€Ÿã§ãããããªãã®APIã«å¯æ¥ã«çµã³ä»ããããŠããªããã®ãããªã©ã€ãã©ãªãæã£ãŠãããªãã人ã ãåå ããããã«ãªãã®ã§ãããã¯çŽ æŽãããã§ã-ãããŠåœŒãã¯ãŸãã«ããªããå¿ èŠãªãã®ãããããŸããã ãããŠãå¯çš¿è ã®1人ãéããšãåå ãããããªããäœãæåŸ ã§ããããããããç解ã§ããŸãã ãã®çç±ã ãã§ãå€ãã®èå³æ·±ãããšãéããããšæããŸãã
DmitryïŒãªãŒãã³ãœãŒã¹å šè¬ã«ã€ããŠè©±ããŸããããå ·äœçã«ã¯MobXã«é²ã¿ãŸãããã æåã«ã©ã®ããã«ããªãå§ããã®ã§ããïŒ
-ãã質åã§ãã Mendixã«ã¯ãCïŒã§èšè¿°ãããWindowsã¢ããªã±ãŒã·ã§ã³ããããŸãã æ°å¹Žåãç§ãã¡ã¯ããããŠã§ãã«ç§»æ€ããããšã決ãã䜿çšããã¹ã¿ãã¯ãèŠã€ãå§ããŸããã Reactã¯ãŸã å§ãŸã£ãã°ããã§ãAngularã¯ãã°ããåããååšããŠããŸããããEmberã¯ããªã人æ°ããããŸããã ãããŠãããªãæ©ããã³ã³ããŒãã³ãã¢ãã«ãšææ¡ãããæœè±¡åã¬ã€ã€ãŒã®ããã«ãReactã«æãããŸããã
ãããããã®åŸãããã©ãŒãã³ã¹ã®åé¡ãããããšãããããŸãããReactã®å Žåã§ããDOMãå®å šã«æŽæ°ããã®ã¯éåžžã«é«äŸ¡ã§ããããšãããããŸããã CïŒã§ã¯ãã¢ãã«ã絶ããæŽæ°ããŠãã£ã³ãã¹å šäœãåæç»ããŸããããããããéåžžã«é«éã«åäœããããã誰ãæé©åãè¡ããŸããã§ããããããã£ãŠããã¹ããŒããªæ¹æ³ã§ã¬ã³ããªã³ã°ãè¡ããå¿ èŠã¯ãããŸããã§ããã ããããããã§DOMã®å Žåãæ¯ç§60åãã¹ãŠãåæç»ããããšã¯ã§ããªãããšãããããŸããã ããã§ãå¹æçã«ãããè¡ãæ¹æ³ãèããŸããã äžå€ã®ã¢ãããŒãã«ã€ããŠèããŸãããããã®å Žåãããã€ãã®çç±ã§é©åããŸããã§ããã ãããã®1ã€ã¯ã䜿çšããããŒã¿ãšãã®ã¬ã³ããªã³ã°æ¹æ³ã§ãã åãæ å ±ãããŸããŸãªå Žæã§ã¬ã³ããªã³ã°ãããŸããã ããŒã¿ãæ£èŠåããããšã¯éåžžã«å°é£ã§ãã ãããŠç¬¬äºã«ãããªãã¯ãŸã ããŸãã«ãå€ãã®è©³çŽ°ã«å¯ŸåŠããªããã°ãªããªãã£ãããã§ãã ããšãã°ãã¬ã³ããªã³ã°ããããŒã¿ã®ã»ã¬ã¯ã¿ãŒãäœæããå¿ èŠããããŸãã
ããããCïŒã³ãŒããšåãåçŽãªã³ãŒããèšè¿°ããåã«ãäœããã¬ã³ããªã³ã°ããããããå°æ¥ã©ã®ããã«å€åããããæ°ã«ããããªãå Žåã¯ã©ãã§ããããã ã³ã³ããŒãã³ãã«ãããã§ã¯ãããŒã¿ã®ãã®éšåãããããååŸããŸããããã®éšåãããããååŸããŠãäœããã¬ã³ããªã³ã°ã§ããŸãããšèšããããªãå Žåã¯ã çŸåšã©ã®ãã¯ãããžãŒãå©çšå¯èœãã調æ»ãå§ããKnockoutãMeteorããããŠïŒå°ãªããšãæŠå¿µçã«ã¯ïŒAngularã§ã䜿çšãããŠãããã©ãã€ã ã«ããã«å°éããŸããã ããŒã¿ã®äŸåé¢ä¿ãšã³ã³ããŒãã³ãã®é¢ä¿ããŸãã¯ãã€ã¬ã³ããªã³ã°ããããæå³ããªãå Žåã
ç¹ã«ã¢ããªã±ãŒã·ã§ã³ã倧ãããªããšããªã人ã ããã®ãããªã¢ãããŒããå«ãã®ããç解ãå§ããŸããã ãããŠãå€ãã®å Žåãäºæž¬å¯èœæ§ãšããããã°ãã®æ¬ åŠã«ã€ããŠäººã ãæžå¿µããŠããããšãå€ããäœããããŸãã«ãé »ç¹ã«ããŸãã¯ããŸãã«ããŸãã«ããŸãã¯ééã£ãé åºã§è¡ãããå¯èœæ§ãããããšãå€æããŸããã ãããŠãç§ãã¡ã¯ãã£ãšè¯ãã§ãããšæ±ºããŸããã ç§ãã¡ã¯åãç®æšãç®æããŠåªåããããšãã§ããŸãããããã¹ããŒããªå®è£ ãžã®ã¢ãããŒãã§ãã ãããŠãMobXãç»å ŽããŸããã ãªãã¶ãŒããšãªãã¶ãŒããã«ã®é¢ä¿ããã£ããã£ããã ãã§ãªããäŸåé¢ä¿ã°ã©ãå šäœãæ§ç¯ããããããã¹ãŠã®ãªãã¶ãŒããŒãæãå¹ççãªé åºã§å®è¡ãããããšã確èªã§ããŸãã ãªã¢ã¯ãã£ãããã°ã©ãã³ã°ã«ã¯ããã°ãªããããšããæŠå¿µããããŸãããããã£ãŠãããã§ã¯ãããè¡ãããšã¯ã§ããŸããã äžè¬çã«ãããã§ã¯æ¢åã®ãã®ãåãäžããŸããããããäºæž¬ãããããã®ã«ããããšè©Šã¿ãŸããã
DmitryïŒã€ãŸããäœããã®ã¢ãããŒãã奜ããªã®ã«ãæ¢åã®ã©ã€ãã©ãªãŒã§ã¯ååã§ãªãå Žåãããªãã¯ãããåãå ¥ããŠããè¯ãããããšãã§ããããã¯äººæ°ã«ãªããŸããïŒ
-ã¯ãããŸãã«ïŒ ããã§ç§ã¯æåã«å éšç®çã®ããã«ãããæžããããããReactEuropeã«è¡ããŸããã 2015幎ã®ããã§ãFluxãã¿ãŒã³ã«ã€ããŠå€ãã®è©±ããããŸããã ãã®åŸããã©ãã¯ã¹æŠäºãæ¿åããã ãããŠãç§ãã¡ã¯ãã§ã«è§£æ±ºããåé¡ã«å€ãã®ãšãã«ã®ãŒã泚ãã§ãããšæããŸããã « ». . , « Flux», - . .
: MobX , . , ?
â ! « MobX Lite». , MobX, 200 . , . . , . MobX. , â API, . , , API . , MobX 5 MobX 4 , Proxy .
: Proxy. - , . ?
â , , Proxy - , . . Chrome 8, , .
: . , jQuery -, , - . Redux MobX. ?
â , . , jQuery- . , JQuery , . - . jQuery React , , , . . , state definitions .
, , React UI. . , - UI .
: ? , ?
â , . , immutable values. , , immer â , immutable states JS. , state management. , , , . , , , GraphQL, , . âŠ
: -, MobX?
â , , , . . : , to-do list . , , todo. , - , todo- , . . , .
: . . , - . , ?
â , . : , . â , , . , . Docker, . , , , . â « ». -, â , , . , , . â , , - . - -, , . , , . : -, , . .
: ( , ) , , Medium YouTube. ?
â , , â . , . â . , , , ⊠. . , . . , . , , . , , , , - . , . , (, , ) â . , , . .
: . â ?
â . , MobX. , . MobX.
HolyJS 2018 Moscow , 24-25 . state management. .