åWebã¢ããªã¯ãå°ãããŠæ¥œããããã³ããšã³ãã¢ããã³ãã£ãŒã§ãã
iFunnyã§ã¯ãããŠã§ãã¢ããªãã©ãœã³ããéå¬ããäœçŸäžäººãã®ãŠãŒã¶ãŒã楜ããŸãããã®éçšã§å€ãã®ãéã皌ããŸããã ããã§ããã¹ãŠãã©ã®ããã«çºçãããã説æããæºåãæŽããŸããã
ãŸããèªå·±çŽ¹ä»ãããŠãã ããã ç§ã®ååã¯ã¢ã³ãã³ã§ããFunCorpããã³ããšã³ãããŒã ã®ããŒã ãªãŒããŒã§ãã
ãã®èšäºã§ã¯ãã¢ãã€ã«WebViewã«åºã¥ããã€ã³ã¿ã©ã¯ãã£ããªWebã¢ããªã±ãŒã·ã§ã³ã®éçºã§ã®çµéšãå
±æããŸãã
Web ã¢ã㪠衚瀺ãã
WebViewã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã«çµã¿èŸŒãŸãããã©ãŠã¶ã§ãã
ãã©ãŠã¶ã䜿çšããŠããå Žåã¯ãHTML5ãJSãCSSã®åºç¯ãªæ©èœããããŸãã
ããã¯çè«äžã§ãã ããããæ¬åœã«äœã§ããïŒ
ãããå®éã«ã¯ãä»ã®åé¡ã«èå³ããããŸããã
- iFunnyã®èŠèŽè ã¯æ°ãããã©ãŒããããã©ãã ãåãå ¥ããŸããïŒ
- ãã®ãããªã¢ããªã±ãŒã·ã§ã³ã¯éçºäžã«ã©ã®çšåºŠåé¡ããããŸããïŒ 2幎åãå瀟ã¯ãã®åéã§ã®çµéšããªããå®éã«è¿œãã€ããããšæã£ãŠããŸããã
- ãã®æè¡ã¯æéãšãéãç¯çŽããŸããïŒ ãã®ãããªã¢ããªã±ãŒã·ã§ã³ã®éçºãµã€ã¯ã«ã¯ããçãããããã®ãããªæ©äŒããããŸãã
Webã¢ããªïŒ1ïŒHellowinner
åœæãããŒã ã¯2人ã§æ§æãããŠããŸããããç§ã¯ãã¹ãŠã®Webã¢ããªã§äžäººã§äœæ¥ããŸããã ããŒã ã«åå ããŠãã2ãæãçµéããã®ã§ãè¹ããããŠã§ãã¢ããªããŒã«ãã«çŽè¡ããŸããã
æåã®ã¢ããªã¯ããããŠã£ãŒã³ã®10æ31æ¥ãŸã§ã«æºåãããŸããã 2ã€ã®ãã¿ã³ãããããã²ãŒã ã䜿çšããŠããŠãŒã¶ãŒã®ç¥çµãããããããŸãã«ãã®ãããªåå¿ãåŒãèµ·ããããšãèšç»ãããŠããŸããã
ã¢ããªã±ãŒã·ã§ã³èªäœã¯æ¬¡ã®ããã«ãªããŸããã
è奮ãããŠãŒã¶ãŒããã¿ã³ããã£ããããã¢ããªã±ãŒã·ã§ã³ã¯ãããããã«éãããããã«èŠããããã æéXã§ãæ²é³Žãé³ãæ¯åãç»é¢ã«çªç¶çŸããææ ã®åµãåŒãèµ·ãããŸããã ãŸãããŠãŒã¶ãŒã ãã§ãªãããã®ããããèŠããšããŸã å°ãããããããŠããŸãã
ãã¯ãããžãŒã¹ã¿ãã¯ã¯ã·ã³ãã«ã§ããã
- éçãµã€ãããŒãã®ãžã§ãã¬ãŒã¿ã
- ãã³ãã¬ãŒããšã³ãžã³JadeïŒçŸåšã®PugïŒ;
- å°ãªãããªããã»ããµã
Harpãžã§ãã¬ãŒã¿ãŒã¯ããã«äœ¿çšã§ããå®å šãªã€ã³ãã©ã¹ãã©ã¯ãã£ãæäŸããã®ã§ãã³ãŒããèšè¿°ããCSSãHTMLãJSã䜿çšããŠéçWebãµã€ããçæããCDNã«ãã¹ãŠãé 眮ããWebViewã§ã©ããããŠæºè¶³ããŸããã ãããŠãäœãããããŸãããWebã¢ããªã±ãŒã·ã§ã³ã®æåã®çµéšããã©ãã£ãã¯ã®ããŒã¯ããããããåŸã«åãããã¯ããããŒãžã£ãŒãäœãé¢çœããã®ãèãåºãããšãèªåã®çŸ©åã ãšèããŸããã
Webã¢ããªïŒ2ïŒããŒãã³å¯Ÿãã©ã³ã
ãã®è©±ã¯å€±æã«é¢ããèšäºã§éšåçã«èšåãããŸããã ãã¹ãŠãæ¬åœã«ã©ãã ã£ããã話ãæãæ¥ãŸããã
次ã®Webã¢ããªã§ã¯ããŠãŒã¶ãŒããŒãªã³ã°ãå®æœããããšã決å®ãããŸããã ãã¡ããã奜ããªåœ¢åŒã§-æ»ãããããŠããããªãããã¯ã«ã€ããŠã æåã®æ祚ã¯å€§çµ±é ãšåŒã°ãããã®äžã§ããŒãã³ããã©ã³ããéžã°ãªããã°ãªããŸããã§ããã
æåã®ã¢ããªã±ãŒã·ã§ã³ãšã¯ç°ãªãã2çªç®ã¯ãµãŒããŒããŒãã®ååšãæ瀺ããŠãããããŒã¿ããŒã¹ãæäœããŸãã åœæã¯éåžžã«ã·ã³ãã«ã ãšèããããŠããã®ã§ãç§ã¯ããã³ããšã³ãéçºè ãšããŠãããåŠçã§ããŸããã ã³ããŒãããŸããã ããã€ãã®äºçŽããã
ããŒã¿ããŒã¹ãšããŠMongoDBã䜿çšããŸãããiFunnyã¢ãã€ã«ã¯ã©ã€ã¢ã³ãã®APIã¯ãã®ã·ã¹ãã äžã§æ£ç¢ºã«å転ããæºåãæŽã£ãã¯ã©ã¹ã¿ãŒããããéžæã¯æããã§ããã Express.jsããµãŒããŒãã¬ãŒã ã¯ãŒã¯ãšããŠéžæãããŸããã ãã³ãã¬ãŒããšã³ãžã³ãšããŠã®ãã¹ãŠã®åãadeïŒãã°ïŒãããªããã»ããµãšããŠã®LESSãããã³Gulpã䜿çšããã¹ã¿ãã£ãã¯ã®æ§ç¯ã
æ°ããã¢ããªã±ãŒã·ã§ã³ã®èµ·ååŸæåã®æ°æéã§ã100äžäººä»¥äžã®ãŠãŒã¶ãŒãæ祚ããŸããã ãããŠãé¢çœãããšãèµ·ãããŸããïŒèå³ã®éã100ïŒ ãè¶ ããŸããã ãã¡ãã146ïŒ ã§ã¯ãããŸããã
ããŒã¿ããŒã¹ããã®æšæºå¢åã䜿çšãã代ããã«ãç§ã¯äžè¬çãªãçŸåšã®å€=çŸåšã®å€+ 1ãã䜿çšããŸããã ãããŠãæ¬çªç°å¢ã§ã®ã¿ã¯ãšãªã®ç«¶äºåãªã©ã®ããšãåŠã³ãŸããã ããã圌ãã¯è±¡ãäžåœã®åºã«å ¥ããŸããã
ããã¯ããããããšãå€æãããŠãŒã¶ãŒã¯ãããè¯ãåè«ãšããŠåãå
¥ããŸããã
éããæãšãããã§ãå€é
ãã«ãšã©ãŒãä¿®æ£ããŸããã ãããã®1ç§ããã1äžä»¶ã®ãªã¯ãšã¹ãã¯è¯ãæèšãšãªããç§ã¯ãããäºåºŠãšããªããšçŽæããŸããã
åã調æ»ãä¿®æ£ïŒ
Webã¢ããªïŒ3ïŒBooby Bird
以åã®webappsã®å°è±¡çãªæåã®åŸãå®å šãªHTML5ã²ãŒã ãéå§ããããšã決å®ãããŸããã ãŸãããã®éšéã«ã¯ãŸã 2人ãåããŠãããããéçºã¯äžåœã®ããªãŒã©ã³ãµãŒã«ä»»ããããŸããã
ãããã£ããé 匵ã£ãïŒ
- WYSIWYGãšãã£ã¿ãŒã§ã²ãŒã ãçµã¿ç«ãŠãŸããã
- StackOverflowã䜿çšããŠããã¥ã¢ã«ã§PHPã®ãµãŒããŒããŒããäœæããŸããã
- 圌ã ããç¥ã£ãŠããæ¥çå€ã§ãããã®éšåãåºå®ããŸããã
- é£èªåããããã¡ã€ã«ã®åœ¢åŒã§çµæã瀺ããŸããã
ã¢ããªã±ãŒã·ã§ã³ãæŠéãã¡ã€ã³ã§ã®å®è¡ãå®å šã«æåŠããåŸãç§ã®æ¥œèŠ³äž»çŸ©ã¯ã€ãã«æ¯æžããŸããã ãã®çµæããã¹ãæžã¿ã®Express.jsã«ã³ãŒãã転éããå¯èœãªéãé£èªåãããã¯ã©ã€ã¢ã³ãã³ãŒãã«ããããé©çšããŸããã ã²ãŒã ãçãè¿ã£ãã ããã§ãããã¶ã€ã³ãå£ãããããä»®éæŸã«ããã£ãŠããããšã¯æããã§ããã
ã²ãŒã ã®çµããã«ãæé«ã®ãã¬ã€ã€ãŒã®è©äŸ¡ãããããããŠãã¡ããããªãªãŒã¹ã®10ååŸã«å£ããŸããã ãŠãŒã¶ãŒã¯çµæãä¿åããããã®ãªã³ã¯ãçºæãããã®å€ãå€§å¹ ã«å€æŽãå§ããŸããã JWTããŒã¯ã³ã䜿çšããŠãªã³ã¯ãããŒãœãã©ã€ãºããã¢ããããŒãããªãªãŒã¹ãããããã®å€§éã®å±±ãçµäºããŸããã
ãããããŠãŒã¶ãŒã«å®å šã«å±ãã³ãŒããä¿è·ã§ããŸããã§ãããé£èªåã¯æŽçããããããã¯ãŒã¯çµç±ã®ãªã¯ãšã¹ãã¯å¯Ÿå¿ãããŠãŒãã£ãªãã£ã§è¡šç€ºãããŸããã ã¹ããã¡ãŒã®äœ¿çšæ¹æ³ãç¥ã£ãŠããäžéšã®ãŠãŒã¶ãŒã¯ãçµæãšã®ãªã³ã¯ãåã³å解ããããã«å€ãã®ç°ãªããã³ã»ã³ã¹ãéä¿¡ããŸããã ãã³ãã«ãããJWTããŒã¯ã³ã¯åœŒãã®åãè¶ ããŠããããšãå€æããããã圌ãèªèº«ã¯çŠæ¢ã«éãããŸããã
ãã®Webã¢ããªã¯ãŸã ããªãã®æ°ã®ãã¥ãŒãååŸããŠãããé©ããããšã«ãéåžžã«é·ãããŒã«ã®ç¹°ãè¿ãã¢ã¯ã»ã¹ããããŸããã
Webã¢ããªïŒ4ïŒäŒæ¥ã®ãã¬ãŒã³ã
ã¢ã¡ãªã«äººã®æããæ°ã«å ¥ãã®äŒæ¥ã®äžã€-ã¯ãªã¹ãã¹-å®ããã¯ãã³ã³ãœãŒã«ãã®ããã«ãŒããã«ã¡ã©ãTã·ã£ããããã³ä»ã®å€ãã®ã¢ã¡ããã£ãæŒå¥ãããŠé 眮ãããŸããã ããããå³å¯ã«å®çŸ©ãããæéã«åèš4åã®æœéžãè¡ãããŸããã 次ã®æœéžã®åŸã次ã®æœéžã®ç»é²ãéãããŸããã
ãããŒãã®äžãã¯ãã¹ãŠåãExpress.jsãJadeïŒPugïŒãLESSã§ããã åå è ã®å€§ããªããŒã¯ãäºæ³ãããããŒã¿ããŒã¹ãšããŠå¥ã®MongoDBã¯ã©ã¹ã¿ãŒã䜿çšããŸããã ãããŠã圌ã¯è² è·ãã¹ãããå®è¡ããã®ã§ãä»åºŠã¯ãã¹ãŠãæ¬æ¥ã®ãšããã«ãªããŸããã ããŠãããªãã¯ç解ããŠããŸãã
Webã¢ããªã¯åªããçµæã瀺ããŸãããçŽ300äžäººã®åå è ããã§ã«ç¬¬1ã©ãŠã³ãã«åå ããŠããŸãã ããããæåã«ã¯å°é£ã䌎ããŸããã
æåã«ãã¢ããªã±ãŒã·ã§ã³ã€ã³ã¹ã¿ã³ã¹ã®ç®¡çã«äœ¿çšãããNGINXãšPM2ã®çµã¿åããã§åé¡ãçºçããŸããã HTML5ãCSSãJSãªã©ãäœããã¹ããç解ã§ããŸããã§ããããããŠããããã¯ãŒã¯äžã«ã¿ã€ã ã©ã€ã³ããããDevOpsãšã³ãžãã¢ãå°æããããã¯ãã«ã«ãã£ã¬ã¯ã¿ãŒã®éãã§å³ããè¡šæ ãèŠããŠããŸããã ãã°ããããŠãåé¡ã¯ä¿®æ£ããã次ã®è³åãæœéžããããŸã§æéã®äœè£ããããŸããã ç§ã¯çŽ æŽã«ãä»ã§ã¯ãã¹ãŠãããŸããç²ãæãŠãŠãããšä¿¡ãå§ããŸããã
ãããŠãããã§ãåé¡ããããŸãããµãŒããŒåŽã«çµã¿èŸŒãŸããã¹ã±ãžã¥ãŒã©ãŒã¯ã2åç®ã®æç»ãæåŠããŸããã ããã€ãã®çŽæã®ããã«ãã¹ã¯ãªããã®çµæã確èªããããšã«ããŸããããçµæãæ¬ ããŠããããšãããããŸããã çªã®å€ã«æããããåé¡ãå±æçã«è°è«ããããšã¯ã§ããŸããã§ãã-ãã¹ãŠãæ©èœããæéã¯å®¹èµŠãªãéããŸããïŒ2åç®ã®æœéžã®çµæã®å ¬è¡šãè¿ã¥ããŠããŸããã ç§ã¯æ éã«æåã§èµ·åããå¯èœæ§ãæ®ããããšãä¿åããŸããã éäŒã®çµæãçºè¡šããã1ååã«ãã¹ã¯ãªãããå®è¡ããæ£ããåäœããããšã確èªããŠãæ¯ãåããŸããã
ããã«ç¶ããŠãç ããªãå€ã®æéãéãããŸããããã®éãç§ã¯ã§ããéãç¶ããŸãããæ ç»ãèŠãŠããšã©ãŒã®æ€çŽ¢ã«å€¢äžã«ãªããç®èŠãŸãæèšã§æ±ããããŸããã åå3æã«æçµæœéžãéå§ããããäžåºŠãã¹ãŠããã§ãã¯ããŠç ãã«èœã¡ãŸããã
ãã®ãããªç ç²ã¯æ£åœåãããŸããã24æéåŸãWebã¢ããªã®èŠèŽåæ°ã¯1,200äžåãè¶ ããã³ã¡ã³ãã¯æ°å件ããœãŒã·ã£ã«ãããã¯ãŒã¯ã§ã¯å€ãã®ãã€ãºãçºçããŸããã ãŠãŒã¶ãŒã¯éåžžã«è奮ããŠããŸããã圌ãã¯ééããªãã¢ããªã±ãŒã·ã§ã³ãæ°ã«å ¥ã£ãŠããŸããã ã¯ããç§ã¯äœãé ãã®ã奜ãã§ããã
webappsã®é·æãšçæ
çæ ïŒ
- WebViewãããã©ã«ãã®ãã©ãŠã¶ã§ãããSamsungã¯ãã¹ãŠãã«ã¹ã¿ãã€ãºããã®ã倧奜ãã ããã§ãã ãŸãããã¹ã¯ããããã©ãŠã¶ãŒãã¢ãã€ã«Chromeãããã³SafariãWebã¢ããªãæ£ãã衚瀺ããå Žåãããµã ã¹ã³ãã¯åžžã«äœããéã³ãŸãã ãã®ãã©ã³ãã¯ã¢ã¡ãªã«ã§éåžžã«äººæ°ããããä¿®çãå¿ èŠã§ããã
- ãã¹ãŠã®è¡šç€ºã®åé¡ãä¿®æ£ãããåŸãã¢ããªã±ãŒã·ã§ã³ãæŠéç¶æ ã§æ£ããåäœããªãã£ãããšãå€æããå¯èœæ§ããããŸãã ãããŠããã®çç±ã¯ãããµããŠããŸãããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãçµã¿ç«ãŠããšãã«ãããã€ãã®ãã§ãã¯ããŒã¯ãä»ããã®ãå¿ããå Žå-ãããŠåã³ïŒ -WebViewã§ã®ã¹ã¯ããŒã«ãæ£åžžã«æ©èœããªããªããŸããã ãããŠãããã¯ã»ãšãã©ã®å Žåãæ°ãããªãªãŒã¹ã§ãããå°ãªããšãæ°æ¥é ããŠãªãªãŒã¹ãããŸãã
é·æïŒ
- éã ã éçºæéã®å¹³åã¯2é±éã§ãã æåã®é±-ã¢ã¯ãã£ããªéçºã2çªç®ã®é±-ãã¹ããä¿®æ£ãæ¹è¯ã
- å®ã ã éçºã³ã¹ãã®ç¯çŽã¯è«å€§ã§ãã Webã¢ããªã¯ããã¹ãŠã®ãã©ãããã©ãŒã ã«å¯ŸããŠ1人ã®ããã³ããšã³ãéçºè ãäœæã§ããŸãã 芪æãªãã¢ãã€ã«éçºè ã¯ããã«ã¯é¢äžããŸããã ãããŠãããšãæ¹ãããŠããããã¯ãŸãã§ãããå°æ°ã§ãã
- ãã£ããã ã ãã®ãã©ãŒãããã¯ããŠãŒã¶ãŒã«ãšã£ãŠæ¬åœã«èå³æ·±ããã®ã«ããããšãã§ããŸãã å€ãã®ææšïŒã³ã¡ã³ãã®æ°ãç»é²ãã²ãŒã ã®ã»ãã·ã§ã³æéïŒããå€æãããšãèŠèŽè ã¯ãã®åæ¹åæ§ã奜ãã§ãã 圌ãã¯ééããèŠã€ããŠãããå³ããããšã奜ã¿ãŸãã ãããŠãUGC補åã®ç±çã§é¢äžããã³ãã¥ããã£ãããåªããŠãããã®ã¯äœã§ããããïŒ
9æãã12æãŸã§ã®æéã«ã6ã€ã®Webã¢ããªã±ãŒã·ã§ã³ãäœæãããŸããã ãããŠããããããè¯ãçµæããããããŸããã Web-App Marathonã¯ãæãéèŠãªãã®ãå«ããé¢å¿ã®ãããã¹ãŠã®è³ªåã«çããããšãå¯èœã«ããŸãããã¯ããããã¯ééããªãç¶ç¶ãã䟡å€ã®ãããããã¯ã§ãã
çŸåšãwebappsã®éçºã¯ãã§ã«ã¹ããªãŒã é ä¿¡ãããŠããŸããéå»2017幎ã«ã¯94åããããã»ãã·ã§ã³æ°ã§ã¯çŽ1å1åäžä»¶ã§ããã ãšããã§ãã»ãšãã©ã¯ããã§èŠãããšãã§ããŸã ã
ããããç§ã¯é çªã«ãé£æåäŒç€Ÿã§åãããšã«ã€ããŠäœããç解ããŸããã
äœæ¥ã®å€æŽã®åé¡ã解決ãããšããç§ã¯1ã€ã®è£œåãéå±ããã粟ç¥çã«æºåãã§ããŠããã®ã§ãä»åŸ2幎éã¯ããµã€ããã«ãããããå¿ èŠããããŸããã webappãããªããã°ãªããªãã£ããšããå°ããã€èªåèªèº«ãçãããæ¯ç§1äžä»¶ä»¥äžã®ãªã¯ãšã¹ããèŠãŠãå€ã«æã§ã¹ã¯ãªãããå®è¡ããŸããã ç§ã¯æ¬åœã«æ¯é±ã補åãèŠããå¿ èŠããããŸãã-æ°ãããã®ã ãããŠãããã¯çŽ æŽããããã¡ã³ã§ãããã¹ãã«ã®ãŸãšããªéçºã§ãã
ã¡ãªã¿ã«ããããã®ãä»åŸ2幎éãã¯ãæåãã圢æãããããã³ããšã³ãããŒã ã®æ°ããªãªãŒããšããŠã®ã¿ãããµã€ããã«ãããããå¿ èŠããããŸããã ãã®æ¥œããWebã¢ããªã®äœéšãã§ããŸãã 圌ã«ã€ããŠã¯æ¬¡ã®èšäºã§èª¬æããŸãã