Lingualeo ãããžã§ã¯ãã¯ãã§ã«10幎åã®ãã®ã§ãããã·ã¢ããã«ã³ãã¹ãã€ã³ãã©ãã³ã¢ã¡ãªã«ããã®2300äžäººä»¥äžãç§ãã¡ã®ãµãŒãã¹ã䜿çšããŠè±èªãåŠãã§ããŸãã
LinguaLeoã¯2000幎代åŸåãã10幎代ååã«äœæãããåœæã®æå 端ã®ãã¯ãããžãŒãšææ³ã䜿çšããŠããŸãããããããæéãçµã¡ã圌ãã¯éåžžã«æä»£é ãã«ãªããŸãããããã§ãã·ã¹ãã ãæŽæ°ããææãæ¥ããšå€æããŸããã
ããã¯ãšã³ãéçºãªãŒããŒã®OlegPravdinã«ã圌ãšåœŒã®ããŒã ããã¡ã€ã³è£œåã®ãµããŒããšäžŠè¡ããŠãPostgreSQLã«åºã¥ãæ°ããã¢ãžã¥ã©ãŒãµãŒãã¹æ§é ãæ§ç¯ããããžãã¹ããžãã¯ãããŒã¿ããŒã¹ã«è»¢éããäœçŸäžãã®ãŠãŒã¶ãŒã«ç§»è¡ããæ¹æ³ã«ã€ããŠè©±ããŠããããŸããã
æçãã補åã®åé¡
ãç§ã¯2018幎8æã«Lingualeoã«æ¥ãŠãããã¯ãšã³ãã®éçºãäž»å°ããŸãããåœæãæ¯æŽã¯8人ã®éçºè ãš2人ã®ç®¡çè ã®ããŒã ã«ãã£ãŠè¡ããã圌ãã¯äž»ã«PHPã§100äžè¡ã®ã³ãŒãã®ã¢ããªã¹ãç¶æããŠããŸãããå°ããªæ°æ©èœã§ãå®è£ ããã®ã«2ã¶æããããŸããããŸããã¢ã¯ãã£ããŠãŒã¶ãŒ10,000人ãããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã¹ãã¯å¹Žé1,000ãã«ãè¶ ããŸããã
ã©ãããŠãããªã£ãïŒäºå®ããããžã§ã¯ãã§ã¯10幎以äžã«ããã£ãŠããã€ãã®éçºããŒã ã倿ŽãããŸãããç§ã®ããã«ãæ°ãã人ã ããã£ãŠæ¥ãŠã圌ãã¯ç¬èªã®æ¹æ³ã§æ°ããã¢ãžã¥ãŒã«ãšæ©èœã远å ããŸãããããŒã ãå€ãããæ°åè ã¯ã·ã¹ãã ã®å€ãéšåãã©ã®ããã«æ©èœããããåžžã«çè§£ããŠããªãã£ããããLingualeoã®ã³ãŒãã¯åŸã ã«ãã©ãã¯ããã¯ã¹ã«å€ãããŸãããããã¯ãšã³ãã®äžéæãªããžãã¯ãéè² è·ã®ããã³ãã倧éã®ã¯ã©ãããããã¥ã¡ã³ãã®å€§ããªã®ã£ããã
ã¹ã¿ããã«ã¯åèš20人ã®éçºè ãããŸãããã補åãéçºããããšã¯äžå¯èœã§ãããäœãã远å ãããšãäºæããªãåé¡ãçºçããŸãããããŒã ããã¹ãŠãä¿®æ£ããã®ã«2ã3é±éããããŸãããéçºè ã¯2013幎ããã³ãŒããä¿å®ããŠãããæ©èœãæŽæ°ããããã®ãªãœãŒã¹ã¯ãããŸããã§ããã
ãããã¯ã10幎åã®ãã¯ãããžãŒã§èšè¿°ãããæçããIT補åãéçºããå€ãã®äŒæ¥ãçŽé¢ãã課é¡ã§ãããã¬ã³ãã¯å€åããŸãããå€ãã¢ãŒããã¯ãã£ã®ããããã¹ãŠã®æ°ããã¢ã€ãã ã䜿çšã§ããããã§ã¯ãããŸããã
補åã¯éçºãããæ©èœã倧ãããªããããŠããŸãããè©³çŽ°ã«ææžåããæéããããŸããããããã®åé¡ã¯ããŸããŸãªæ¹æ³ã§è§£æ±ºãããŸãããç§ãã¡ã¯ãã®æ¹æ³ã決å®ããŸãããLingualeoã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå€ãããªãããã«ãæ°ããã·ã¹ãã ãæåããæ§ç¯ããã§ããã ãå€ãã®è£œåããžãã¯ãç¶æããå¿ èŠããããŸãã
ã¹ããã1.æ°ããã¢ãŒããã¯ãã£ã®ãããã¿ã€ããçµã¿ç«ãŠãŸãã
ãµãŒãã¹ã®æè¡ã³ã³ããŒãã³ããæŽæ°ããææ°ã®ãã¯ãããžãŒã䜿çšããŠLingualeoãåæ§ç¯ããæ¹æ³ãçè§£ããå¿ èŠããããŸãããç§ã¯çµå¶é£ã«ãããã¯ãšã³ãã®å²åŠãå®å šã«å€ããããšãææ¡ããŸãããããžãã¹ããžãã¯ãããŒã¿ããŒã¹ã«è»¢éããMySQLããŒã¿ããŒã¹ãPostgreSQLã«çœ®ãæããŸãã
ç§ã¯çŽã®ãããã¿ã€ãããå§ããŸãããæ°ããã¢ãŒããã¯ãã£ãæããããã©ãŒãã³ã¹ãåäžãããæ¹æ³ãšãæºåã«å¿ èŠãªãªãœãŒã¹ã®éã説æããŸãããæç¢ºãªãµã¯ã»ã¹ã¹ããŒãªãŒãæå ã«ãªãã£ãããããããžã§ã¯ããä¿è·ããããšã¯å°é£ã§ãããããžãã¹ã忢ããã«2,000äžäººã®ãŠãŒã¶ãŒã§ãµãŒãã¹ãç§»è¡ããæ¹æ³ã«ã€ããŠèª°ãæžããŠããŸãããããããLingualeoã¯ãªã¹ã¯ãåãããšã«æ±ºãã倿Žèšç»ãæ¿èªããŸããã
ç§»è¡åã®ã¢ãŒããã¯ãã£å³
PHP, , MySQL . JSON
SQL PostgreSQL, JSON. -, , JSON
2.
èšç»ãéçºè
ãšå
±æãããšãããããŒã ã¯å€æŽã®æºåãã§ããŠããªãããšãæããã«ãªããŸãããã»ãšãã©ã®äººãäŒç€ŸãèŸããŸãããæè¿æ¥ã人ã ããæ®ããŸãããç§»è¡ããããã«ãéçºããŒã ãåç·šæããããšã«ããŸããã
ç§ãã¡ã¯éå¿çã§å€åã®æºåãã§ããŠãããå°éçã§è²¬ä»»ãããã®ãæ¢ããŠããŸãããã³ãŒãã®å質ã ãã§ãªãããœããã¹ãã«ã«ã泚æãæãããã«ããŸãããç§ãã¡ã¯ãµãŒãã¹ã®ã¢ãŒããã¯ãã£ãåæ§ç¯ããŠããã®ã§ãè€éãªãããžã§ã¯ããæããã以åã¯çŽé¢ããŠããªãã£ãåé¡ã解決ããæºåãã§ããŠãã人ã ãå¿ èŠã§ããã
ããšãã°ãç§ã®ããã«å¶ç¶èŠã€ãã人ãããŸããé£è¡æ©ã§ãªã³ã¬ã¬ãªã®CEOããŠã©ãžããŒã«ã»ã·ããã£ã³ã¹ããŒã«äŒããŸããããŠã©ãžããŒã«ã¯å¥ã®ã¹ã¿ãŒãã¢ãããšã®åè°ã§å°æ¥ã®ããã³ããšã³ããªãŒããŒã«äŒããŸãããããããç§ãã¡ã¯åžå Žããã»ãšãã©ã®æ°ããéçºè ãæ¡çšããŸããã8ã€ã®æ¬ å¡ãåããããã«ã1,118ã®ã¢ããªã±ãŒã·ã§ã³ã調æ»ãã124ã®ã€ã³ã¿ãã¥ãŒã宿œããŸãããLingualeoã§ã®æ°ããéçºè ã®æ¬ å¡ã®åè£è ã®
æŒæã
ã¹ããã3.çµç¹æ§é ã®ç°¡çŽ å
éçºã«ã¯ãWebãããã¯ãšã³ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®3ã€ã®é åãããããã¹ã¿ãŒéšéããããŸãããã¹ãŠã®æ¥çãäžåºŠã«çè§£ã§ãã人ãèŠã€ããããšã¯ãçæéã§éåžžã«å°é£ã§ãããã®ããããã¯ãã«ã«ãã£ã¬ã¯ã¿ãŒãèŸä»»ããæ°ããããŒã ã®çµç¹æ§é ãå¯èœãªéããã©ããã«ããããšã«ããŸãããå瀟ã®ç®¡çã¬ãã«ã¯1ã€ã ãã§ãåæ¹åã«1人ã®ãªãŒããŒãããŸãã
宿çã«äŒè°ãéå¬ããçŽæ¥é£çµ¡ãåãåãããšã§ãéçºã®äºæž¬æ§ãé«ãŸããæéæ ãççž®ãããŸããã CTOã¯ãããŒã éã§è²¬ä»»ã誀ã£ãŠå²ãåœãŠããªã©ãäžåçãªæ±ºå®ãäžãå¯èœæ§ããããŸãããªãŒãããããŒãžã£ãŒã®è¿œå ã¬ã€ã€ãŒãªãã§éä¿¡ããã·ã¹ãã ã§ã¯ãäžåçãªæ±ºå®ã®å¯èœæ§ãæžå°ããŸããç§ãã¡ã¯ãã€ã§ãå人çãªäŒè©±ã§åé¡ã«ã€ããŠè©±ãåãããšãã§ããŸãã
ããšãã°ãããã³ãã§ã¯ãªãããŒã¿ããŒã¹ã®æ°ããæ§é ã«é¢æ°ãå®è£ ããæ¹ãè«ççã§ãããšçè§£ããŠããå Žåã¯ããã£ããã«æžã蟌ã¿ãããã³ããšã³ããªãŒããŒãšã¢ã€ãã¢ã«ã€ããŠè©±ãåããŸããCTOãšã®çŽæãããããã¢ã€ãã¢ãè£ä»ãããã¬ãŒã³ããŒã·ã§ã³ãæºåãããããå¿ èŠã¯ãããŸããã
倿ŽååŸã®çµç¹æ§é ïŒéçºäžã®CTOãåé€ãã補åéšéã®æ§é ãç°¡çŽ åããŸããã仿¥ã§ã¯ã補åèšèšè ã¯ãã¢ã€ãã¢ãåé¢ã«åºãããã«2ã€ã®ã¬ãã«ã®ãããŒãžã£ãŒãšè©±ãå¿ èŠã¯ãããŸããã
ã¹ããã4.ããžãã¹ããžãã¯ãããŒã¿ããŒã¹ã«è»¢é
以åã¯ãLingualeoã®ããžãã¹ããžãã¯ã¯æåç·ã§ã¢ããªã±ãŒã·ã§ã³ã«ãããŸããã補åã®æ©èœã¯ãJavaScriptãPHPã³ãŒããªã©ã®ããŒã¿ãåŠçããããã«èšèšãããŠããªãã·ã¹ãã ã«ãã£ãŠè§£æ±ºãããŸããããã®ãããLingualeoããžãã¹ããžãã¯ãPostgreSQLããŒã¿ããŒã¹ã«ç§»æ€ããŸããã
坿
LingualeoãµãŒãã¹ã®4ã€ã®äž»èŠãªã»ã¯ã·ã§ã³ã®1ã€ã¯Jungleã§ããããã¯ãå€åœèªïŒããã¹ãããªãŒãã£ãªããããªïŒã®è³æã®ã»ããã§ãããä»»æã®åèªã®ç¿»èš³ãèªèã§ããŸããã€ãŸãããŠãŒã¶ãŒã¯å®éã®ã³ã³ãã³ããè±èªã§åŠç¿ããäœããæç¢ºã§ãªãå Žåã¯ããããªã®ããã¹ããŸãã¯ãµãã¿ã€ãã«ã®åèªãã¯ãªãã¯ããŠã翻蚳ãèŠãããšãã§ããŸãã
ãžã£ã³ã°ã«ã®ããã¹ããžã£ã³ã°ã«ã®
ãããª
ã¯ãªãã¯ããŠåèªã翻蚳ããæ©èœã䜿çšããã«ã¯ãããã¹ããåèªã衚çŸããã¬ãŒãºã«åå²ããå¿ èŠããããŸããæ¬¡ã«ã-èŸæžãåç §ããŠãæ°ãããŠã£ã³ããŠã§ããã¹ãã®äžã«ç¿»èš³ã衚瀺ããŸãã翻蚳ã®ããã«ããã¹ããåå²ããã®ã¯ããªãé£ããã§ãã2ã€ã®åèªã«åå²ããŠãæå³ããªãåºå®åŒãšãã¬ãŒãºåè©ããããŸããããšãã°ãé¢éžãšé¢éžã¯ãåãåèªãå«ãŸããŠããŠããã³ã³ãã³ãã®ç°ãªãåäœã§ãã
ãã®é¢æ°ã®ãã¹ãŠã®ããžãã¯ã¯ãäŸå€ãšè€éãªããã¹ãåå²ã«ãŒã«ãšãšãã«ã以åã¯åé¢ã®JavaScriptã§èšè¿°ãããŠããŸãããæ©èœãéåžžã«é¢åã§ãç¿»èš³ã«æéããããå ŽåããããŸããã
ãã®æ©èœãããŒã¿ããŒã¹ã«å®è£ ããŸããããããã³ã°ã¯æ¢è£œã®JSONãããã³ãã«éä¿¡ããããã¹ãã¯ãã§ã«åèªãšè¡šçŸã«åå²ãããŠããŸããããŒã¿ããŒã¹å ã®ååèªãšåŒã«ã¯IDãå²ãåœãŠãããŠããããã翻蚳ãç°¡åã«èŠã€ããããšãã§ããŸãããŸããJSONã¯ããŠãŒã¶ãŒãèŸæžã«æã£ãŠããåèªãšãŸã æã£ãŠããªãåèªãèæ ®ã«å ¥ããŸããåé¢ã«æ®ã£ãŠããã®ã¯ãæ å ±ã衚瀺ããç¹å®ã®èšå·ã§åèªã匷調衚瀺ããããšã ãã§ãã
èŸæž
[èŸæž] ã»ã¯ã·ã§ã³ã§ãåãããšãè¡ããŸããããã¹ãŠã®äœæ¥ãããŒã¿ããŒã¹ã§è¡ãããããã«ãªããŸãããèŸæžã«10äžä»¥äžã®åèªã衚çŸããããŠãŒã¶ãŒãããŸããèŸæžã§äŸ¿å©ãªæ€çŽ¢ãæäŸããåèªãã°ã«ãŒãã«åå²ãããŠãŒã¶ãŒã«ããŸããŸãªãã£ã«ã¿ãŒãæäŸããå¿ èŠããããŸãã
以åã¯ãèŸæžã®ããžãã¯ã¯ããã³ããµã€ããŸãã¯PHPã¬ã€ã€ãŒã«ãããŸããããçŸåšãã·ã¹ãã ã«ã¯ããã³ããšã³ããšããã¯ãšã³ãã®éã«æ¬æ ŒçãªAPIããããŸãã倿°ã®ãã©ã¡ãŒã¿ãŒãå«ã1ã€ã®ãªã¯ãšã¹ããããŒã¿ããŒã¹ã«éä¿¡ãããšãããããæ¢è£œã®JSONãéä¿¡ãããŸãã
èŸæžãã£ã«ã¿ãŒïŒåèªã«ããæ€çŽ¢ããã¬ãŒãã³ã°ã®çš®é¡ã«ããåèªã®éžæãåèªãšãã¬ãŒãºã®éžæãåŠç¿ããåèªãšæ°ããåèªã«ãããã£ã«ã¿ãŒ
ã³ãŒã¹
ããžãã¹ããžãã¯ãããŒã¿ããŒã¹ã«è»¢éãããšãã³ãŒãã®éãå€§å¹ ã«åæžããããµãŒãã¹ãé«éåãããŸãããããšãã°ã[ã³ãŒã¹]ããŒãžã®ããã¯ãšã³ãã³ãŒãã¯ç§»è¡åŸã«å€æŽãããŸãããç»é²ãŠãŒã¶ãŒã«èŠãããããã«ããã³ãŒã¹ã¯10ã®åºæºã«åŸã£ãŠã·ã¹ãã ã«ãã£ãŠéžæãããŸãã以åã¯ããã®ãããªããŒãžã¯600ããªç§é圢æãããããŒã¿ããŒã¹ã«12ã®ãªã¯ãšã¹ããéä¿¡ããŠããŸããããçŸåšã¯1ã€ã ãã§ãã
ã¹ããã5.ãªãªãŒã¹åŸã®ãŠãŒã¶ãŒãã£ãŒãããã¯ãæ€èšãã
éçºã«ã¯çŽ6ãæããããŸããã2018幎æ«ã«æŽæ°ãéå§ãã2019幎5æã«ãªãªãŒã¹ããŸãããã»ãšãã©ã®ãŠãŒã¶ãŒã¯ããµãŒãã¹ãã¯ããã«éãæ©èœãå§ãããšæããŸããã以åã¯ãLingualeoã¯é床ãèœãšããã«åæã«2,000人以äžããã¬ãŒãã³ã°ã§ããŸããããçŸåšãã·ã¹ãã ã¯100,000人ãè¶ ãããŠãŒã¶ãŒã®ããŒã¯ã«èããããšãã§ããŸãã
äžéšã®äººã ã¯ãŸããåŠå®çãªçµæã«æ°ã¥ããŸããããã©ãã¯ããã¯ã¹ã䜿çšããŠç§»è¡ãããšãããŒã¿ã®100ïŒ ã®å®å šæ§ã確ä¿ããããšãå°é£ã«ãªããããèŸæžããåèªã倱ã£ããã®ããã³ãŒã¹ã®é²è¡ç¶æ³ã誀ã£ãŠè¡šç€ºãããã®ããããŸãã
åŸã ã«ãç§ã®ããŒã ãšç§ã¯ãã¹ãŠã®åé¡ãä¿®æ£ããŸããã倿Žã®äž»ãªçµæã¯ãçŸåšããã©ãã¯ããã¯ã¹ã§ã¯ãªããã·ã³ãã«ã§ééçãªã·ã¹ãã ã§äœæ¥ããŠããããããã£ãŒãããã¯ã®äœæãã¯ããã«ç°¡åã«ãªã£ãããšã§ãã
Lingualeo
2020幎4æã®èªå·±é颿éäžãLingualeoã®äœæ¥è² è·ã¯1幎åã®åææã®5åã§ãããããã¯åé¡ãåŒãèµ·ãããŸããã§ããïŒãµãŒãã¹ã®é床ã¯èœã¡ãŸããã§ããããŠãŒã¶ãŒã¯äœãæ°ã¥ããŸããã§ãããã·ã¹ãã ãæŽæ°ããŠããªãã£ããããµãŒãã¹ã¯åã«å€±æããŠããã¯ãã§ãã
ãã®è£œåã¯ããŠãŒã¶ãŒã«ãšã£ãŠé«éã§ããã ãã§ãªããæäœãã¯ããã«ç°¡åã§ããããŒã ãæ°æ©èœãå°å ¥ããŠãã¹ãããã®ãç°¡åã«ãªããŸãããããã¥ã¡ã³ããæŽçããã³ãŒããçŽ40åã®1ã«ãªã£ãããšã§ãæ°ããéçºè ã¯ãµãŒãã¹ã®ä»çµã¿ãç°¡åã«çè§£ã§ããããã«ãªããŸããã
補åãå®ããªã£ãã®ã§ãããå°ãªãèšç®èœåãåããå¿ èŠããããŸãã Lingualeoã®ã¢ã¯ãã£ããŠãŒã¶ãŒãããã®ã³ã¹ãã¯50åä»¥äžæžå°ããŸããããæŽæ°åŸãã¢ã¯ãã£ããŠãŒã¶ãŒã®æ°ã¯ãã§ã«2åã«ãªã£ãŠããŸãã
æåŸã«ã補åã¯ããå®å šã§ãã以åã¯ããã¹ãŠã®ããžãã¹ããžãã¯ãPHPã¬ã€ã€ãŒã«ããå ŽåãããŒã¿ããŒã¹ãžã®ãªã¯ãšã¹ãã¯ããããããŸããŸãªé¢æ°ããéä¿¡ãããŠããŸãããSQLã¯ãšãªã«å¯ŸããŠéãããããŒã¿ããŒã¹ã«ã¯åé¡ããããŸããSQLã€ã³ãžã§ã¯ã·ã§ã³ãå®è¡ããŠãããŒã¿ã®åé€ãªã©ã®å±éºãªã³ãŒãã匷å¶çã«å®è¡ãããããšãã§ããŸãããã¹ãŠã®ããžãã¯ãå éšã«ç§»åãããããå€éšããã®SQLã¯ãšãªã¯1ã€ããããŸãããã
æŽæ°ãããLingualeoã§éçºãã©ã®ããã«æ©èœãããã«ã€ããŠå®æçã«ããã°ãæžãç¶ããããšæããŸããæåã«è©±ã䟡å€ã®ããããšãã³ã¡ã³ãã«æžããŠãã ããïŒç§ãã¡ã®ããŒã ãå€ãã£ãããããŠç®¡çæ§é ãšæè¡ãç§ãã¡ã¯ããªãã®ãã¹ãŠã®è³ªåã«åãã§ãçãããŸãã