-ç§ã®ç¥ãéãã70幎代ã«çºæãããäŸåé¢ä¿ã®å転ãDIã³ã³ãããŒããã®ä»ã®ãã¿ââãŒã³ã¯ãããã³ããšã³ãéçºã®äžçã«ããŸããã¡ããšå ¥ã£ãŠããŸããã§ããã ããã«ã¯ããããçç±ããããŸãã äºå®ã®äžéšã¯ãå€ãã®äººã ããªã圌ããå¿ èŠãªã®ãå šãç解ããŠããªããšããããšã§ãã
DIãšã¯äœããäŸåé¢ä¿ã®é転ãšã¯äœããããããããžã§ã¯ãã§ã©ã®ããã«åœ¹ç«ã€ãããããŠDIã䜿ãå§ãããšã©ããªçŽ æŽãããããŒãã¹ãåŸããããã説æããããšæããŸãã
æå§ãã«ãæãåºæ¬çãªæŠå¿µã äŸåé¢ä¿ã®é転ãšã¯äœã§ããïŒ æ©èœãèšèšãããšããç¹å®ã®åå¥ã®ã¯ã©ã¹ã1ã€ã®æ©èœãå®è¡ããã ãã®å°ããªç¶æ ã«å解ããå¿ èŠããããŸãã
ã¹ã©ã€ãã®äŸã«ã¯ãUserãšUserSettingsããããŸãã ãŠãŒã¶ãŒèšå®ã«é¢é£ãããã¹ãŠãå¥ã®ã¯ã©ã¹ã«ç§»åãããŸããã ãããã©ã®ããã«è¡ãããšãã§ããŸããïŒ 2ã€ã®ã¢ãããŒãããããŸãããã®ãããªã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãå éšã§äœæããããå€éšã§åãå ¥ãããã§ãã ãããäŸåé¢ä¿ã®å転ã®äž»ãªååã§ãã å€éšããããã€ãã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŠããå éšã«è»¢éãããšãããã€ãã®å©ç¹ãåŸãããŸãã
å®éãçç±ã¯1ã€ã ãã§ããç¹å®ã®å®è£ ã«äŸåããã®ã§ã¯ãªããã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ã«äŸåããããã«ãªããŸããã ããã€ãã®å°ããªå解ãããé¢æ°ãå¥ã®ã¯ã©ã¹ã§åãåºããããšèšããšãããããã©ã®ããã«å®è£ ããããã¯éèŠã§ã¯ãããŸããã 䜿çšããããšãã§ããã€ã³ã¿ãŒãã§ã€ã¹ãäžèŽããå Žåãã©ã®ã¯ã©ã¹ã®ã©ã®ã€ã³ã¹ã¿ã³ã¹ãã¹ãªããããããã¯é¢ä¿ãããŸããã ãŸããJSã«ã¯ã€ã³ã¿ãŒãã§ãŒã¹ããªãããããã®ã¡ãœããã¯ãã倧ããªã€ã³ã¿ãŒãã§ãŒã¹ãããåŒã³åºãããŸãã
UserSettingsã®äŸã¯å°ãæèããå€ããŠãããæ¯æ¥æžãã³ãŒãã§ã¯ãããŸããã
JSã®çŸå®ãšçŸå®ã«è¿ããããå°ãäžè¬çãªã³ãŒãã¯åæçã§ãã ããŒã¿ã¢ãã«ãäœæããå Žåã¯ããã®ããŒã¿ãã©ããããååŸããå¿ èŠããããŸãã æãäžè¬çãªæ¹æ³ã®1ã€ã¯ãAjaxãä»ããŠãµãŒããŒã«ã¢ã¯ã»ã¹ããããŒã¿ãåæçã«åä¿¡ããŠäœæããããšã§ãã
äŸåé¢ä¿ã®å転ã®ã¹ã¿ã€ã«ã§ãã®ã³ãŒããæžãå§ãããšã次ã®ããã«ãªããŸãã ãã®ã³ãŒãã¯æé©ãªæ¹æ³ã§æžãããŠããªãã ãã§ãªããéåžžã«æªãããã®ã§ãã ãŠãŒã¶ãŒã®åçãäžèŠ§è¡šç€ºããã³ã³ããŒãã³ãã1ã€ã ã欲ããã£ãã®ã§ããã®ããã«å€§éã®ã³ãŒããæžãå¿ èŠããããŸããã
å®éã®ãããžã§ã¯ãã§ã¯ãã³ã³ããŒãã³ãæ°ã¯æ°åã«ãªããããŒãžäžã§ãããã®ãããªã¢ã»ã³ããªã¯éåžžã«æªç©ã®ããã«ãªããŸãã
äœãã§ããŸããïŒ ã³ãŒããæªåãããŸãã æåã®DIã³ã³ãããŒãæãåå§çãªé¡ãäœæã§ããŸãã 以åã«æžãããã®ããã¹ãŠåã蟌ãã§ãã¡ãœããã«ããã¯ããŸãã ããã·ã¥ã«å ¥ããŸãããããDIãšåŒã³ããããDIã³ã³ãããŒãšèŠãªããŸãã ãã®åŸãç§ãã¡ã¯æªæ¥ãå°ãè¯ãããããã®ç¬¬äžæ©ãèžã¿åºããŸãã
äžçªäžã®è¡ã¯ããŠãŒã¶ãŒãèšå®ãåçããŸãã¯ããã§èª¬æã§ããä»ã®äœçŸãã®æ¹æ³ãå¿ èŠãªãšãã¯ãã€ã§ããDIã䜿çšããŠãããåŒã³åºãããšãã§ããŸããèšèšãããŸããã
ã¢ãã«ãã¯ã©ã¹ãã³ã³ããŒãã³ãã®æ§ç¯ãæ åœãããã¹ãŠã®ã³ãŒãã¯ã1ã€ã®ã³ã³ãããŒã«åé¢ãããŸãã åœç¶ããã®æ¹æ³ã§ã³ãŒããèšè¿°ããããšã¯å°é£ã§ããããã®ãã¡ã€ã«ã¯ããã«å€§ãããªããŸãã ãã§ã«åé¡ããããŸãã ã³ãŒããå°ãåŠã¶ãšãå°ãªããšããŠãŒã¶ãŒã2åããŒãããŠããããšã«æ°ä»ãã§ãããã ããã¯æªãããšã§ããããã¯é¿ããªããã°ãªããŸããã
ããã«ããã¹ãŠã®ã³ãŒãã¯å®åæã§ãã ããã€ãã®æ©èœã䜿çšããŠçœ®ãæããããšãã§ããŸãã ãããŠããã¹ãŠã®åé¡ã解決ããç¬èªã®ã³ã³ãããäœæã§ããŸããããã¯ã¯ãŒã«ã§é«éã§ãã ããªãã欲ãããã®ã
ãããç§ã圌ã«æãã ããšã§ãã
圌ã¯èªåã§ã¯ã©ã¹ãæ¢ãå¿ èŠããããŸãã ã©ããããã€ã³ããŒãããäœæããŠäœ¿çšããå¿ èŠããããŸãã ããã¯æãŸãããããŸãããã³ã³ããã«ä»»ããŠãã ããã
圌ã«ã€ã³ã¹ã¿ã³ã¹ãéåæã«äœæããŠã»ããã æåã«ã³ã³ããã«ãã®ãããªèŠä»¶ãèšå®ããå Žåãå°æ¥ã€ã³ã¹ã¿ã³ã¹ãäœæããæ¹æ³ãAjaxã«è¡ãããæéãè²»ãããã©ããããŸãã¯åæããŠè¡ããã©ããã«åé¡ã¯ãããŸããã äœæãéåæã®å Žåããã¹ãŠããã§ã«æäŸãããŠããŸãã
åå©çšã ããã¯éåžžã«éèŠã§ãã 倧ããªã³ã³ããã®äœæãéå§ãããã®äžã«ã€ã³ã¹ã¿ã³ã¹ãåå©çšããªãå Žåãå€ãã®äžèŠãªäžèŠãªãªã¯ãšã¹ãããµãŒããŒã«éãããå±éºããããŸãã ãããé¿ãããã
æåŸã®ãã€ã³ãã åã®ã¹ã©ã€ãã§ç€ºããå¿ é ã®éåžžã®ã³ãŒãã¯ã誰ãåã°ãªãã£ããšç¢ºä¿¡ããŠããŸãã 代ããã«ããã®ãã¹ãŠãèšè¿°ããããã¹ãŠãç§ã®ããã«æ©èœãããéåžžã®å®£èšçãªJSONãæžãããã§ãã
ååé¡ã®è§£æ±ºæ¹æ³ã段éçã«åŠç¿ããŸãã
ã¯ã©ã¹ãåçã«èŠã€ããããšãã©ã®ããã«æããããšãã§ããŸããïŒ webpackã䜿çšã§ããŸããåçã€ã³ããŒãæ©èœããããŸãã ãã®ãããªã³ãŒãã¯ãå°ãå¥åŠã«æããŸãããWebpackããã³ãã«ããåŸã§ãæ©èœããŸãã ããã«ããããã®æ¡ä»¶ã«è©²åœãããã¹ãŠã®ã¯ã©ã¹ã¯ãèªåçã«åå¥ã®ãã³ãã«ã«ãªããéåæã§ããŒããéå§ããŸãã ãããŠãã¯ã©ã¹èªã¿èŸŒã¿ã³ãŒãã¯ãã¹ãŠãã®ããã«ãªããŸãã ã¯ã©ã¹ãåæçã«èŠæ±ããŠååŸããã ãã§ãã getClassé¢æ°ã¯ãåžæã©ããã«è¡šç€ºãããå ŽåããããŸãã ããã€ãã®äŸåé¢ä¿ãéçã«ããŒãããå Žåã¯ãããã«èšè¿°ã§ããŸãã ããã¹ããŒããªãã³ãã«ãå¿ èŠãªå Žåã¯ããã¡ãã§èª¬æã§ããŸãã ããã¯ãã¹ãŠãæŠããŠããªã次第ã§ãã
ã€ã³ã¹ã¿ã³ã¹ãäœæããã«ã¯2ã€ã®æ¹æ³ããããŸãã ãããã©ã®ããã«èµ·ããããšããæãããæ§æãæãã€ãããããçš®ã®æ £ç¿ãå°å ¥ããããšãã§ããŸãã ã³ãŒãã£ã³ã°ã®å¿ èŠã¯ãªããäœããèŠããŠãåžžã«ãããã®æšæºã«åŸãã ãã§ããã®ã§ãç§ã¯ã³ã³ãã³ã·ã§ã³ã®ããæ¹ã奜ãã§ãã
ãã®å Žåã次ã®èŠåãå°å ¥ããŸãããã¹ãŠã®ã¯ã©ã¹ã«éçãã¡ã¯ããªã¡ãœãããå¿ èŠã§ãã 圌ã¯ããã®ã¯ã©ã¹ãã©ã®ããã«æ§ç¯ãããããã©ã®äŸåé¢ä¿ãã¹ããŒããããã«ã€ããŠè²¬ä»»ãè² ããŸãã 圌ã¯ãã¹ãŠã«è²¬ä»»ããããŸãã
CreateInstanceã¯éåžžã«ã·ã³ãã«ã§ããããšãå€æãããã¡ã¯ããªã¯åæãšéåæã®äž¡æ¹ã«ãªããŸãã ããŠããŠãŒã¶ãŒãäœæããããã®ã³ãŒãã¯ç°ãªã£ãŠããŸãããããã§ãstillãã§ãã
ã€ã³ã¹ã¿ã³ã¹ãåå©çšããŸãã ãããéæããããã«ãæ°ããã³ã³ã»ãããå°å ¥ããŸãã DIã³ã³ããã®äžéšãšããŠäœæãããã€ã³ã¹ã¿ã³ã¹ã«ã¯ãèå¥åãå²ãåœãŠãããŸãã ãããã®èå¥åãèãåºããŸãããããã®èå¥åã¯ãã·ã¹ãã ã®äžéšã®ãšã³ãã£ãã£ãèšè¿°ããŸãã ãã®å ŽåãæåŸã®è¡ã§çŸåšã®ãŠãŒã¶ãŒã説æããŸãã 以åã«äœæããé¢æ°ã®ã¯ã©ã¹ãäœããã®æ¹æ³ã§ååŸãããã®ã¯ã©ã¹ããã€ã³ã¹ã¿ã³ã¹ãäœæããŠãã£ãã·ã¥ã«å ¥ããŸãã
ãã®äŸã§ã¯ãããã€ãã®ãã°ãèš±å¯ãããŠããŸãã CreateInstanceãã£ãã·ã¥ããŒã¹ã®ã¡ãœããã®å®å šãªå®è£ ã«ã¯ãçŽ100è¡ããããŸãã æ°ã«ãã人ã¯ã ãããèªãããšãã§ããŸã ã
æåŸã¯äŸåé¢ä¿ã§ãã éåžžã®ããã·ã¥ã«ã€ããŠèª¬æããŸããããŒã¯DIã³ã³ãããŒããã®èå¥åã§ãããå€ã¯äžèšã®ãã¹ãŠãäœæã§ããæ§æã§ãã UserSettingsã¯ã©ã¹ãååŸããŠäœæããŸãã currentUserã§ã¯ããŠãŒã¶ãŒã¯ã©ã¹ãååŸããUserSettingsã§äŸåé¢ä¿ãšããŠãããããŸãã UserSettingsãšã¯äœã§ããïŒ ä»¥åã«çºè¡šãããã®ã
ãã®ãããªæ§é ã説æããã®ã§ã圢æãããäŸåé¢ä¿ã§ããªãŒå šäœãééããåçŽãªã¢ã«ãŽãªãºã ãéçºã§ããŸãã å®éããã®ããªãŒã«ã¯ã°ã©ãã圢æãããŠããŸãã ãã®ãããªã¢ã«ãŽãªãºã ã¯ãå¿ èŠãªãã®ããã¹ãŠåéããŸãã
ã¹ã©ã€ãã®ãã€ãºã®éãæžããããã«ãå¥ã®èŠåã玹ä»ããŸãã
ãªãJSONã§æžãã®ã§ã¯ãªããäœã§ãæžããŠãã ããããããŠãã£ãšåçŽãªåœ¢åŒã§ãã¹ãŠãèšè¿°ããŠã¯ã©ãã§ããããã ã¯ã©ã¹ãå¿ èŠãªå Žå-ã¯ã©ã¹ãšäŸåé¢ä¿ãå¿ èŠãªå Žåã¯æååãååŸããŸã-é åã䜿çšããŸãã ã©ã®åœ¢åŒãéžæããŠãããŸããŸããã äž»ãªããšã¯ãããã楜ããã§ãããã§äœãèµ·ãã£ãŠããããç解ããããšã§ãã ããã¯åãã¹ã©ã€ãã§ãæžãçŽãããã ãã§ãã
ãã®çµæãããããã¹ãŠãå®è£ ãããŸãšãããšãèªåãã³ãã«ãè¡ãããŸãã ããã§ãçŸåšã®ãŠãŒã¶ãŒããªã¯ãšã¹ããããšãDIã³ã³ãããŒããã®ã¯ã©ã¹ãå«ããã³ãã«ãåæã«ããŒãããéåæã«å¿ èŠãªäŸåé¢ä¿ãæ¢ã«ããŒãã§ãããšããèå³æ·±ããªãã·ã§ã³ãåŸãããŸãã äºå®ã圌ã¯ã¯ã©ã¹ã®å ŽæïŒããããããçš®ã®ãã³ãã«ïŒãšãå¿ èŠãªäŸåé¢ä¿ã®çš®é¡ã«é¢ããæ å ±ãæã£ãŠãããšããããšã§ãã çéžã®äŸïŒåçã®ãªã¹ãã衚瀺ããã³ã³ããŒãã³ããäœæãããå Žåãåçã§ãããã®ã³ã³ããŒãã³ããæç»ããã³ãŒããååšããJSããŸã ããŒããããŠããã®ã§ããã®æç¹ã§ããŒã¿ã®ãµãŒããŒãžã®ãªã¯ãšã¹ããéä¿¡ã§ããŸãã ãããã®äž¡æ¹ãæçµçã«æºãããããšããããååŸããŸãã
ããã¯ãDIã³ã³ãããŒã䜿çšããã ãã§ååŸã§ããŸããä»ã«äœãå¿ èŠãããŸããã äŸåé¢ä¿ã®é ä¿¡ã容æã§ãã DIã³ã³ãããŒãæ倧éã«äœ¿çšãå§ãããšããã¹ãŠã®äžè¬çãªãŠãŒãã£ãªãã£ãã³ã³ããŒãã³ããããŒã¿ã¢ãã«ãªã©ãäžçã®ãã¹ãŠãããã«è¡šç€ºããå§ããŸãã ãŸããããæç¹ã§äœããååŸããå¿ èŠãããå Žåã¯ã1è¡ã®äŸåé¢ä¿ãèšè¿°ããã ãã§ããããã®äœææ¹æ³ãæ§ææ¹æ³ãæ°ã«ããããã¹ãŠã®æ®µéãçµãå¿ èŠãããè€éãªããã»ã¹å šäœã説æããŸãã äŸåé¢ä¿ãšããŠã³ã³ããããååŸããã ãã§ãã
ã³ãŒãã®åå©çšã ç¹å®ã®ã¯ã©ã¹ã§ä»ã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãæ瀺çã«äœæããªããããªæ¹æ³ã§æžãå§ãããšãå®è£ ã«çžãããªããªããŸãã ä»»æã®çš®é¡ã®ã€ã³ã¹ã¿ã³ã¹ãäŸåé¢ä¿ãšããŠã¯ã©ã¹ã«ã¹ãªããã§ããŸãã åçã®åãã³ã³ããŒãã³ãã®ãã¬ãŒã ã¯ãŒã¯å ã§ãããããçš®é¡ã®åçãããŒãããŠãã©ãããã§ãæã®ã²ããåŒãããšãã§ããŸãã ã³ã³ããå ã§ã¯ããããã¯ãã¹ãŠæ§æå ã®1è¡ã ããç°ãªããŸãã ããªãã¯ãã å¥ã®äžæ¯ãåããŸããããã¯ããã§ããããã¯ããªãã«ãšã£ãŠéåžžã«ç°¡åã§ãã
ã³ã³ããããããžã§ã¯ãã®éåžžã«éèŠãªå Žæã«åºå®ããããšããã«ããã¹ãŠã®åºç€ãšããŠäœ¿çšãå§ããŸãã DIã³ã³ããã䜿çšããŠéåžžã®ãã«ãããŒãžSPAãäœæããæ¹æ³ã瀺ããããšæããŸãã
ããçš®ã®ã«ãŒã¿ãŒã䜿çšããŸãã ãã®å®è£ ã¯éèŠã§ã¯ãããŸããã äœããã®URLã§ãã£ããããããšãã«ããã®ããŒãžã«ååãä»ããããšãéèŠã§ãã ãã®å Žåããããã家ãšãããã¡ã€ã«ã
ã³ã³ãããæã¡åž°ããããã«ããŒã家ãšãããã¡ã€ã«ãšããŠèšè¿°ããŸãã ç§ãã¡ã¯ããã«è¡ããããªããã¹ãŠã説æããŸãã ãããŠãäœããã®çš®é¡ã®ã³ã³ããŒãã³ããååŸããŠãããã£ã«æ¿å ¥ããŸãã ãã®å Žåãããã¯ããçš®ã®ã¬ã€ã¢ãŠãã§ãã ã¬ã€ã¢ãŠãã¯ãã¡ãã¡ã§äœ¿çšãããç°ãªãäŸåé¢ä¿ãããã«å«ãŸããŠããŸãã 次ã«äœãããïŒ ã©ã®ã³ã³ããŒãã³ããããæ·±ããªããããã§ã«ãã®æ®µéã§ã¯éèŠã§ã¯ãããŸãããæ¢ã«äœããã®åœ¢ã§æ©èœããŠããããã誰ããããããã»ããã¢ããããŸãã ç§ãã¡ãä»åãçµãã§ããæœè±¡åã®ã¬ãã«ã ããéèŠã§ãã
ããã ãã§ããããŒããšãããŒãžåããšã«DIã³ã³ããã«äŸåé¢ä¿ããªã¯ãšã¹ãã§ããŸãã ãã®å Žåãããã¯ã¬ã€ã¢ãŠãäžã®ãµã€ã³ã§ããããã®ã¬ã€ã¢ãŠãã«ã¯å¿ èŠãªãã¹ãŠã®ããŒã¿ããã¹ãŠã®ã³ã³ããŒãã³ããå®è¡ããããã¹ãŠãæ¢ã«å«ãŸããŠããŸãã æ¬äœã«è¿œå ããããã ãã«æ®ããŸãã
ããããã¹ãŠã®ãã¹ã容ææ§ã¯ã©ãã§ããïŒ äœ¿çšãéå§ãããšããã«ãã¯ã©ã¹ãã³ã³ããã«çŽæ¥äŸåããªããšããç¶æ³ãçºçããŸãã ããªãã¯ã©ãã«ãããŸãããããã®ãããªäŸåé¢ä¿ãå¿ èŠã ãšããæå³ã§ã³ã³ãããçŽæ¥äœ¿çšããããšã¯æ±ºããŠãããŸããããããååŸããŠååŸããŸãã ããããããããåã®ã¹ã©ã€ãã§ç€ºããããã«ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãã¹ãã©ããã®ã¢ãŒããã¯ãã£ã®æäžéšã«ãããŸãã
å®éãã¯ã©ã¹ã¯ãŸã£ããäŸåããŠããããã©ãããã§ãã©ãããã§ã移æ€ã§ããŸãã
ãã¹ãŠã®äŸåé¢ä¿ã¯äœæäžã«æž¡ããããã¹ãã«ã€ããŠè©±ããŠããå Žåã¯ããã®å Žæã§mokeeããã£ã¯ã¹ãã£ããŒã¿ãªã©ãç°¡åã«æ·»ä»ã§ããŸãã DIã³ã³ããã«ããããã¹ãŠããã®ããã«æ©èœãããããªæ¹æ³ã§ã³ãŒããèšè¿°ã§ããŸããã
ããã€ãã®äŸã äœæãããšãããã¹ãã«æºãã£ãŠããããŠãŒã¶ãŒèšå®ãæ¿¡ãããŠãæžãããã®ã§ã¯ãªããç§ãã¡ãæãã§ããããšãæ£ç¢ºã«å®è¡ãããå ŽåããŠãŒã¶ãŒãäœæãããã¹ãããŒã¿ãã¹ãªããããããšãã§ããŸãã ãã®ããã«ã³ã³ããã䜿çšã§ããŸã-äŸåé¢ä¿ããªãŒããã§ã«åœ¢æãããŠããã®ã§ããããã®ããã€ããåå®çŸ©ã§ããŸãã å°æ¥çã«ã¯ãåã«DIãæäœããããžãã¯ã«ãã£ãŠãUserSettingsãååŸããããšæã£ããã¹ãŠã®äººããã©ãã«ããŠãããããåãåãããšã«ãªããŸãã ãã¹ãã«äœ¿çšã§ããŸãã
å¥ã®èå³æ·±ãäŸããããŸãã ããŒã¿ãåŸãããã«ãµãŒããŒã®ã©ããã«è¡ããã¹ãŠã®ããŒã¿ã¢ãã«ããã®ç®çã®ããã«æžãããajaxAdapterã䜿çšãããšä»®å®ããå Žåããã¹ãäžã«ããžãã¯ãå®è£ ã§ããç¬èªã®ã¯ã©ã¹TestAjaxAdapterã«çœ®ãæããããšãã§ããŸãã ããã¯ãããšãã°ã·ãã³ã§èª°ãããããæ¿¡ããããšããå Žåã«å®è£ ãããæ¹æ³ã§ãã
ãŸãã¯ãããã«æ·±ãããããšãã§ããŸãã ãã®ã¢ããã¿ãŒã«ãã®ããžãã¯ãå®è£ ããããããã¹ãã§æåã«äœ¿çšããããšãã«å®ãµãŒããŒããã®èŠæ±ãšå¿çã®èšé²ãéå§ãããåèµ·åãããšãã£ãã·ã¥ããåçŽã«åçŸãããŸããã ãã®ãã£ãã·ã¥ããã¹ãããŒã¿ã®ãªããžããªã«è¿œå ããŸãã ãããŠããã£ã¯ã¹ãã£ãŒã§ãã¹ããè¡ãããå ŽåããµãŒããŒãšã®éä¿¡ã®ããžãã¯ãæ¢ã«å®è£ ãããŠããããã«ãã£ã¯ã¹ãã£ãŒãæéãšãšãã«å€åããããšãæããŠããå ŽåãTestAjaxAdapterã眮ãæããŸãã ãªããžããªå ã«ãã£ãã·ã¥ã圢æããããã®åŸåå©çšãããŸãã
ãããã©ã®ããã«ããã«èå³æ·±ããã®ã«äœ¿çšã§ããŸããïŒ Geminiã®ãã¹ãã«ã€ããŠã¯ããã§ã«ããã§èšåãããŠããŸãã ããã¯èŠèŠçãªååž°ãã¹ãã®äžçš®ã§ãã 誰ãç¥ããªãããžã§ããã¯ãå®æããããŒãžã§ãããã¯ã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®ãããªããžããªã®ãã¹ãããŒã¿ã«å ¥ããŠãéãã¹ããè¡ããããšãã«åèµ·åããã¹ã¯ãªãŒã³ã·ã§ããããã¯ã»ã«ããšã«æ¯èŒãããã¹ãæ¹æ³ã§ãã ã©ããã§ãã¯ã»ã«ãäžèŽããªãã£ãå Žåããã¹ãã¯å€±æããŸããã ããã¯éåžžã«ã·ã³ãã«ã§å¹æçãªã¿ã€ãã®ãã¹ãã§ãããèŠèŠçãªååž°ããã§ãã¯ããŸãã ç§ãã¡ã¯CSSã䜿çšããŠããŸããã次ã®æ©èœãåããŠããŸãã ãžã§ããã¯ãããã®æ éãåãé€ãã®ã«åœ¹ç«ã¡ãŸãã
ãã®å Žæã§äœãããŸãããïŒ ãã¹ãŠãDIã³ã³ãããä»ããŠå®è£ ãããŠãããããDIã³ã³ããããã®èå¥åããã©ã¡ãŒã¿ãšããŠæž¡ãããšãã§ãããµãŒããŒãç¹å¥ã«æºåããŸããã 圌ã¯åã«ãããäœæããç§ãã¡ãæãã§ãããã®ã³ã³ããŒãã³ãã ããããŒãžã«æããã ãã®å Žåãã¬ã·ããäœããã®ã«ãŒãããã¹ããå®è¡ãããå®éã®ããŒã¿ãå®éã®ã¹ã¯ãªãŒã³ã·ã§ããã«é¢é£ãããã®ããããŸãã
ãã¹ãã®å®è¡åŸãajaxAdaptersã眮ãæãããããµãŒããŒã®éä¿¡æ¹æ³ã«é¢é£ãããã£ãã·ã¥ã圢æãããŸããã ãã®ããŒã¿ããããŸã-æéã®çµéãšãšãã«çµ¶ããåçŸããããã¹ãã¯å®å®ããŸãã
ãã®ã¢ãããŒãã¯ããã¹ãŠã®ã¿ã€ãã®ãã¹ãã«é©çšãããŸãã Seleniumãã©ãŠã¶ã³ã³ããŒãã³ãã«ã¯ãªãã¯ããŠã¯ãªãã¯ããã ãã§ãã°ã€ã³ãããå Žåãäœãå¿é ããå¿ èŠã¯ãããŸãããã³ããããããæ©èœãå®å šã«æ©èœããããã§ãã ããã«ãè€æ°ã®ãããã¯ãåæã«äœæããããããããŒãžã«è¡šç€ºããŠã¯ãªãã¯ããããšãã§ããŸãã ãããã¯éã«ã¯ãäœããã®ã€ãã³ãæ¥ç¶ãªã©ããããŸãã ãããã¯ããã®ãµã€ããšäžèŽããªãå Žåã§ãããã®æ¹æ³ã§ããã€ãã®ããžãã¯ããã¹ãã§ããŸãã
DIãšã¯äœãã«ã€ããŠã®ç°¡åãªã¬ããŒããèªã¿ãŸããã 誰ããèå³ãæã£ãŠããããšãé¡ã£ãŠããŸãã 詳现ãå¿ èŠãªå Žåã¯ã ã¡ãŒã« ã GitHub ã é»å ± ã Twitterã®ãªã³ã¯ããã¢ã¯ã»ã¹ã§ããŸãã
ããã«ãããã®ã«é¢ããæ°ããæ å ±ãèŠã€ããããšãã§ãããªã³ã¯ããããŸãã ããšãã°ãç§ã話ããå®å šã«å®è£ ãããDIã³ã³ããã§ããéå€æDIã³ã³ããã¯ãTypeScriptã«ãšã£ãŠéåžžã«ã¯ãŒã«ãªãã®ã§ãã ãã¹ãŠããŸãšããæ¹æ³ãç解ããããã®ãªã³ã¯ãããã€ããããŸãã
- github.com/ftdebugger/di.js
- dev.to/kayis/dynamic-imports-with-webpack-2
- www.npmjs.com/package/inversify
- github.com/vlyahovich/quantum-router
ããããšã