ã¡ã¢ãªãŒã»ãšãŽã¡ã³ã¹ã»ãã¯ãã£ãŒã»ã©ã€ãã©ãªãŒ/ã¢ã©ããŒ-ãšãªã¹ãRã1994ãæµ·ã®æªç©ã ãããŒãã»ãã€ã«æ ªåŒäŒç€Ÿ
JavaScriptã®äžçã®ãã¬ã³ãã®ç座ã«ããäžé£ã®ãã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãªã¯ããã¯ããã¥ãŒã¹ã§ã¯ãããŸããã ä»ã®åéã®éçºè ããã®ç¹ã§ç§ãã¡ããããããŸãã
ãã®ãããäœæ¥ã®éçšã§ãqooxdooãjQueryãExt JSãBackbone.jsãKnockout.jsãEmber.jsãAngularãReactãªã©ãããŸããŸãªã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ãé£ã³è¶ããå¿ èŠããããŸããã
ãã®ãã¬ãŒã ã¯ãŒã¯ãŸãã¯ãã®ãã¬ãŒã ã¯ãŒã¯ã®éžæã¯ãå¿ ãããä»»æã§ã¯ãããŸãã;ã¢ãŠããœãŒã¹ããã³äººå¡é 眮ã¢ãã«ã¯ãç§ã®ä»äºã«ç¹å®ã®å¶éã課ããŸãã åãå°åã®äººãç§ãç解ããŠããããšæããŸãã
ç§ãæåŸã«æ±ºããã®ã¯ãFacebookã®Reactã§ãã ç§ã¯ãããé ããŸãããååã¯ãç§ããã®ã©ã€ãã©ãªãŒã«åãæ¿ããããšã«éåžžã«æ¶æ¥µçã§ãã£ãããšã確èªããŸãã移è¡ã¯å¿«é©ãŸãŒã³ãé¢ããããšãæå³ããŸãã ç¹ã«ãFluxãšReduxã®äººã®å»ºç¯ã¹ã¿ã€ã«ã®ãæ°ãããåèããæ°ãããçšèª-ã¢ã¯ã·ã§ã³ãã¹ãã¢ããã£ã¹ãããã£ãŒãªã©ãå€ãã®æ°ããèšèãæãã£ãã§ãã
åæããŠã以åã®ãã¹ãŠã®ããã³ããŒãšéãã§ã¯ãèŸæžã¯éåžžã Model-View- * ïŒController || Presenter || Adapter || ViewModel || WhateverïŒã®ãããªãã®ã«ãªããŸããã
ãã®èŸæžã®ç§ã®ç解ã¯ããã®åçã®ããã«èŠããŸããã
ããã¯ãããªã人æ°ã®ããUdacity MOOCãã©ãããã©ãŒã ã®ãJavaScript Design Patternsãã³ãŒã¹ã®åçã§ã
ç§ã¯ãã®åçã奜ãã§ããã ãã®ãããå€æ°ã®ã¯ããŒã³ãšMVCã®ããŸããŸãªè§£éãååšããäžçãç°¡åã«èªèã§ããŸããã
ãã¥ãŒããããŸã-ããã¯htmlãcssãããã³ããããã¹ãŠã§ãã ã¢ãã«ããããŸã-ããã¯JSONããŒã¿ã§ããããããååŸããå Žæã§ãã ãããŠãã¯ã©ãŒã±ã³/ã¿ã³/ã€ã¹ã/ã ããŽã«ã«-ããŒã¿ãšãã¥ãŒãçµã¿åãããäžçš®ã®ç¥è©±äžã®çãç©ã§ãã
MVOã¯ãã¹ãŠã®è³ªåã«å¯Ÿããçãã§ãã
ãããŠçªç¶Facebookããã£ãŠæ¥ãŠãMVCãæªããšèšã£ãŠ ããããšæ··åããäŸåé¢ä¿ã®ãã®ãããã¯ãŒã¯ããæãåºãããšãã§ããŸããïŒ
ãããŠã圌ã¯éã®åŒŸäžžããããšèšããŸã- ãã©ãã¯ã¹ãšåæ¹åããŒã¿ãã㌠ïŒ
ããããä»ã®èª°ããæ¥ãŠãFluxã¯è€éã ãšèšããŸããReduxã¯ããªããå¿ èŠãªãã®ã§ãã
Facebookã§ããããããããã®äººãã¡ã¯å€ãã®ããšãç¥ã£ãŠããã®ã§ãããªãã¯ä¿¡ããåŸåããããŸãã
çŸåšããã¹ãŠããã®ã¢ãŒããã¯ãã£ã¹ã¿ã€ã«ãšã©ã€ãã©ãªã«ãã£ãŠæ±ºå®ãããŠããŸãã ããã³ããšã³ããå¿ èŠã§ããïŒ ããããŸãããReactãReduxãããã³ãµã³ã¯ããµã¬ãã¹ããŒãªãŒããã¯ãthemrãflowãããã³hatã®åœ¢ã§ããã«ããã€ãã®è·ç©ãåããŸãã
ããããReactã¯çŽ æŽãããã©ã€ãã©ãªã ãšã¯æããŸããã Virtual DOMãã¯ãããžãŒã«ãšãŠãæºè¶³ããŠããŸããããã¯éåžžã«éèŠãªã¿ã¹ã¯ãæ¬åœã«è§£æ±ºããŸãã ãªã¢ã¯ãã£ãããã°ã©ãã³ã°ãã©ãã€ã ã«ãªã³ã¯ããããšããç§ã幞ãã«ããŸãã ããããããã«ãæ°ããã建ç¯æ§åŒããããŸã...
ç§ãã¡ã®æ¥çã¯æ¥éã«çºå±ããŠããŸã-ããã¯è¯ãããšã§ãã 2017幎ã«ã¯ã1980幎ã«æ¯ã¹ãŠæ°çŸåã®ããã°ã©ããŒãããŸã-ãããè¯ãããšã§ãã å€ãã®ã¯ãŒã«ãªããŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³ããã°ã©ãã®ç掻ã楜ã«ããããã«èŠããŸã-ãããééããªãè¯ãããšã§ãã ããããã¢ããªã±ãŒã·ã§ã³ããã°ã©ãã§ããç§ãã¡ã¯èããããšãæžããå§ããŠããŸãã å°ãªããšãããæãã ããã®ããã°ã©ããŒãšããŠã®5幎éã®ä»äºã§ãç§ã¯å¹³å¡ã§çŽããããã³ãŒããããããæžããŸããã
ãã°ããã®éãç§ã¯ãããããšã«ããŸããã Facebookã®ããã«ããã«å ã«é²ãåã«ãWebã¢ããªã±ãŒã·ã§ã³éçºãåèããå¿ èŠããããŸãã Unidirectional Dataflowããã®Webã®åé¡ã解決ããçç±ãFacebookã®åã«èª°ããããããªãã£ãçç±ãMVCãããããæ¹åã®ç¢å°ã§ããã»ã©æªãçç±ãç解ããŠãã ããã
ãããŠãç§ã¯éã®é åºã§å§ããŸããã
MVC
ä»ã®ãããéçºäŒç€Ÿããã®ã¢ãŒããã¯ãã£ã¹ã¿ã€ã«ã®å®çŸ©ãæäŸããŠãããã®ãèŠãŠå§ããŸããã å®éãã»ãšãã©ã®å Žåãç§ãã¡ã¯ãããè¡ããæèœãªäººãäœéã®ãã人ã«äŒãã«è¡ããŸãã
Facebookããã®è§£éã«æ £ããŸããã
以äžã¯ãMicrosoftã®è§£éã§ãã
ã¢ãã«ãšãã¥ãŒã¯å察æ¹åã«æ¥ç¶ãããŠããŸãããã説æããæãããªããã«ãã¢ãã«ã¯ãã¥ãŒããã®ç¶æ èŠæ±ã«å¿çããå¿ èŠããããŸãã
ã€ãŸã äžè¬çã«ã解éã¯Facebookã®è§£éãšåãã§ãã
ç§ãã¡ã¯ã¢ããã«ã«è¡ããŸãããããã®äººã¯2ã€ã®å®å šãªã¹ããŒããæã£ãŠããŸãïŒäŒçµ±çãªããŒãžã§ã³ãšCocoa APIã®ããŒãžã§ã³ïŒ
ããŒããé¢çœãã æåã®ãªãã·ã§ã³ã¯ãããã«ããããã§ãã ããã§ã¯ã以åã®è§£éã®ããã«ãã¢ãã«ã¯äž¡æ¹åã®è¡šçŸãšæ¥ç¶ãããŠããŸãã ãã ããã³ã³ãããŒã©ãŒãšã®éä¿¡ã¯äžæ¹åã§ã¯ãããŸããã ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã¯ããã¥ãŒãä»ããŠã³ã³ãããŒã©ãŒã«éãããŸãã
2çªç®ã®ããŒãžã§ã³ã§ã¯ãã¢ãã«ãšè¡šçŸã¯çŽæ¥é¢é£ããªããªããŸããã ã€ã³ã¿ã©ã¯ã·ã§ã³ã¯ã³ã³ãããŒã©ãŒãééããã¿ã³ã®çµµã®ããã«èŠããŸãã
ãããŠããã«GoogleããããŸã
ãŸããããªãã¯ãã¹ãŠåãã¯ã©ãŒã±ã³ãç解ããŠããŸãã
以äžã¯ãMartin Fowlerã®ããã°ããã®æŠç¥å³ã§ãïŒãšããã§ã圌ã¯GUIã¢ãŒããã¯ãã£ã«é¢ããéåžžã«èå³æ·±ãã·ãªãŒãºã®èšäºããããMVCã®è§£éã«ã€ããŠè©³ãã説æããŠããŸãïŒã
以äžã¯ãJavaãªã©ã®è¿é£äžçããã®MVCã®è§£éã§ãã JSPãçŽæ¥ç¥ã£ãŠããŸãã æãéå»ãããã°ã
ãŸã æ··ä¹±ããŠããŸãããïŒ ã·ãªãŒãºã®Xãã¡ã€ã«ã®æ§åãèŠããŠããŸããïŒ çå®ã¯è¿ãã®ã©ããã«ãããŸãã
1ã€ã®ããšã¯æããã§ãããã¹ãŠã®ãªãã·ã§ã³ã¯äŒŒãŠããããããã¯ãã¹ãŠã»ãŒåãã§ãããModel-View-Controllerã®è§£éã«ã¯å®èª¬ããããŸããã ãªããã ã©ããããå ã®æèšãããã»ã©å³å¯ã§ã¯ãªãã£ãããã§ãã ãããšãå€åããã¯ïŒ
å€ãã®å Žåãæè¡ãéåžžã«è¡šé¢çã«å€æããŸãã ç§ãã¡ã¯ãå ã®æ å ±æºãéããç§ãã¡èªèº«ã®æèŠã圢æãã代ããã«ãä¿¡ä»°ã«é¢ããä»ã®äººã ã®è§£éãåãå ¥ããŸãã
MVCã®äž»ãªãœãŒã¹ã¯äœã§ããïŒ
1970-80幎代
ããããããã圌ã®ã»ãããŒã§å°ããã®ãšåã質åã§èšäºãå§ãã䟡å€ããããšæããŸãã
ããã誰ãç¥ã£ãŠããŸããïŒ
ããã¯ããã®å»ºç¯ã¹ã¿ã€ã«ãæåã«èª¬æããMVCã®ãŸãã«åµå§è ã§ãããªã¹ã倧åŠã®ææã§ããTrygve Reenskaugã§ãã ããã¯ã1978幎ã«ãŒããã¯ã¹PARCã®Learning Research Groupã蚪ãããšãã«èµ·ãããçŸä»£ã¿ãã¬ããã®é¡äŒŒç©ã§ããDynabookãããžã§ã¯ãã®åºç€ãšããŠããã®æŠå¿µã®åºç€ãç¯ãããŸããã
圌ã¯æ¬¡ã®åŒçšã§ã¯ã¬ãžãããããŠããŸãïŒ
MVCã¯ã倧èŠæš¡ã§ãããã«ããããŒã¿ã»ãããå¶åŸ¡ãããšãããŠãŒã¶ãŒã®åé¡ã«å¯Ÿããäž»ãªè§£æ±ºçãšããŠèããããŠããŸããã æãé£ããã£ãã®ã¯ãããŸããŸãªã¢ãŒããã¯ãã£ã³ã³ããŒãã³ãã®ååã§ãã ïŒæ³šWikipediaïŒ
ã©ããããããããã®å£°æã¯Facebookã®åçã«åããŠããŸãã
ã¯ãªãšã€ã¿ãŒèªèº«ããã®å»ºç¯ã¹ã¿ã€ã«ãã©ã®ããã«æããŠããã®ããšæã£ãŠããŸããã ãããŠããã®æ代ã®èå³æ·±ãã¹ããŒã ãããã€ããããŸãïŒ
é¢çœãåçã§ããã ç§ããããã«ã€ããŠäžçªæ°ã«å ¥ã£ãŠããã®ã¯ããŠãŒã¶ãŒã®å€èŠ³ã§ãã ããã¯ãã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ã®ã¢ãŒããã¯ãã£ãèšè¿°ããã¹ããŒã ã«ãšã£ãŠéèŠã§ããããã«æããŸãã
2çªç®ã®èå³æ·±ãç¹ã¯ãåæã®ãµãŒãããã§ã®ã³ã³ãããŒã©ãŒãšãã¬ãŒã³ããŒã·ã§ã³ã®çµ±åé åã§ãã Trygweã¯ãããEditorãšããŠå®çŸ©ããåŸã§ToolãšããŠå®çŸ©ããŸãã
ãã®æŠå¿µã«é¢ãã圌ã®æåã®ã¡ã¢ã§ã¯ãã¢ãã«ããã¥ãŒãã³ã³ãããŒã©ãŒããšãã£ã¿ãŒãšãã4ã€ã®çšèªãå®çŸ©ãããŸããã ãšãã£ã¿ãŒã¯ããã¬ãŒã³ããŒã·ã§ã³ãšãããŠã¹ãããŒããŒããªã©ã®å ¥åããã€ã¹ãšã®éã®ã€ã³ã¿ãŒãã§ã€ã¹ãšããŠããã¬ãŒã³ããŒã·ã§ã³ããªã³ããã³ãã§äœæããäžæçãªã³ã³ããŒãã³ãã§ãã
TrygveãXerox PARCãé¢ããåŸãJim Altoffãšä»ã®äººã ã¯Smalltalk-80ã¯ã©ã¹ã©ã€ãã©ãªã®MVCã®æåã®ããŒãžã§ã³ãå®è£ ããã³å®è£ ããŸããã ææã¯ãã®ä»äºã«é¢äžããŠããŸããã§ããã
ãžã ã»ã¢ã«ããææã«ãããšããã³ã³ãããŒã©ãŒããšããçšèªã®è§£éã¯å€å°ç°ãªããŸãã
å ã®MVCã®éèŠãªåŽé¢ã¯ããã®ã³ã³ãããŒã©ãŒããã®åŸå±ãã¥ãŒã®äœæãšèª¿æŽãæ åœããããšã§ããã
åŸã®æ³šã§ããã¥ãŒã¯ããèªäœã«é¢é£ãããŠãŒã¶ãŒå ¥åãåãå ¥ããŠåŠçããŸãã ã³ã³ãããŒã©ãŒã¯ãã³ã³ãããŒã©ãŒ/ãã¥ãŒã¢ã»ã³ããªå šäœã«é¢é£ããå ¥åãåãåããåŠçããŸããããã¯çŸåšã ããŒã«ãšåŒã°ããŠããŸãã
ãšããã§ãMartin Fowlerã¯ãã®ã¿ã³ãã ãã¬ãŒã³ããŒã·ã§ã³ã¬ã€ã€ãŒãåŒã³åºããŸãã
Trygveã¯ãã¯ã©ã€ã¢ã³ãã·ã¹ãã ã®äž»èŠãªãã¬ãŒã€ãŒã¯ãšã³ããŠãŒã¶ãŒïŒ ã¡ã³ã¿ã«ã¢ãã« ïŒãšãã¡ã€ã³ããŒã¿ïŒ ãã¡ã€ã³ã¢ãã«/ããŒã¿ ïŒã§ãããšææããŠããŸãã ãŸããMVCã®äž»ãªç®æšã¯ããŠãŒã¶ãŒã®ã¡ã³ã¿ã«ã¢ãã«ãšã³ã³ãã¥ãŒã¿ãŒã«ååšããããžã¿ã«ã¢ãã«ãšã®éã®ã®ã£ãããåããããšã§ãã
ãã®æŠå¿µã¯ãSmallTalkã®æ代ã§ãããWebã¢ããªã±ãŒã·ã§ã³ã®æŠå¿µããã®ããã«ååšããªãã£ããšããäºå®ã«ãããããããä»æ¥ã«é¢é£ããŠããŸãã ãŠãŒã¶ãŒãšããŒã¿ã®çžäºäœçšã¯ãããã°ã©ã ã®æ¬è³ªã§ãã ãããã®ãªããžã§ã¯ãã®éã«ã¯ãçžäºã«éä¿¡ããããã®ã¬ã€ã€ãŒããããŸãã
ããã°ã©ã ãšäººã®çžäºäœçšã®åºç€ã¯ãåžžã«å ¥åããã³åºåããŒã¿ã¹ããªãŒã ã§ãã äžè¬åãããã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã
ãããã£ãŠãã³ã³ãããŒã©ãŒãããŒã¿ãšã³ããªãã€ã³ããšããŠè§£éãããã¥ãŒãåºå£ãã€ã³ããšããŠè§£éããŸãã ãšã³ããªãã€ã³ããšã¯ãåšèŸºæ©åšãšãã¬ãŒã³ããŒã·ã§ã³ã³ã³ãããŒã«ã®çµã¿åããã§ãã åæã«ããã¥ãŒãšã³ã³ãããŒã©ãŒã¯æé»çã«æ¥ç¶ãããŸãããçŽæ¥éä¿¡ããŸããã ãã¬ãŒã³ããŒã·ã§ã³ããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«é¢ããã¡ãã»ãŒãžãã³ã³ãããŒã©ãŒã«éä¿¡ãã矩åãå§ä»»ãããã®ããã«ã
å ¥åã¹ããªãŒã ã¯ãµããžã§ã¯ãã¢ãã«ã®ç¶æ ãå€æŽã§ããŸãããã¢ãã«ã¯ããŒã¿åºåãã€ã³ãã䜿çšããŠãŠãŒã¶ãŒã«ãã®å€æŽãéç¥ããå¿ èŠããããŸãã
Trygveã®åè·¯ã®1ã€ã§ã¯ãã³ã³ãããŒã©ãŒãšãã¬ãŒã³ããŒã·ã§ã³ã®æ¥ç¶ã¯1察å€ã§ãã ãªãã§ïŒ åœæã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹äžã®ãã¿ã³ãç¢å°ããã¥ãŒã ã£ãããã ãšæããŸãã ãã以éãäœãå€æŽã¯ãããŸãããïŒ ç§ã¯ããã¯æããŸããã
ã¯ã©ãŒã±ã³ã®è§£éã§ã¯ããã¥ãŒã¯ããŒãžå šäœãæå³ãããšç解ãããããšããããããŸãã å®éãããã¯åžžã«ã³ã³ããŒãã³ãã®ããªãŒã§ãã åã³ã³ããŒãã³ãã¯ãè¡šçŸãšããŠæ©èœããå¯èœæ§ããããŸãã
ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã¬ã€ã€ãŒãšå€å¯Ÿå€ã¢ãã«ã®é¢ä¿ã ããã¯çŸåšã®ããã°ã©ã ã«åœãŠã¯ãŸããŸãã1ã€ã®ããŒãžã«ããŸããŸãªãµããžã§ã¯ãã¢ãã«ã®ããŒã¿ãšç¹æ§ã衚瀺ã§ããŸããäžæ¹ãã¢ãã«ã¯ããŒã¿æ§é ã«ã§ããŸã
MVCã®äžè¬åããã説æãå®åŒåããŠã¿ãŸãããã
- ã¢ãã«ïŒ Model ïŒã¯ããŒã¿ãæäŸããã³ã³ãããŒã©ãŒã³ãã³ãã«å¿çããŠãã®ç¶æ ãå€æŽããŸãã
- ãã¥ãŒã¯ãã¢ãã«ããŒã¿ããŠãŒã¶ãŒã«è¡šç€ºããã¢ãã«ã®å€æŽã«å¿çããŸãã
- ã³ã³ãããŒã©ãŒã¯ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã解éããå€æŽã®å¿ èŠæ§ãã¢ãã«ã«éç¥ããŸã
ããã€ãã®çŽæ¥çãªåæ¹åããŒã¿ãããŒãåºãŠããŸãïŒ
ãŠã£ãããã£ã¢ããã®ç»å
ããããããã¯FacebookãšCoãæäŸãããã®ãšåãã§ã¯ãªãã§ããããïŒ
- ã¹ãã¬ãŒãžïŒ Store ïŒ-ããŒã¿ã¹ãã¬ãŒãžã
- Dispatcher-ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ããªããžããªã«éä¿¡ããŸãã
- RepresentationïŒ View ïŒ-React-componentsã®ããªãŒã
- ã¢ã¯ã·ã§ã³ -ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ãå¹³é¢ãªããžã§ã¯ãã
- Action Creator-ã¢ã¯ã·ã§ã³ïŒãªããžã§ã¯ãïŒãäœæããŸãã
- ReducerïŒ Reducer ïŒ-ããŒã¿ãŠã§ã¢ããŠã¹ã®ç¶æ ãå€æŽããŸãã
é©åœã¯èµ·ãããªãã£ãããšãããããŸãã äœãå€ãã£ãŠããŸããã ãã¹ãŠã¯ãMVCã®ããªãºã ãééããŠããŸãã ãã®æŠå¿µã®æ¬¡ã®è§£éãšæŠå¿µã®çœ®æã®ã¿ã芳å¯ããŸãã
ãããŠãFacebookã®ä»£è¡šè ã¯ãã®ãšãã©ã®ãããªåé¡ã«ã€ããŠè©±ããŠããŸãããïŒ
ãããããæéã®çµéãšãšãã«ãã·ã¹ãã ã®è·ååé¢ã®æŠå¿µã®è§£éãç¹å®ã®ãã³ãã¬ãŒãã®å®è£ ã«åæžãããŠãããšããäºå®ããå§ããå¿ èŠããããŸãã
Appleã®å³ãã芧ãã ããã ãããã¯ç¹å®ã®ãã¿ãŒã³ã§ã·ã¹ãã ã®ã¬ã€ã€ãŒãèšè¿°ããŸãïŒãªã¹ããŒãæŠç¥ãæ§æã ãã®èª€ãã¯ãã ã®ã£ã³ã°ãªããã©ãŒ ãã®ç»å Žä»¥æ¥ç¶ããŠããŸãã
ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã§ã®ã³ã³ãœãŒã«ãœãããŠã§ã¢ã®é²åã«ãããåæã®å®çŸ©ã«ãã®çè·¡ãè¿œå ãããŸããã
æœè±¡åã¯å ·äœçãªãã®ã«å€ãããŸããã
åé¡ã«é¢ããŠã¯ãåé¡ã¯ãŸã åãã§ãããé·ãéè¡šæãããŠããŸããã Flux / Reduxã§ãåãã§ãã ãããŠãä»ã®ã³ã³ã»ãããšãã¬ãŒã ã¯ãŒã¯ã®ããã«ã æåã¯ãçŽç²ãªæèãæã¡ãã·ã³ãã«ãªãã®ããå§ããŸãã ããããæéã®çµéãšãšãã«ãã³ãŒãã®æèã®çŽç²ããç¶æããªããªããšãã²ã©ãã¯ã©ãŒã±ã³ãã¹ã¿ã¢ã³ã¹ã¿ãŒã«å€ãããŸãã ãããžã§ã¯ãã¯ãã®ã¿ãŒã«ãããã§ç«ã¡åŸçãå§ããŸãã
ReduxãšFluxã¯ããããžã§ã¯ãã®ã¢ãŒããã¯ãã£ãããã¯ãªãŒã³ã§ç解ãããããã®ã«ããã®ã«åœ¹ç«ã¡ãŸããïŒ åœŒãã¯ãã®çŽç²ãªèããç¶æããŸããïŒ ãããã®ç¢å°ã®ããŒã«ã«ã¹ã©ã€ãã§ããªãããŒã«ã¯ãããŸããïŒ
ããŒã«ããã³å®æçãªè§£éãšããŠã圌ãã«ã¯çåœæš©ããããŸãã ããããçŸåšã®ãããžã§ã¯ãã§ã¯ãReduxãåŸã ã«åæžãå§ããŸããã ãããäœãããããã®ãèŠãŠã¿ãŸãããã ãã®çŽç²ãªæèãç¶æããããšã¯å¯èœã§ããããããããšãåã³æ²Œå°ã«ãªããŸããã
çµè«
人éãšã³ã³ãã¥ãŒã¿ãŒã®çžäºäœçšã®åéã§æ ¹æ¬çãªå€åãèµ·ãããŸã§ãå šäœã®æŠå¿µã¯åžžã«ããã«åºã¥ããŠããŸãã
ãã¹ãŠããã®èŠ³ç¹ãééããŸãã ãããŠãããŸããŸãªæ¹åã®ãããã®æ°çŸã®ç¢å°ã®åé¡ã¯ããã®æŠå¿µã§ããã«çãç¶ããŸãã
誰ããäœãšããããã«æžãããšãã§ããã ããªã®ã«ã誰ãããŸã èªåã®æ²Œå°ã§ç«ã¡åŸçããŠããŸãã
ãããŠããã®æŠå¿µã®ç«¯ã¯ãã®æ²Œã®ãœãŒã¹ã³ãŒãã§æ¶å»ãããŸãã ç§ã¯çµéšããç¥ã£ãŠããŸãã圌èªèº«ãå€ãã®ãããžã§ã¯ãããã®æ³¥æ²Œã«å€ããããã§ãã
ããªãã¯ãããã質åããããã§ãããïŒã ãŸããã¯ãŒã«ãªç·ããããŠæ¬¡ã¯äœã§ããïŒ ã
äœãããã®ããã¹ããç§ã®è³ã®ãã³ããšããŠæ±ããŸããã
ããã§ããããã®çšèªã«æ²¡é ã§ããããšãããããæããŸããããã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®ã¯ã©ã€ã¢ã³ãã¬ã€ã€ãŒã®éçºã®ãåèãã§ãã å°ãªããšãç§ã«ãšã£ãŠã¯ãMVCãæ°ããæ¹æ³ã§è§£éãå§ããŸããã ãããã®çšèªã®ããæœè±¡çãªè§£éã
ãŸããèªåã®èããçºè¡šããæ©ãçããããšãå¬ããæããŸãã ããããããã°ãããããšç§ã®æèŠãå€ããããã®ããã¹ãã«æ»ã£ãŠç¬ãã®ã¯é¢çœãã§ãããã
PSäžèšã®ãã¹ãŠã¯ãç§ã®è¬èãªäž»èŠ³çãªæèŠãšç§ã®è§£éã§ãã ãããŠãããªããšã¯ã©ãã§ããïŒ artur.basak.devingrodno@gmail.comã®ä»ã®èŠç¹ãèŠãŠåãã§ããŸã
èšäºã®ç¶ã
->ãã¯ã©ãŒã±ã³ã®è¬ã-MVCãªã©ã®æŽå²ã«ã€ããŠç°¡åã«èª¬æããŸã ã
->ãã¯ã©ãŒã±ã³ãã³ãã£ã³ã°ã-ãã©ãã¯ã¹ã¯è€éã§ãReduxã¯ããŒã«ããã¯ããããã¹ãŠãArtuxã«åçŽåããŸã
åç §è³æ
â MVC Wiki
â Trygver MVC
â ãã©ãã¯ã¹
â Apple MVCïŒ1ïŒ
â Apple MVCïŒ2ïŒ
â Google MVC
â ãããããã
â ããŒãã£ã³ãã¡ãŠã©ãŒMVC