JavaScript MVCãã¬ãŒã ã¯ãŒã¯ã®éžæã¯å€§å€ãªäœæ¥ã§ãã å€ãã®èŠå ãèæ ®ããå¿ èŠããããéžæè¢ã®æ°ã¯èšå€§ã«ãªãå¯èœæ§ããããŸãã ToDoMVCãããžã§ã¯ãïŒãã·ã¢èªïŒãèŠãŠãã ãã ã
AngularãBackboneãCanJSãEmberã®4ã€ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŸããã ããã§ãã©ã¡ãã䜿çšãããã決ããã®ã«åœ¹ç«ã€æ¯èŒãè¡ãããšã«ããŸããã éžæããéã«äœ¿çšã§ããããã€ãã®èŠå ã匷調ããŸãã åèŠå ã®è©äŸ¡ã¯1ã5ã§ãïŒå€ãã®æ¹ãè¯ãïŒã ç§ã¯å ¬å¹³ã«ãªãããšããŸãããããã¡ãããè©äŸ¡ã¯å人çãªçµéšã«åºã¥ããŠããŸãã
![](https://habrastorage.org/getpro/habr/post_images/885/e1a/557/885e1a5574023007ec5f86c462a1df27.png)
æ©èœ
![](https://habrastorage.org/getpro/habr/post_images/5cd/0ac/315/5cd0ac3155ac06c0caef03042bbfb146.png)
ã¢ããªã±ãŒã·ã§ã³ã®åºç€ãæäŸãããã¬ãŒã ã¯ãŒã¯ã«ã¯æ¬åœã«éèŠãªæ©èœããããŸãã ãã¥ãŒããªã³ã¯ããŸããïŒ åæ¹åãã€ã³ãã£ã³ã°ïŒ ãã£ã«ã¿ãŒïŒ èšç®ãããããããã£ã¯ãããŸããïŒ æ±ããå±æ§ïŒ ãã©ãŒã ã®æ€èšŒïŒ ïŒãªã©ïŒããã¯éåžžã«é·ããªã¹ãã«ãªãå ŽåããããŸãã 以äžã¯ãMVCå ã§æ¬åœã«éèŠãªæ©èœã§ãããšèãããã®ã®æ¯èŒã§ãã
æ©èœ | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
ãªãã¶ãŒããã« | y | y | y | y |
ã«ãŒãã£ã³ã° | y | y | y | y |
ãã€ã³ãã£ã³ã°ã衚瀺 | y | - | y | y |
åæ¹åãã€ã³ãã£ã³ã°
ïŒåæ¹åãã€ã³ãã£ã³ã°ïŒ | y | - | - | y |
ãã¹ãããããã¥ãŒïŒéšåãã¥ãŒïŒ | y | - | y | y |
éžæãããŠã©ãããªã¹ã
ïŒãã£ã«ã¿ãŒããããªã¹ããã¥ãŒïŒ | y | - | y | y |
*ïŒ ã«ãŒãã£ã³ã° ïŒè¿œè·¡å¯Ÿè±¡ãªããžã§ã¯ããå€æŽããããšãURLã¢ã³ã«ãŒãå€æŽãããŸãã
*ïŒ ãã¥ãŒãã€ã³ãã£ã³ã° ïŒç£èŠå¯Ÿè±¡ã®ãªããžã§ã¯ããå€æŽããããšãã«ãèªåçã«ãµã€ãºå€æŽããããã¥ãŒã䜿çšããŸãã
*ïŒ åæ¹åãã€ã³ãã£ã³ã° ïŒããšãã°ãå ¥åãã£ãŒã«ãã«èªåçã«å€åãããã¥ãŒãååšããŸãã
*ïŒ éšåãã¥ãŒ ïŒä»ã®ãã¥ãŒãå«ããã¥ãŒïŒãã³ãã¬ãŒãã®èŠèŠåïŒã
*ïŒ ãã£ã«ã¿ããããªã¹ããã¥ãŒ ïŒããã€ãã®æ¡ä»¶ã§ãã¥ãŒã衚瀺ããŸãã
ãããã£ãŠãé¢æ°ã®åèšã®å®è£ ã®ç§ã®æšå®ïŒ
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
æ©èœ | 5 ![]() ![]() ![]() ![]() ![]() | 2 ![]() ![]() | 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() |
Backboneã¯ãããã®æ©èœã®ã»ãšãã©ãæåãŸãã¯ãã©ã°ã€ã³ã§å®è¡ã§ããããšã«æ³šæããããšãéèŠã§ãã ããããå©çšå¯èœãªåºæ¬æ©èœãèæ ®ã«å ¥ããŸããã
æè»æ§
![](https://habrastorage.org/getpro/habr/post_images/62e/1ab/0d3/62e1ab0d354098daf1dfc0bd2ed71e04.png)
ç¹æ®ãªæ©èœãäœæããçŽ æŽããããã©ã°ã€ã³ãšã©ã€ãã©ãªãäœçŸããããŸãã ååãšããŠãæšæºã»ããã®ããŒã«ãããåªããŠããŸãã éžæããMVCãã¬ãŒã ã¯ãŒã¯ãšçµ±åã§ããããšãéèŠã§ãã
ããã¯ããŒã³ã¯æãæè»ãªæ§é ã§ãããæå°éã®åæãšãã¬ãŒã ã¯ãŒã¯ããããŸãã Backboneã䜿çšãããšãã¯ãå€ãã®æ±ºå®ãèªåã§è¡ãå¿ èŠããããŸãã
CanJS㯠ãä»ã®ã©ã€ãã©ãªãæå°éã®åŽåã§ç°¡åã«çµ±åã§ãããããBackbone ãšã»ãŒåãæè»æ§ãåããŠããŸãã å¿ èŠã«å¿ããŠãå¥ã®ã¬ã³ããªã³ã°ãšã³ãžã³ã䜿çšããããšãã§ããŸãã CanJSã§åé¡ãªããªãããã䜿çšããŸããã ãã ããéåžžã®ãã¬ãŒã ã¯ãŒã¯ããŒã«ã䜿çšããããšããå§ãããŸãã
EmberãšAngularã¯ãŸã å€å°æè»ã§ãããã¢ã¯ã·ã§ã³ã®äžéšãæ°ã«å ¥ããªãå Žåã¯ããã¬ãŒã ã¯ãŒã¯ã«å¯ŸåŠããªããã°ãªããªãããšããããŸãã ãããã䜿çšããå Žåã«å¿ èŠãªãã®ããããŸãã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
æè»æ§ | 3 ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 4 ![]() ![]() ![]() ![]() | 3 ![]() ![]() ![]() |
ãã°ã€ã³ã®ãããå€ãšããã¥ã¡ã³ã
![](https://habrastorage.org/getpro/habr/post_images/f1a/b40/081/f1ab4008151b1905599dd4b03b4b3b05.png)
è§åºŠã¯ãæåã«ãããå¹æããã°ããäœæããŸãã åæ¹ååæãªã©ã®è€éãªããšãç°¡åã«å®è¡ã§ããŸãã ããããåºæ¬ãåŠç¿ãããšãåŠç¿ã®ãããå€ãé«ããªããŸããå€ãã®æ©èœãåããè€éãªæ§é ãéããŸãã ç¹å®ã®å°éçšèªãšå°æ°ã®äŸã®ããã«ãããã¥ã¡ã³ããèªãããšã¯å°é£ã§ãã
ããã¯ããŒã³ã®åŠç¿ã¯éåžžã«ç°¡åã§ãã ããããããã«ã³ãŒãã®æ§é ãæ¹åããæ¹æ³ãåãããªãããšãããããŸãã ãã¹ããã©ã¯ãã£ã¹ãç解ããã«ã¯ãããã€ãã®ãã¥ãŒããªã¢ã«ã確èªãããèªãå¿ èŠããããŸãã ãŸããMarionetteãThoraxãªã©ã®ã©ã€ãã©ãªã¢ããªã³ãèŠã€ããå¿ èŠããããããããŸããã ãã®ãããBackJSã¯CanJSãããç°¡åã«åŠç¿ã§ãããšã¯æããŸããã
CanJSã¯ããã®ã°ã«ãŒãã®äžã§æã軜éã§ãã canjs.usãããçç£æ§ã«å¿ èŠãªã»ãŒãã¹ãŠãç¥ãããšãã§ããŸãã ãã¡ãããä»ã®ãã¬ãŒãã³ã°æ¹æ³ããããŸãããç§ã¯ãŸãã«å©ããæ±ããå¿ èŠããããŸããã
Emberã«ã¯ãAngularãšåæ§ã«é«ãåŠç¿ãããå€ããããŸãã åŠç¿ã¯ç°¡åã§ãããåºæ¬çãªããšãè¡ãæ¹æ³ãåŠã¶ã«ã¯ãæåã¯å€ãã®å ¥åãå¿ èŠã§ãã ãšã³ããŒã«ã¯åæã®ãããå¹æããããŸããã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
ãã°ã€ã³ã®ãããå€ãšããã¥ã¡ã³ã | 2 ![]() ![]() | 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 3 ![]() ![]() ![]() |
éçºã®çç£æ§
![](https://habrastorage.org/getpro/habr/post_images/348/ee8/eca/348ee8eca8a9783f0016fc81e1f26341.png)
ãã¬ãŒã ã¯ãŒã¯ãååã«ç 究ããåŸããã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã®çç£æ§ã¯ãå éšåæãéæ³ãæé ãªäŸ¡æ Œã®ã¢ã¯ã·ã§ã³ã¹ããŒããªã©ãé倧ãªæå³ãæã¡å§ããŠããŸãã
è§åºŠ -ããããªãã圌ãããç¥ã£ãŠããã°ãééããªããããªãã¯åœŒãšéåžžã«çç£çã§ããããšãã§ããŸãã ãããããšã³ããŒã¯ãã®èŠå ã§ããã«é²ãã ãšæããŸãã
ããã¯ããŒã³ã§ã¯ãéåžžã«å€§éã®å®åã³ãŒããèšè¿°ããå¿ èŠããããŸãã ããã¯å®å šã«äžèŠãªããã§ãåŽåçç£æ§ãžã®çŽæ¥çãªè åšã§ãã
CanJS-èŒãã倱æãããŸããã ãã ãããšã³ããªã®ãããå€ãå°ãããããéåžžã«æ©ãçµæãåŸãããšãã§ããŸãã
ãšã³ããŒã¯ ã確ãã«ããã®ç¹ã§çŽ æŽââãããã§ãã ããã¯ãèªåçã«å€ãã®ããšãè¡ãå¥çŽã®ãªã¹ãã ããã§ãã å¥çŽãå匷ããŠé©çšããã ãã§ãEmberã¯æ£ããæ©èœããŸãã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
éçºã®çç£æ§ | 4 ![]() ![]() ![]() ![]() | 2 ![]() ![]() | 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() |
ã³ãã¥ããã£
![](https://habrastorage.org/getpro/habr/post_images/b5c/3c8/4f6/b5c3c84f621a3656c4b2cde3ba3103b5.png)
ãã«ããããã¥ã¡ã³ããããã³å°é家ãèŠã€ããã®ã¯ç°¡åã§ããïŒ
ããã¯ããŒã³ ã³ãã¥ããã£ã¯å·šå€§ã§ãã StackOverflowããã³IRCã§éåžžã«ã¢ã¯ãã£ãã§ãã å€æ°ã®æç§æžãšããã¥ã¢ã«ã
è§åºŠ ã ãšã³ã㌠ã StackOverflowãšIRCã§ãã¢ã¯ãã£ãã§ãããããªã¥ãŒã ãå°ããããªã倧ããªã³ãã¥ããã£ã§ãã
CanJS ã³ãã¥ããã£ã¯ä»ã®ã³ãã¥ããã£ã«æ¯ã¹ãŠå°ããã§ããã幞ããªããšã«ãéåžžã«æŽ»çºã§äŸ¿å©ã§ãã å°èŠæš¡ãªCanJSã³ãã¥ããã£ããã€ãã¹ãšèããçç±ã¯ãããŸããã§ããã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
ã³ãã¥ãã㣠| 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 3 ![]() ![]() ![]() | 4 ![]() ![]() ![]() ![]() |
ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒãšã³ã·ã¹ãã ïŒ
![](https://habrastorage.org/getpro/habr/post_images/833/c26/de8/833c26de85a0e381c4baf43af866f50b.png)
ãã©ã°ã€ã³ãŸãã¯ã©ã€ãã©ãªã®ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒãŸãã¯ãšã³ã·ã¹ãã ïŒãšã¯äœã§ããïŒ
ããã§ããBackboneã¯èª°ããæå©ãªã¹ã¿ãŒããåãããšãã§ããŸãããã®ããã®ãã©ã°ã€ã³ããããããããŸãã Angularãšã³ã·ã¹ãã ã¯ãAngular UIã®ãããªãã®ã§èå³æ·±ããã®ã«ãªãå§ããŠããŸãã Emberã®ãšã³ã·ã¹ãã ã¯ã人æ°ãé«ãããã«æ¹åãããã¯ãã§ãããããŸãçºå±ããŠããªããšæããŸãã CanJSã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ããŸãéçºãããŠããŸããã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
ã€ã³ãã© | 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 2 ![]() ![]() | 4 ![]() ![]() ![]() ![]() |
倧ãã
![](https://habrastorage.org/getpro/habr/post_images/01e/c4e/ae4/01ec4eae4cf670097dcd6ffa23c69d57.png)
ã¢ãã€ã«éçºã®éèŠãªèŠçŽ ã«ãªãå¯èœæ§ããããŸãã
è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠| |
---|---|---|---|---|
倧ãã | 80K | 18K | 33K | 141K |
è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠| |
---|---|---|---|---|
äŸåé¢ä¿ | äŸåé¢ä¿ãå¿ èŠãšããªãå¯äžã®ã©ã€ãã©ãª | å°ãªããšãã¢ã³ããŒã¹ã³ã¢ãšZeptoãå¿ èŠã§ãã Underscoreã«ã¯å°ããªãã³ãã¬ãŒããšã³ãžã³ããããŸãããMustacheãªã©ã®åªãããã³ãã¬ãŒããšã³ãžã³ãå¿ èŠã«ãªããŸãã äžç·ã«-61K | å°ãªããšãZeptoãå¿ èŠ-57K | jQueryãšHandlebarsãå¿ èŠã§ãã 269K |
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
倧ãã | 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 2 ![]() ![]() |
æ§èœ
![](https://habrastorage.org/getpro/habr/post_images/525/45d/fb0/52545dfb0d4b9f2ee27da761a6c074ad.png)
ãã¬ãŒã ã¯ãŒã¯ãéžæãããšããããã©ãŒãã³ã¹ã決å®çãªèŠå ã«ãªããšã¯æããŸãããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããããã¯ãã¹ãŠéåžžã«çç£çã ããã§ãã ããããããã¯ãã¡ããããã¬ãŒã ã¯ãŒã¯ã§äœããããã«äŸåããŸãã ããã©ãŒãã³ã¹ã²ãŒã ã§ã¯ãããå€ãã®æ³šæãæãããŸãã
ãããã®ã©ã€ãã©ãªã䜿çšããŠãå€ãã®ããã©ãŒãã³ã¹ãã¹ããèªåã§èŠãŠããŸããïŒ 1ã€ã®äŸ ïŒã ãããããããã®ãã¹ãã®åŠ¥åœæ§ã«ã€ããŠã¯ããããããŸããã ãã¹ããæ£ããæ¹åã«æ£ãããã®ããã§ãã¯ããããšã確èªããããšã¯éåžžã«å°é£ã§ãã
ãã¹ãã§èªãã§èªãã ããšãããCanJSã«ã¯ãç¹ã«ViewãããŒã¿ã«ãã€ã³ãããéã«å©ç¹ãããããã§ãã äžæ¹ãAngularã¯ãªããžã§ã¯ãã®ãããŒãã£ãã§ãã¯ããè¡ããšããçç±ã§çç£æ§ãäœããšæããŸãã ä»ã®äººã»ã©éããªãããšã¯ã§ããŸããã ãã¹ããèŠãŠãã ãã ã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
æ§èœ | 3 ![]() ![]() ![]() | 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 4 ![]() ![]() ![]() ![]() |
æºæ
![](https://habrastorage.org/getpro/habr/post_images/e73/491/27c/e7349127c4ac613496487fde73ce6cef.png)
ããã¯æçãããã¬ãŒã ã¯ãŒã¯ã§ãããå®çšŒåç°å¢ã§ç€ºãããŠããŸãããããã䜿çšããå€ãã®Webãµã€ãããããŸããïŒ
Backboneã«ã¯ã䜿çšã§ãããµã€ãããããããããŸãã ãã®ã³ãŒãããŒã¹ã¯ãã§ã«å€§ããªå€æŽãªãã§2幎ã§ãããããã¯æç床ã®é¢ã§çŽ æŽãããããšã§ãã
Emberã¯ããã»ã©æ°ãããã®ã§ã¯ãããŸããããæ¹åã®éçšã§å€§å¹ ã«å€æŽãããŠãããæåŸã®å®å®æ§ã¯æ°ãæã§æž¬å®ãããŠããŸãã ä»åã¯ããã¬ãŒã ã¯ãŒã¯ãæçããŠãããšã¯èããŸããã
Angularã¯Emberãããå®å®ããŠããããã¹ãæžã¿ã§ãã ããããããã¯ããŒã³ã»ã©ã§ã¯ãããŸããã
CanJS-å€ãã®ãµã€ãããªãããããœãªã¥ãŒã·ã§ã³ã¯ãã¹ããããŠããªãããã«èŠããå ŽåããããŸãã ããããããã¯ãã£ãšé·ãååšããŸãã ããã¯JavaScriptMVCã©ã€ãã©ãªããã®æç²ã§ããJavaScriptMVCã©ã€ãã©ãªã¯2008幎ããååšããŠãããçµã¿èŸŒã¿ã®äœ¿çšã«é¢ããåºç¯ãªçµéšããããŸãã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
æºæ | 4 ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 4 ![]() ![]() ![]() ![]() | 3 ![]() ![]() ![]() |
ã¡ã¢ãªãªãŒã¯ä¿è·
ããã¯ãé·æééããŠããåäžããŒãžã®ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠãªèŠçŽ ã§ãã ãããåé¡ã«ãªãããšã¯æãŸãããããŸããã æ®å¿µãªãããç¹ã«DOMã€ãã³ããã³ãã©ãèªåã§äœæããå Žåãããã¯ç°¡åã«èµ·ãããŸãã
Angular ãCanJSãããã³Emberã¯ããã¹ããã©ã¯ãã£ã¹ã®ã¿ã䜿çšããŠãããã®ããã«åé¡ãå¹ççã«åé¿ããŸãã Backboneã§ã¯ããã³ãã©ãŒãé©åã«åé€ãããã®ãžã§ããå®è¡ããå¿ èŠããããŸãã
æ瞟 | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|---|---|---|---|
ã¡ã¢ãªãªãŒã¯ä¿è· | 5 ![]() ![]() ![]() ![]() ![]() | 3 ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() | 5 ![]() ![]() ![]() ![]() ![]() |
å人çãªå¥œã¿
ããã¯ããããããã¬ãŒã ã¯ãŒã¯ãéžæããäžã§æãéèŠãªèŠçŽ ã§ãã
ããªãã奜ããªã... | 宣èšåHTML | ãã³ãã¬ãŒããšã³ãžã³ | åŸæ¥ã®SmallTalk MVCãã¿ãŒã³ã«å³å¯ã«åŸã | å ããã¬ãŒã ã¯ãŒã¯ |
次ã«éžæããŠãã ãã... | è§åºŠ | ããã¯ããŒã³ | Canjs | ãšã³ã㌠|
---|
å³ãè©äŸ¡ããæ¹æ³ã¯ãããŸããã
æçµã«ãŠã³ã
ããã§ãããããã¹ãŠãéèšçšã®ãã¡ã€ãã«ããŒãã«ã«ãŸãšããŸãã ããã¯åãªãç§ã®æèŠã§ãã ééè¡šã誀ã£ãŠçµã¿ç«ãŠããšæãããå Žåã¯ãç¥ãããã ããã ãã®æ¿ãã競äºã§åèŠçŽ ã®éã¿ãåãã«ãããšããã¬ãŒã ã¯ãŒã¯ã¯ã»ãšãã©åãŠãŸããã
翻蚳è ããïŒäœæè ã¯ããã¹ãã«çŽæ¥çµã¿èŸŒãŸããèšç®è¡šïŒExcel / Calcãªã©ïŒãæã¡ãèªè ã¯1ã¯ãªãã¯ã§åè¡ã®å€ªãããªãã«ãããå€æŽãããã§ããŸãã ç§ãã¡ãšäžç·ã«-ç§ãã¡ã¯ããã§çããèŠå ãæã€ããŒãã«ãèŠãŠããããå€æŽããããšãã§ããŸã-JsFiddleããŒãžã§åç §ããŠãã ãã ã
ç¬èªã®è©äŸ¡ãšå¥œã¿ã«å¿ããŠéã¿ãéžæããå Žåã¯ãäœæè ãèšç®ããJsFiddleã®ããŒãã«jsfiddle.net/sporto/5JVxh/lightã«ã¢ã¯ã»ã¹ããŠãã ãã ã ããã§ãåè¡ã®éèŠåºŠãããã³åèŠå ã«å¯Ÿããèè ã®è©äŸ¡ãå€æŽããããšãã§ããŸãã
æ瞟 è§åºŠ ããã¯ããŒã³ Canjs ãšã³ã㌠æ©èœ 5 2 4 5 æè»æ§ 3 5 4 3 ãã°ã€ã³ã®ãããå€ãšããã¥ã¡ã³ã 2 4 5 3 éçºã®çç£æ§ 4 2 4 5 ã³ãã¥ãã㣠4 5 3 4 çæ ç³» 4 5 2 4 倧ãã 4 5 5 2 æ§èœ 3 4 5 4 æºæ 4 5 4 3 ã¡ã¢ãªãªãŒã¯ä¿è· 5 3 5 5 éé¡ 38 40 41 38
ãããã£ãŠãããã¯ãã¹ãŠå人ã®å¥œã¿ãããªãã«ãšã£ãŠã®åèŠçŽ ã®éèŠæ§ã«äŸåãããšæããŸãã
ããã¯ããŒã³ã«é¢ãã泚æ
ç§ã¯ãã®ãããªã³ã¡ã³ããªãã§æçš¿ãçµããããšãã§ããŸããã ããŒã³ã³ã¯2幎åã¯çŽ æŽãããå³æžé€šã§ãããã ä»ã§ã¯ãã£ãšè¯ããã®ããããŸãã å€ãã®äººã人æ°ã ãã§Bekbonãéžãã§ãããšæããŸãããããã¯æªåŸªç°ã§ãã
æ°ãããããžã§ã¯ãã§Backboneã䜿çšããåã«ãããèããããšã匷ããå§ãããŸãã ããã¯äž»ã«ãå°æ°ã®ïŒåºæ¬çãªïŒæ©èœãšéçºè ã®å©äŸ¿æ§ã®äœãã«ãããã®ã§ãã ã³ãã¥ããã£ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããã«éåžžã«é åçã§ãããä»ã®ãã¬ãŒã ã¯ãŒã¯ãæ®åããã«ã€ããŠãã®å©ç¹ã¯ãªããªããŸãã 次ã«é²ãæéã§ãã
æçš¿è ïŒSebastian Portoã github.com / sporto