ã¡ãã£ã¢ãªã©ã®ãšã³ããŠãŒã¶ãŒãéåžžã«éèŠãªé åã§ã¯ãçç±ãç解ããã«ãµã€ãã4ç§ä»¥äžéããå Žåããã§ã«13ïŒ ã®ãŠãŒã¶ãŒãå»ã£ãŠããŸãã ããã§ããŸã ã³ã¡ã³ããéä¿¡ããããšããŠãããŠãŒã¶ãŒããéä¿¡ã®åé¡ã®ããã«åžžã«ãè±èœãããŠãããšæ³åããŠã¿ãŸãããã
æ€éãšå€±æã®å²åã¯æããã«å€§ãããªããŸãã ãããé¿ããæ¹æ³ã¯ïŒ ããŒã¿ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ããéä¿¡ãããããšãä¿èšŒããå¿ èŠãããç¶æ³ã§äœãã§ããŸããïŒ
PostCSSã®äœæè ã§ããAnd Evil Martiansã®äž»èŠãªããã³ããšã³ãã§ããAutoPrefixerã®Andrey Sitnikã¯ããã®è³ªåããã®ä»ã®è³ªåã«çããŸãã
-ãªãã³ãã¥ãã±ãŒã·ã§ã³ã®åé¡ã«ã€ããŠè©±ããŠããã®ã§ããïŒ ããã¯ãåã«ç©çç/ãããã¯ãŒã¯æ©èœã«é¢é£ãã質åã§ã¯ãããŸãããïŒ
-OSIã¯ããŸã話é¡ã§ã¯ãããŸããã Loguxã¯RESTãšAJAXã眮ãæããŸãã ã€ãŸããçŽç²ã«é©çšãããã¬ãã«ã§ãã Loguxã¯æ¬¡ã®åé¡ã解決ããŸãã
- åçŽãªã¯ãšãªã«ã¯å€ãã®ã³ãŒããå¿ èŠã«ãªããŸããã
- ãµãŒããŒããã®ããŒã¿ã®ã©ã€ãæŽæ°ã¯ãæžãã®ãã¯ããã«å°é£ã§ãã
- åªãããªãã©ã€ã³ãµããŒãã¯äžè¬ã«å°çãæžããŠããŸãã ãã ããã500 msãªãã©ã€ã³ããåžžã«ååšããããããªãã©ã€ã³ãåžžã«å¿ èŠã§ãããããã¯ãã¿ã³äžã®äžå®ã®ãã¿ã³ã§ãã
ãã®ãããLoguxã¯ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®éã«ç¹å¥ãªä»®æ³ã€ãã³ããã£ãã«ãäœæããŸãã
ã¯ã©ã€ã¢ã³ãã¯ãã®ãã£ãã«ã«ã€ãã³ããå ¥ããããšãã§ããŸã-Loguxã¯å¯èœã§ããã°ããããéä¿¡ããŸãã ãµãŒããŒã«ãåãããšãèšããŸãã æè¡ã¬ãã«ã§æ®µéçã«èŠãŠãããŸãããã
ãããªãŒãã£ã³ã°
1.ã¯ã©ã€ã¢ã³ãã§ã¯ãRedux APIãåãã1察1ã®ã©ã€ãã©ãªã«ãªããŸãïŒReactã«ã¯æ¥ç¶ãããŠããŸãããäžäœã¬ãã«ã®APIããããŸãïŒã åãæ¹æ³ã§ã¢ã¯ã·ã§ã³ãäœæããŸãã ãã ããäžéšã®ã¢ã¯ã·ã§ã³ã§ã¯ãåæããŒãèšå®ã§ããŸããtrue-Loguxã¯ãããããµãŒããŒèªäœã«é ä¿¡ããŸãã ãã®ã©ã€ãã©ãªã¯Webãœã±ãããä¿æããpingãéä¿¡ããŠãæ¥ç¶ãããããšã確èªããŸãã
ããããããã®ã©ã€ãã©ãªãReactã«çµã³ä»ããããŠããªãã®ã¯äœãè¯ãã®ã§ããããïŒã
ãã¹ãŠã®äººãReactã§éçºããããã§ã¯ãããŸããïŒããã¯ããŸããŸãªç°å¢ã«éåžžã«é©ããŠããŸãïŒã 誰ããVue.jsãAngularã䜿çšã§ããŸãã ãŸãã¯ãHTMLããªãJSã¢ããªã±ãŒã·ã§ã³ãããã ããªã®ã§ãReactã¯ããã»ã©å¿ èŠãããŸããã ã©ãã
2.è¿œå ã®ã©ã€ãã©ãªãæ¥ç¶ã倱ãããå Žåã«ã¹ãã·ã£ã«ã衚瀺ããŸãã ããŒãžäžéšã®ãæ¥ç¶ãªãããããžã¯ãã¡ãã³ã³ãå€æŽããŸãã éä¿¡ãã£ãã«ã«ã€ãã³ãããããæ¥ç¶ããªãå Žåã¯ããã¹ãŠã®ããŒã¿ãä¿åãããŠããªãããšããŠãŒã¶ãŒã«éç¥ããŸãã
-ãªããŠãŒã¶ãŒã¯ãããç¥ã£ãŠããå¿ èŠããããŸããïŒ ããã¯ã©ã®ãããªåœ¢åŒã®çžäºäœçšã«ãšã£ãŠéèŠã§ããïŒ
-ãŠãŒã¶ãŒããããŒã¿ãæäŸãããå Žåãããããä¿åãããŠããªãããšããŠãŒã¶ãŒã«éç¥ããå¿ èŠããããŸãã ãã®æ¯ãèããããã©ã«ãã§ããã¹ãã ãšæããŸãã ã©ã€ãã©ãªã¯ããã®ãããªéç¥èªäœãèšè¿°ãããããèšèšã«ããé©åã«çµ±åããããã«ãå€ãã®ç¹ã§ãªãã·ã§ã³ã§ãã ãã ããLoguxã䜿çšããŠåæã®ããã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãåéããå Žåãªã©ãéä¿¡ã®åé¡ã衚瀺ã§ããªãå ŽåããããŸãã
次ã®ã¹ãããã
3.æ¥ç¶ã衚瀺ããããšãLoguxã¯ã©ã€ã¢ã³ããšãµãŒããŒã¯ãéä¿¡ããªããšãã«è¿œå ãããã€ãã³ããäºãã«éä¿¡ããŸãã
-ããã¯æããã§ããããã¯è«ççã§ããããã€ã®ã¢ã¯ã·ã§ã³ããã¥ãŒã«å ¥ããããšãã§ããŸããïŒ
-éåžžãã€ãã³ã10ã20ã ãã ããå³å¯ãªå¶éã¯ãããŸãããã¯ã©ã€ã¢ã³ããšãµãŒããŒã®ã¡ã¢ãªã«ã©ãã ãåãŸããã§ãã
-ãããã®ã€ãã³ãã®é åºã¯ïŒ
-ã€ãã³ãã®é åºã¯éåžžã«å³å¯ã«å¶åŸ¡ãããŠããŸãã ããã§ã®åé¡ã¯ã1人ã®ãŠãŒã¶ãŒã®ã€ãã³ãã®é åºã ãã§ã¯ãããŸããã ãã ããè€æ°ã®ãŠãŒã¶ãŒãäœæ¥ããŠããå Žåã§ãããã¹ãŠã®ã·ã¹ãã ã§ãã¹ãŠã®ã€ãã³ãã®é åºãåãã§ããå¿ èŠããããŸãïŒæçµç¶æ ãåãã«ãªãããã«ïŒã ãã®ãããLoguxã§ã¯ãåã€ãã³ãã«äœææéãå²ãåœãŠãããŸãã éåžžã«æ³šæãå¿ èŠã§ããããšãã°ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®æéå·®ãèæ ®ãããŸãã
-äžéšã®ã€ãã³ããå®è¡ããå¿ èŠããªããªãã»ã©ã§ââã¯ãªãã§ããããïŒ çžäºã¢ã¯ã·ã§ã³ã®äŸåé¢ä¿ãã§ãã¯ïŒ
-ã¯ã©ã€ã¢ã³ãã¯ãäžèŠãªã€ãã³ããããã°ãæ¶å»ã§ããŸãã ããã¯ãã§ã«ããžãã¹ããžãã¯ã«ãã£ãŠæ±ºå®ãããŠããŸãã
次ã®ã¹ãããïŒãŠãŒã¶ãŒã¯ãã©ãŠã¶ãéããããšãã§ããŸã-æªéä¿¡ã®ã€ãã³ãã¯localStorageã«ä¿åãããŸãã ãã ããæªéä¿¡ã®ããŒã¿ããããããéããåã«ã©ã€ãã©ãªã¯ãŠãŒã¶ãŒã«æåã«ãªã³ã©ã€ã³ã«ããããèŠæ±ããŸãã
-åã³å®¹éãšéèŠæ§ã®åé¡ã«æ»ããŸããããŠãŒã¶ãŒããã©ãŠã¶ã匷å¶çã«éãããšã©ããªããŸããïŒ
-倧äžå€«ã§ãã ãŠãŒã¶ãŒãåã³ãµã€ãã«æ»ããšããã«ãããŒã¿ãéä¿¡ãããŸãã
æ®ãã®ãã¹ãŠã®æé ïŒ
5. LoguxãµãŒããŒãäœæããããã®ç¹å¥ãªãµãŒããŒãã¬ãŒã ã¯ãŒã¯ããããŸãã ã€ãŸããexpress.jsã®ãããªãã®ã§ãã ããªãã¯ããµãŒããŒãã¯ã©ã€ã¢ã³ãããã®ç¹å®ã®ã€ãã³ãã«ã©ã®ããã«å¿çããããèªåã§èª¬æããŸãã åæã«ãããžãã¯ã¯å°ãè€éã§ã-ã€ãã³ããå°çãããšããäºå®ã¯ããããä»äœæãããããšãæå³ããŸããã ãããã£ãŠãåã€ãã³ãã«ã¯äœææéããããŸãã æ¥ç¶æã«ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã¯æå·®ã決å®ããã¯ããã¯ïŒããã³å€ãã€ãã³ãã®äœææéïŒãåæããŸãã
6. node.jsã®ãããŸã§ã®ãµãŒããŒãã¬ãŒã ã¯ãŒã¯ã ãã®åŸãElixir and Goã§ãããè¡ããŸãã ãã ããRubyãPythonãPHPã䜿çšã§ããŸããnode.jsãµãŒããŒããããã·ãšããŠé 眮ããã ãã§ããœã±ãããä¿æã§ããŸãã ãããŠããã§ã«ãã®ãããã·ãµãŒããŒã¯å€ãRESTèŠæ±ãrubyãµãŒããŒã«éä¿¡ããŸãã
7.ãã®ã€ãã³ããã°ãšæ£ç¢ºãªæéããããããSwarm.jsã®ããã«ãã®äžã«CRDTãäœæããå€ãã®åçŽãªã±ãŒã¹ã§ç«¶åãèªåçã«è§£æ±ºã§ããŸãã
8.äžè¬ã«ãã»ãšãã©ã®å Žåãã²ãããæç»ããªãããšãå¯èœã§ã-ã¯ã©ã€ã¢ã³ãã¯ãã€ãã³ããæ¢ã«å®äºããïŒããšãã°ãã³ã¡ã³ããéä¿¡ãããïŒããã«ããã«æç»ã§ããŸããLoguxã¯ãããŒã¿ããµãŒããŒã«ä¿åãããŠããªãããšããŠãŒã¶ãŒã«è¡šç€ºããŸãã ãã¡ããããããããŸããããªãå ŽåããããŸã-äŸãã°ãæ¯æãã ããã§ãå€ãããžãã¯ãã²ãããªããå®è¡ã§ããŸãã
Loguxãšä»£æ¿
-ããããšãããããŸãããããããLoguxã¯æ¢åã®ãœãªã¥ãŒã·ã§ã³ãããåªããŠããŸããïŒ
-Relay / GraphQLããããŸã-ããŒã¿ãç §äŒãããšãã®ã³ãŒãã®éãæžãããŸãã ãã ããããŒã¿èªäœã®å€æŽãéåžžã«ç°¡åã§ã¯ãããŸããã ã©ã€ãã¢ããããŒãã®è§£æ±ºæ¹æ³ã¯äžååã§ãã ãªãã©ã€ã³ãããŸããããŸããã
ååã®ããŒã¿ããŒã¹ããããŸã-ãããã¯ã¯ã©ã€ã¢ã³ããšãµãŒããŒã§åäœããçžäºã«ããŒã¿ãåæããŸãã ããšãã°ãCouchDBããã³Firebaseã ååã«æ±ºå®ãããã©ã€ãããŒã¿ã®æŽæ°ããããŸãã çŸåšãCRDTã®æºåãæŽã£ãŠãã人ã¯ã»ãšãã©ããŸããããäžè¬çã«ã¯å®è£ ã§ããŸãã ããããæ¡åŒµã¯éåžžã«é£ãããå€ãã®éçºè ã¯ãã®ãããªå¥åŠãªåææ¹æ³ãæããŠããããããã®ãããªããŒã¿ããŒã¹ã¯æ¥çæšæºã«ã¯ãªããŸããã§ããã
CRDTã©ã€ãã©ãªããããŸã-ããšãã°ãSwarm.jsã Loguxã¯Swarm.jsããå€ãã®ã¢ã€ãã¢ãã³ããŒããŸãã ããããSwarm.jsã¯ReactãEditorsãšåéã«ãªãã«ããã§ãã éCRDTæäœã転éããããšãå°é£ã§ãã
-é·æãšçæã¯äœã§ããïŒ
-å°ãªãã³ãŒããããã«äœ¿ããããŒã¿ã®ã©ã€ãæŽæ°ãã¢ããªã±ãŒã·ã§ã³ããªãã©ã€ã³ã§ç°¡åã«åäœãããããšãã§ããŸãã ãããŠãããããã¹ãŠã¯ãããªãã¿ã®ç·šéäžã®ã»ãã³ãã£ã¯ã¹ãåããŠããŸãã
äž»ãªåŒ±ç¹ã¯ãè¿œå ã®ãµãŒããŒãå®è¡ããå¿ èŠãããããšã§ãã ãããããã®ãããªæ±ºå®ã«ã¯ãã¹ãŠããããããŸãã ããã«ããã®ãµãŒããŒããããã·ãµãŒããŒã«ããŠããã¹ãŠã®ããžãã¯ãPHPãŸãã¯Ruby on Railsã«æ ŒçŽãç¶ããããšãã§ããŸãã
-ãã®åŒ·èª¿ããã決å®ã®å¿ èŠæ§ã¯ã©ãããæ¥ãã®ã§ããïŒ
-Ampliferã§ã¯ããããªã±ãŒã·ã§ã³ã®ã©ã€ãçµ±èšã衚瀺ããåé¡ãçºçãããšãã«ããã«ãšã©ãŒã§ããŒãžãæŽæ°ããå¿ èŠããããŸããã ãããŠãè¯ã解決çãèŠã€ãããªãããšã«æ°ä»ããŸããã Swarm.jsãå®è£ ããããšããŸããããç°¡åã«ãããã€ã§ããŸããã§ããã ã ããç§ã¯Swarm.jsãšç·šéè ãåéã«ããæ¹æ³ãèãå§ããŸããã åœæããã³ã¢ãã©ã¢ãã¯ãµã³ã¯ãããã«ãã«ã¯ã«ããŸãããã圌ãšã®äŒè©±ã®äžã§ãå¥ã®å³æžé€šãšããã¢ã€ãã¢ãçãŸããŸããã
-ããã¯æ¥çæšæºã«ãªãå¯èœæ§ããããŸããïŒ
-Loguxããã¹ãŠã®Webã¢ããªã±ãŒã·ã§ã³ã®ãŠãããŒãµã«ãœãªã¥ãŒã·ã§ã³ãšããŠäœæããããšããŠããŸãã ããããç§ã«ã¯ã2017幎ã«ã¯AJAX / RESTãäœãçŽãããã®å€ãã®è©Šã¿ãèŠãããããã§ã-ä»ãããã¯Webéçºã®äž»ãªåé¡ã§ããç§ã®æèŠã§ã¯ã ãã®æŠãã«åã€ã®ã¯2018幎ã ãã§ãã
人çã®äŸ
-1-2ã®èå³æ·±ãå®çšçãªã±ãŒã¹ã¯ãããŸããïŒ
-ã¯ããTODO MVCã§ã-æ¥ç¶ããªããŠããã¿ã¹ã¯ã®ãªã¹ããåŒãç¶ã䜿çšããããšæããŸãã ãŸãã¯ãã³ã³ãã¥ãŒã¿ãŒã«ã¿ã¹ã¯ãè¿œå ããå Žåã¯ãããŒãžããªããŒãããã«ãé»è©±ã§ããã«ã¿ã¹ã¯ã衚瀺ãããã§ãããã
ãŸãã¯ã³ã¡ã³ã-FacebookãVKã®ãããªã©ã€ãã¢ããããŒãã¯ã人ã ãåŒãä»ããã®ã«åœ¹ç«ã¡ãŸãã
Loguxã«ã¯ãã©ã®Webãµã€ãã«ããã1ã€ã®å©ç¹ããããŸã-ããã¯ã楜芳çãªã€ã³ã¿ãŒãã§ã€ã¹ãã§ãïŒ å¥ã®HolyJSã¹ããŒã«ãŒã¯ããã«ã€ããŠè©±ããŠããŸããïŒã çŸåšããã¹ãŠã®ã¢ã¯ã·ã§ã³ã§ããŠãŒã¶ãŒã«ãããããã瀺ããŠããŸãã ä¿åãããã³ã«ã€ã³ã¿ãŒãã§ã€ã¹ããããã¯ããããŠãŒã¶ãŒãããŒãäžæãããŸãã Loguxã䜿çšãããšãããã¯ã°ã©ãŠã³ãã§ä¿åãè¡ããã楜芳çãªã€ã³ã¿ãŒãã§ã€ã¹ãç°¡åã«äœæã§ãããšã©ãŒãå®éã«çºçããå Žåã«ã®ã¿ãŠãŒã¶ãŒã®æ³šæããããããšãã§ããŸãã ããšãã°ããããGoogle Inboxã®ä»çµã¿ã§ãã ãŠãŒã¶ãŒã¯åžžã«é«éãªã€ã³ã¿ãŒãã§ãŒã¹ã奜ããããã©ã®Webã¢ããªã±ãŒã·ã§ã³ã§ã楜芳çãªã€ã³ã¿ãŒãã§ãŒã¹ã®æ©æµãåããã§ãããã
-ã€ã³ã¿ãã¥ãŒããŠãããŠããããšãããããŠäŒè°ã§äŒããŸãããã
ãã¡ãããã€ã³ã¿ãã¥ãŒã§ã¯ãã©ã€ãã©ãªãšãã®å²åŠã®äžè¬çãªèŠè§£ã®ã¿ãè°è«ããããšãã§ããŸãã; HolyJS Andreiã§ã¯ã Loguxã®éçºãšäœæ¥ã«é¢ãã詳现ãª1æéããšã®ã¬ããŒããæäŸããŸãã ããã«ãè°è«ãããŠããä»ã®ãã¯ãããžãŒã«é¢ããã¬ããŒããããã«èŠãããšãã§ããŸãã