å®éã«ã¯ãæ°·å±±ã¯ã»ãšãã©ã®ã¹ããã¯ç»åã®ããã«åçŽã§ã¯ãªããæ°Žå¹³ã«æ°Žäžã«é 眮ãããŠããããšããåç¥ã§ããïŒ
ãã ããåæãäžäœäºææ§ã®ãµããŒããA / Bãã¹ããªã©ã®åŸæ¥ã®ãšã³ã¿ãŒãã©ã€ãºã¬ãžã§ããã®æãå¿ããŠãå®è£ ãããæ©èœã«çŽæ¥é¢é£ããã³ãŒãã ãã«çŠç¹ãåœãŠããšããŠãããã®è€éããå¶åŸ¡äžèœã«ãªãããšããããããŸãã
ãã®èšäºã§ã¯ãåé¡ã®èª¬æããå®è£ ã®è©³çްãŸã§ãååãšç§ãJoomã§ããŸããŸãªææã«å®è£ ããããã€ãã®æ©èœã«ã€ããŠèª¬æããäžèŠåçŽã«èŠãããã®ããå€ãã®éçºãå¿ èŠãšããè€éãªããžãã¯ã®ãã€ãã«ç°¡åã«å€ããããšã瀺ããŸããå埩ã
ãŠãŒã¶ãŒã«ããæ€çŽ¢
Joomã¢ããªã®å€§ããªã»ã¯ã·ã§ã³ã®1ã€ã¯ãå éšã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã§ããããã§ã¯ãè²·ãç©å®¢ãååã®ã¬ãã¥ãŒãæžããããè©äŸ¡ãããã話ãåã£ããããäºãã«ç»é²ãããã§ããŸãããããŠããŠãŒã¶ãŒæ€çŽ¢ã®ãªããªããšãœãŒã·ã£ã«ãããã¯ãŒã¯ïŒ
ãã¡ãããæ€çŽ¢ã¯ããã»ã©ç°¡åãªäœæ¥ã§ã¯ãããŸããïŒå°ãªããšãç§ã®åã®èšäºã®åŸ ïŒãããããç§ã¯ãã§ã«å¿ èŠãªç¥èããã¹ãŠæã£ãŠããŸããã
joom-mongo-connector
ãŸããå¿ èŠã«å¿ããŠè¿œå ããŒã¿ã調æŽãããããã®ä»ã®åŸåŠçãè¡ã£ããããããã«ãã³ã¬ã¯ã·ã§ã³ããMongoDBã«ããŒã¿ãElasticsearchã€ã³ããã¯ã¹ã«è»¢éã§ããæ¢è£œã®ã³ã³ããŒãã³ãããããŸãã ãã¿ã¹ã¯ã¯éåžžã«åçŽã«èãããŸããã
ä»äº..ããœãŒã·ã£ã«ãããã¯ãŒã¯ãŠãŒã¶ãŒã«ããæ€çŽ¢çšã®ããã¯ãšã³ããäœæããŸãããã£ã«ã¿ã¯å¿ èŠãããŸããããµãã¹ã¯ã©ã€ããŒã®æ°ã§äžŠã¹æ¿ãããšãæåã«å®è¡ã§ããŸãã
ããŠãããã¯æ¬åœã«ç°¡åã«èãããŸãã
socialUsers
YAMLã§æ§æãäœæããããšã«ãããã³ã¬ã¯ã·ã§ã³ ããElasticsearchãžã®ãªãŒããŒãããŒãæ§æããŸããããã¯ãšã³ãã§ã¯ãååæ€çŽ¢APIãšåæ§ã®APIã䜿çšããŠæ°ãããšã³ããã€ã³ãã远å ããŸããããããŸã§ã®ãšããããã£ã«ã¿ãŒãšäžŠã¹æ¿ãã¯ãµããŒããããŠããŸããïŒãªã¯ãšã¹ãããã¹ããšããŒãžä»ãã®ã¿ãæ®ããŸãïŒããã³ãã©ãŒã§ãElasticsearchã¯ã©ã¹ã¿ãŒã«ç°¡åãªãªã¯ãšã¹ããè¡ããŸãïŒäž»ãªããšã¯ã¯ã©ã¹ã¿ãŒãééããªãããšã§ãïŒïŒããã®çµæããããŠãŒã¶ãŒã«å¿ããŠãèŠã€ãã£ãããã¥ã¡ã³ãã®IDïŒãŠãŒã¶ãŒIDïŒãååŸããŸããæ¬¡ã«ãã¯ã©ã€ã¢ã³ãJSONã«å€æããå人æ å ±ã詮玢奜ããªç®ããé ããŠæºåãæŽããŸãããåŠãïŒ
ç§ãã¡ãæåã«ééããåé¡ã¯é³èš³ã§ããããŠãŒã¶ãŒåã¯ãœãŒã·ã£ã«ãããã¯ãŒã¯ããååŸããããã·ã¢ã®ãŠãŒã¶ãŒïŒåœæã¯å€§å€æ°ã§ããïŒãã©ãã³èªã§æžãããšããããããŸãããããªãã¯ããããèŠã€ããããšããŸãããããŠåœŒã¯ãããã®ãã§ã€ã¹ããã¯ã«ããŸãããããŠããã¯ããã§ã-圌ã¯çµæã«ãããŸãããåæ§ã«ãIvanã¯IvanãèŠã€ããããšãã§ããŸããããç§ã¯éåžžã«èŠã€ããããšæããŸãã
ãããæåã®åé¡ã§ããã€ã³ããã¯ã¹ãäœæãããšãã«ãé³èš³ã®ããã«Microsoft Translator APIã«ã¢ã¯ã»ã¹ããå§åã®2ã€ã®ããŒãžã§ã³ãä¿åãå§ããŸãããäžè¬çãªã€ã³ããã¯ã¹äœæã³ã³ããŒãã³ãã¯ãé³èš³ã¯ã©ã€ã¢ã³ãã«äŸåãå§ããŸããïŒçŸåšãäŸåããŠããŸãïŒã
ããŠãããªãã®æ¯åœèªããã·ã¢èªã§ãããã©ãããäºæž¬ããã®ã¯ç°¡åã§ãããä»ã®ãšãŒãããã®èšèªã«ãååšãã2çªç®ã®åé¡-å°ããªåœ¢ãšååã®ç¥èªã IvanãFacebookã§èªåèªèº«ãVanyaãšåä»ããããšã«ããå ŽåãIvanã®èŠæ±ã¯ãããªããã©ãã ãé³èš³ããŠãã圌ãèŠã€ããããšãã§ããªããªããŸãã
ãããã£ãŠã次ã®åä»ãªåé¡ã¯ãGramota.ruïŒNikandr Aleksandrovich Petrovskyã®ãã·ã¢åã®äžæã®èŸæžããïŒã§å°ããªååã®ã€ã³ããã¯ã¹ãèŠã€ãããããããŒãã³ãŒãããããã¬ãŒãïŒçŽ2000è¡ïŒãšããŠã³ãŒãããŒã¹ã«è¿œå ããã€ã³ããã¯ã¹ã«ãªã£ãã ãã§ã¯ãªãããšã§ããååãšãã®é³èš³ã ãã§ãªãããã¹ãŠã®å°ããªåœ¢ãèŠã€ãããŸããïŒé¢çœãäºå®ïŒè±èªã§ã¯ãããã«äººåã®ç瞮圢ãšããçšèªããããŸãïŒããŠãŒã¶ãŒåã®ãã¹ãŠã®åèªãååŸããæ§ãããªã¹ãã¬ããã·ãŒãã§æ€çŽ¢ããŸããã
Joomã³ãŒãããŒã¹ã®å ¬èšŒãããã¹ã¯ãªãŒã³ã·ã§ããã 2018幎é ã
ãããããã®åŸããã·ã¢èªã話ããªãäžçå šäœã«äžåäžãªå±€ã§åæ£ããŠãããŠãŒã¶ãŒã®æ®ãã®ååãæãããªãããã«ãç§ãã¡ã¯Joomã®åœã®ãããŒãžã£ãŒã«å«ã³å£°ãäžããåœã®ç¥èªã®åèæžãèŠã€ããããã«äŸé ŒããŸãã圌ãã®åœã®ååãåŠè¡çã§ãªãå Žåã¯ãå°ãªããšãããã€ãããŸããäžéšã®èšèªã§ã¯ãè€ååãæã€äŒçµ±ïŒJuan CarlosãMaria AuroraïŒã«å ããŠã2ã3ããŸãã¯4ã€ã®åèªã1ã€ã«ççž®ãããŠããããšã倿ããŸããïŒMarÃadelasNievesâMarinievesïŒã
ãã®æ°ããç¶æ³ã«ãããäžåºŠã«1åèªãã€æ€çŽ¢ããæ©äŒã倱ãããŸãããæ¬¡ã«ãåèªã®ã·ãŒã±ã³ã¹ãä»»æã®é·ãã®ãã©ã°ã¡ã³ãã«åå²ããå¿ èŠããããŸããããã«ãããŒãã£ã·ã§ã³ãç°ãªãã°ãç¥èªãç°ãªãå¯èœæ§ããããŸããç§ãã¡ã¯èšèªåŠã®å¥¥æ·±ãã«é£ã³èŸŒã¿ãçããŠããã¹ãã€ã³äººããããçç¥ããããã«ã¹ãã€ã³èªã®ååãçç¥ãã人工ç¥èœãæžããããªãã£ãã®ã§ãç§ãã¡ã¯ã¹ã±ããããã¯ããŒããèš±ããçµã¿åããã®ããéããèš±ããŸããã
ãŸããçµã¿åããæ€çŽ¢ã§ã¯åžžã«ããã§ããããã«ããŠãŒã¶ãŒã®1人ã«ããŒã¹ããçºçããçæãããã¹ãã«ã®æå€§æ°ã®å¶éãæ©æ¥ã«åæžããå¿ èŠããããŸãããããã«ããã³ãŒããããã«è€éã«ãªãããã®ã¿ã¹ã¯ã§ã¯äºæ³å€ã«å°é£ã«ãªããŸããã
ååã®æ©æ¢°ç¿»èš³
ã¿ã¹ã¯ã販売è ããæäŸãããååã®ååãšèª¬æãè±èªã§ãŠãŒã¶ãŒã®èšèªã«ç¿»èš³ããå¿ èŠããããŸãã
ãããã誰ããäžåœã®ååã®ååã®æ²ãã£ã翻蚳ã«ã€ããŠã®ããŒã ãèŠãããšãããã§ããããç§ãã¡ã¯ããããèŠãŸããããåžå Žæå ¥ãŸã§ã®åžæã®æéã§ã¯ãç¿»èš³ã«æ¢åã®APIã䜿çšãããããåªãããã®ãæãã€ãããšãã§ããŸããã§ããã
HTTPã¯ã©ã€ã¢ã³ãã®äœæãã¢ã«ãŠã³ãã®äœæã¯ç°¡åã§ãååããŠãŒã¶ãŒã«çºè¡ããããšãã«ãããã€ã¹ã®èšèªã«ç°¡åã«ç¿»èš³ã§ããŸãããããã翻蚳ã¯å®ãã¯ãªããåã人æ°ã®ãã補åãæ°äžåã®èŠèŽããšã«ãã·ã¢èªã«ç¿»èš³ããã®ã¯ç¡é§ã§ãããã®ããããã£ãã·ã¥ããªã³ã«ããŸããã補åããšã«ã翻蚳ãããŒã¿ããŒã¹ã«ä¿åããããã«ç¿»èš³ãããå Žåã¯ã翻蚳è ã«ç§»åããªããªããŸããã
ããããç¯çŽã®å¯èœæ§ã¯ãŸã ãããŸããã翻蚳ã®å質ãšäŸ¡æ Œã®éã®åççãªåŠ¥åç¹ã¯ãæç« ã®èª¬æãæã¡è² ãããŠãã£ãã·ã¥ããããšã§ãããšå€æããŸãããçµå±ã®ãšãããåããã³ãã¬ãŒããã¬ãŒãºã補åã«ããèŠãããæ¯å翻蚳ããã®ã¯ç¡é§ã§ãããããããã©ã³ã¹ã¬ãŒã¿ã«å¥ã®æœè±¡åã¬ã€ã€ãŒã衚瀺ãããæ¹æ³ã§ããHTTPã¯ã©ã€ã¢ã³ããšãååå šäœãããŸããŸãªèšèªã§ä¿åãããã£ãã·ã¥ã®éã®ã¬ã€ã€ãŒã§ãããããã¹ãããã©ã°ã¡ã³ãã«åå²ããŸãã
ãã¡ããããªãªãŒã¹åŸã翻蚳ã®åè³ªã«æ©ãŸãããããé«äŸ¡ãªç¿»èš³è ã䜿çšãããšã©ããªãã§ãããããããããããã¯ç§ãã¡ã®ç¹å®ã®æè©ã«è¯ãã§ããããïŒç®ã§æ¯èŒããããšã¯ã§ããŸãããA/ Bãã¹ããè¡ãå¿ èŠããããŸãããã®ããã翻蚳ãã£ãã·ã¥ã«ã¯ã補åIDã«å ããŠã翻蚳è IDã衚瀺ããããŠãŒã¶ãŒãæå±ããA / Bãã¹ãã°ã«ãŒãã«å¿ããŠã翻蚳è IDããã®ç¿»èš³ããªã¯ãšã¹ããå§ããŸããã
芪æãªã翻蚳è ã¯ããŸãæ©èœããŸããããããã§ããã¹ãŠã®è£œåã§å®è¡ããã«ã¯ç¡é§ãå€ãããŸãããããããç§ãã¡ã¯ãäž»èŠãªç¿»èš³è ã®å¯Ÿå¿ãéåžžã«æªãã£ããããç«ã¡äžããæåãããããã«åå²ããæºåãã§ããŠããåœã«è¡ããŸããããã®ããã翻蚳è ãéžæããããžãã¯ã¯ããè€éã«ãªããŸããã
次ã«ããã©ãããã©ãŒã äžã®äžéšã®åºèãéåžžã«åªããŠããããã©ãããã©ãŒã ãæåãå¿æŽããŠãããããããé«äŸ¡ãªç¿»èš³è ã§ååã翻蚳ããæºåãã§ããŠãããšå€æããŸããããã®ããã翻蚳è ãéžæããããžãã¯ã¯ããŠãŒã¶ãŒãåœãããã³ã¹ãã¢IDã«äŸåãå§ããŸããã
ãããŠæåŸã«ãJoomãååšããŠããæ°å¹Žã®éã«ãã¡ã€ã³ã®ç¿»èš³è ãæ¹åã§ãããšå€æããŸãããããããã翻蚳ãã£ãã·ã¥ãäžå®ã®ééã§æŽæ°ããããšã¯çã«ããªã£ãŠããŸããããããA / Bãã¹ããªãã§ã¯ã©ãã§ããããïŒãã®ããã鮮床ãã£ãŒã«ãããã£ãã·ã¥ã«è¡šç€ºãããäºæ ã¯åã³è€éã«ãªããŸããããã®çµæãç§ãã¡ã®ç¿»èš³ã³ã³ããŒãã³ãã¯éåžžã«è€éã§ãããããã¯ãèªå®¶è£œã®èšç®èšèªåŠããŸã ãã蟌ãã§ããªãã«ããããããã§ããä»ã®ãšããã
æã®ãµã€ãºã®å€æ
ããããããªã³ã©ã€ã³ã§æŽæãéŽãè³Œå ¥ããéã®æãèŠçãªåé¡ã®1ã€ã¯ãé©åãªãµã€ãºãéžæããããšã§ãããããŠãå°å ã®å庫ããé éããããšãã«ãã©ã¢ãã®ãããªãã¬ãŒã€ãŒãäžåºŠã«è€æ°ã®ãµã€ãºãæã¡èŸŒã¿ãåãããã«ç°¡åã«äžé©åãªãã®ãåãæ»ãããšãã§ããå Žåãããã¯åœå¢ãè¶ããŠæ©èœããŸãããå°å ã¯æéããããã1ããã°ã©ã äœåã«ãããã³ã¹ããé«ããéä¿¡è ã¯å€§éã®åä¿¡ã¡ãŒã«ãæåŸ ããŠããŸããã
ããã«ãåé¡ã¯ãç°ãªãåœã®å£²ãæããµã€ãºã«ã€ããŠå®å šã«ç°ãªãèããæã£ãŠãããããããªããšããäºå®ã«ãã£ãŠæªåããŸããäžåœã®Mã¯ç°¡åã«ãã·ã¢ã®XSã§ããããšãããããæããã9XLã¯XXLãšããã»ã©å€ãããªããããããŸãããã¹ãããããããŠãŒã¶ãŒã¯æž¬å®å€ã«äŸåããå¿ èŠããããŸãããããã§ãåžžã«æ£ãããšã¯éããŸãããããšãã°ããŠãŒã¶ãŒã¯äººã®èžã®åšå²ã瀺ãããããšãæåŸ ãã売ãæã¯æèªäœã®æž¬å®å€ã瀺ããŸã-ãããã¯5ã10ããŒã»ã³ãç°ãªããŸãããŠãŒã¶ãŒãJoomã§è²·ãç©ãããã®ã«ããã»ã©ç ©ããããããšãæãŸãªãã®ã§ãïŒ
ã¿ã¹ã¯ã売ãæããæäŸããããµã€ãºã®ä»£ããã«ãèŽåãã«åºã¥ããŠããã€ãã®åäžã®ããŒãã«ããèšç®ãããµã€ãºããŠãŒã¶ãŒã«è¡šç€ºããŸãã
ã¯ãã補åã®èª¬æããè§£æãããµã€ãºã®ããŒãã«ãååŸãïŒããã¯5kã©ã€ã³ã®å¥ã®å®å®è¹ã«ãã£ãŠè¡ãããŸãïŒãå¥ã®ãã£ãŒã«ãã«æ ŒçŽããããã®äžã®ãµã€ãºãèšç®ããããã®ã«çœ®ãæããŸããã€ã³ã¿ãŒãããã§èŠã€ãããèŽåãããµã€ãºã«å€æããããã®ããŒãã«ãããŒãã³ãŒãã£ã³ã°ããŠã人çãæ¥œããã§ãã ããã
ãã ããããŒãã«ããªãããããŒãã«ã«ååãªè¡ããªãå Žåãããã¯æ©èœããŸããããã®æ©èœã¯ã補åã§æé»çã«ç¡å¹ã«ãªã£ãŠããåæ°ã§ãã
ããŒãã衚ã§ã¯äººäœã®èŽåãããããŠã»ãšãã©ã®å£²ãæã¯ç©èªäœã枬å®ããããšã«ãã£ãŠãããã瀺ããŠããŸããå·®åä¿æ°ã®çž«è£œãå®ç§ãªM-kiã®å¹žããªææè ã§ãããããã¯ããããŒãžã£ãŒã®ããã£ãªã³ã¯ãã¢ãŒã«ã«è¡ããèªåã§ããŸããŸãªãã®ã枬å®ããä¿æ°ãä»ããŸã-ãããã¯äŒŒãŠããŸãããååã®ã«ããŽãªããšã«å€§ããç°ãªããŸããã©ããã¢ã©ãŠã³ãã¿ãŒãã«ããã¯ã®å Žåãå·®ã¯ã»ãŒ0ïŒ ã§ãã»ãŒã¿ãŒã®å Žåã¯ãã¹ãŠ10ïŒ ã§ãããŸããã¢ãŠã¿ãŒãŠã§ã¢ã®ãã£ããæã¯ããŸããŸã§ããã¹ãªã ãã£ãããããŒãã«ãã£ãããã«ãŒãºãã£ããã§ã±5ïŒ ã®ã¹ã€ã³ã°ãåŸãããŸããçŸåšãç§ãã¡ã®ä¿æ°ïŒRodionã®ä¿æ°ãšããŠã³ãŒãã§äžæ» åãããŠããŸã ïŒã¯2ã€ã®èŠçŽ ã§æ§æãããŠããŸãã
çéžã決å®ããããã«ã補åã®ååãŸãã¯èª¬æããçéžãæœåºããããšããå¥ã®ããŒãµãŒãäœæããŸãã補åãRodionã«ãã£ãŠãã§ãã¯ãããã«ããŽãªã®ãããã«ã該åœããªãå Žåãæ©èœã¯æé»çã«ç¡å¹ã«ãªããŸãã
æåŸã®ä»äžãïŒå€ãã®è£œåãèã®äžããèã®äžãŸã§ãã¹ãããªã¹ãããŠããŸããã€ãŸããèŽåãã®ååãããªããéæ¹ããªãå°ãããµã€ãºã«ãªããŸããèŽåããXæªæºã®å Žåãããã¯äžå¯èœã§ãããããã¯æããã«èŽåãã®ååã§ãããšããããžãã¯ã远å ãã2ãæããŸãã倧人ã¯éåžžãèžå²ã®2åã®å·®ããªãã®ãè¯ãã§ãããã
çŸåšããã¹ãŠãéåžžã«è€éã§ããããã管çããã«ã§è£œåã®çš®é¡ããšã«æ©èœããã¹ããããšãã«ãæ©èœããªã³ã«ãªããªãããŸãã¯äœããã®æ¹æ³ã§æ©èœããªãçç±ãçè§£ããããšã¯äžå¯èœã§ããã³ãŒãã«ããžãã¯ã®å€§ããªã¬ã€ã€ãŒã远å ãã倿ããªãã«ããçç±ã詳现ã«èšé²ããŸããç¹å®ã®è£œåã®ã·ã£ããããŠã³ã®åå ãå®å šã«è¿œè·¡ã§ããããã«ããã«ã¯ããšã©ãŒã¡ãã»ãŒãžãäžåãã«è»¢éããè©³çŽ°ãæ°åå¢ããå¿ èŠããããŸããã³ãŒãã¯æããããã®ã«ãªããŸãã
ãã¡ãããA / Bãã¹ãã®ã°ã«ãŒãã«ãã£ãŠåäœãç°ãªããŸãã
çµè«
ç· ãåãã«ã€ããŠæ¥œèгçãª