XNUMXææ«ããã¯ãããŒã¯ïŒããŠãã³MSTUïŒããã¯ããã©ãã¯ïŒMIPTïŒããã¯ãã¹ãã£ã¢ïŒãã¢ããŒãœãã»ã¢ã¹ã¯ã¯å·ç«å€§åŠïŒããã¯ãããªã¹ïŒãã§ãŒãã«å€§åžãµã³ã¯ãããã«ãã«ã¯å·¥ç§å€§åŠïŒã®åæ¥çãåæ¥èšŒæžãããžã§ã¯ããæè·ããã äœæ¥ã«ã¯ XNUMX ãæã®æéãå²ãåœãŠããã圌ã㯠XNUMX 幎éã®åŠç¿ã§åŸãç¥èãšã¹ãã«ãèªãã®çºæ¡ã«æè³ããŸããã
é²è¡ã«é¢ãããããžã§ã¯ãã¯åèš 13 件ãããããŸããŸãªæ¥çã®ããŸããŸãªåé¡ã解決ããŸããã äŸãã°ïŒ
- æå·åãã¡ã€ã«æå·åæ©èœãåããã¯ã©ãŠã ã¹ãã¬ãŒãžã
- ã€ã³ã¿ã©ã¯ãã£ããªãã㪠(ããŸããŸãªãšã³ãã£ã³ã°ä»ã) ãäœæããããã®ãã©ãããã©ãŒã ã
- ãããã¯ãŒã¯äžã§æ¬ç©ã®ãã§ã¹ããã¬ã€ããããã®ã¹ããŒãããŒãã
- å»çèšäºãã€ã³ããªãžã§ã³ãã«æ€çŽ¢ããããã®ã¢ãŒããã¯ãã£ã
- å°åŠçã«ã¢ã«ãŽãªãºã ã®åºç€ãæããããã®ãœãããŠã§ã¢ã
ããžãã¹ãŠãããããã®ãããžã§ã¯ãã ãã§ãªã:
- TamTamã¡ãã»ã³ãžã£ãŒçšCRMã·ã¹ãã ã
- ãªããã¯ã©ã¹ããã®å°å³äžã§äž»é¡ã®åçãæ€çŽ¢ããããã® Web ãµãŒãã¹ã
- MAPS.ME ã®äœæãžãªã³ãŒãã£ã³ã° ãµãŒãã¹ã
ä»æ¥ã¯åæ¥çã«ããXNUMXã€ã®ãããžã§ã¯ãã«ã€ããŠè©³ãããäŒãããŸãã
å»åŠè«æã®ã€ã³ããªãžã§ã³ããªæ€çŽ¢
ç§åŠåéã«ã¯å€ãã®åéããããããããã®åéã§ç 究ãè¡ãããèšå€§ãªæ°ã®è«æãããŸããŸãªéèªã«æ²èŒãããŠããŸãã ãããã«ã¯ãæ
å ±æè¡ãç©çåŠãæ°åŠãçç©åŠãå»åŠãªã©ãå«ãŸããŸãã
èè
SERP ã«ã¯ããããã¯ãå®çŸ©ãããããã¥ã¡ã³ãã®ã©ã³ã¯ä»ãããããªã¹ããå«ãŸããŠããããããã®ãããã¯ã«é¢é£ããåèªãçšèªã¯ã確ççããã㯠ã¢ããªã³ã°ã䜿çšããŠåŒ·èª¿è¡šç€ºãããŸãã ãŠãŒã¶ãŒã¯åŒ·èª¿è¡šç€ºãããçšèªãã¯ãªãã¯ããŠæ€çŽ¢ã¯ãšãªãçµã蟌ãããšãã§ããŸãã
巚倧㪠PubMed ããŒã¿ããŒã¹ãè¿
éã«æ€çŽ¢ã§ããããã«ããããã«ãèè
ãã¯ãããããã€ã³ãã©ã¹ãã©ã¯ãã£ã«ç°¡åã«çµ±åã§ããç¬èªã®æ€çŽ¢ãšã³ãžã³ãäœæããŸããã
æ€çŽ¢ã¯ XNUMX ã€ã®æ®µéã§å®è¡ãããŸãã
- åè£ææžã¯é玢åŒã䜿çšããŠéžæãããŸãã
- åè£ã¯ãæ€çŽ¢äžã«ææžå ã®ããŸããŸãªãã£ãŒã«ããèæ ®ãã BM25F ã¢ã«ãŽãªãºã ã䜿çšããŠã©ã³ã¯ä»ããããŸãã ãããã£ãŠãã¿ã€ãã«å ã®åèªã¯èŠçŽå ã®åèªãããéã¿ãæã¡ãŸãã
- é »ç¹ãªãªã¯ãšã¹ãã®åŠçãé«éåããããã«ããã£ãã·ã¥ ã·ã¹ãã ã䜿çšãããŸãã
ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£:
åºæ¬çã«ãæ§é åããã¹ã ããŒã¿ã¯ãµãŒãã¹éã§è»¢éãããŸãã é«ã転éé床ãå®çŸããã«ã¯ããã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ã§ã¢ãžã¥ãŒã«ãæ¥ç¶ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãã GRPC ã䜿çšãããŸãã ããŒã¿ã®ã·ãªã¢ã«åããProtobuf ã¡ãã»ãŒãžäº€æ圢åŒã䜿çšããŠäœ¿çšãããŸãã
ã·ã¹ãã ã«ã¯ã©ã®ãããªã³ã³ããŒãã³ããå«ãŸããŠããŸãã:
- Node.js ã§åä¿¡ãããŠãŒã¶ãŒ ãªã¯ãšã¹ããåŠçãããµãŒããŒã
- nginx ãããã· ãµãŒããŒã䜿çšãããªã¯ãšã¹ãã®è² è·åæ£ã
- Flask ãµãŒããŒã¯ REST API ãå®è£ ããNode.js ãã転éããããªã¯ãšã¹ããåä¿¡ããŸãã
- ãã¹ãŠã®çããŒã¿ãšåŠçæžã¿ããŒã¿ãããã³ã¯ãšãªæ å ±ã¯ MongoDB ã«ä¿åãããŸãã
- ããã¥ã¡ã³ãã®ããŒãåã«é¢é£ããçµæã«å¯Ÿãããã¹ãŠã®ãªã¯ãšã¹ã㯠RabbitMQ ã«éãããŸãã
æ€çŽ¢çµæã®äŸ:
次ã«è¡ãäºå®ã¯æ¬¡ã®ãšããã§ãã
- ç¹å®ã®ãããã¯ã«é¢ããã¬ãã¥ãŒãç·šéãããšãã®æšå¥šäºé (ææžå ã®éèŠãªãããã¯ãç¹å®ããææžã®ãµãã»ãããæ€çŽ¢ãã)ã
- PDF ãã¡ã€ã«ãæ€çŽ¢ããŸãã
- ã»ãã³ãã£ã㯠ããã¹ã ã»ã°ã¡ã³ããŒã·ã§ã³ã
- ãããã¯ãšãã¬ã³ããé·æçã«è¿œè·¡ããŸãã
ãããžã§ã¯ãããŒã : ãã§ãŒãã«ã»ãããªã£ãã³ããŠã©ãžã¹ã©ãã»ãããžã³ã¹ããŒãããã·ã ã»ããããããããã·ã ã»ãã£ãŒãªã³
ãããã¯ãã°
çŸåšãããã°ã©ãã³ã°ãšã³ã³ãã¥ãŒã¿ãŒ ãµã€ãšã³ã¹ãæããå Žåãå°åŠç (5 ïœ 7 幎ç) ã®åäŸãã¡ã¯ææãç¿åŸããã®ã«åé¡ãæ±ããŠããŸãã ããã«ãåŠçãèªå®
ã§èª²é¡ãå®äºãããå Žåã¯ãã³ã³ãã¥ãŒã¿ã«è¿œå ã®ãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã æåž«ã¯åé¡ã«å¯Ÿããåæ§ã®è§£æ±ºçãå€æ°ç¢ºèªããå¿
èŠããããé éææ¥ã®å Žåã¯çåŸãã課é¡ãåãåãããã®æ¹æ³è«ãéçºããå¿
èŠããããŸãã
Block Log ãããžã§ã¯ãã®äœæè ã¯ãå°åŠçã®å¹Žéœ¢ã®åäŸãã¡ã«ã¢ã«ãŽãªãºã ã®åºç€ãæãããšããããã°ã©ãã³ã°èšèªã®ã³ãã³ããèŠããããšã«éç¹ã眮ãã¹ãã§ã¯ãªããã¢ã«ãŽãªãºã å³ãæ§ç¯ããããšã«éç¹ã眮ãã¹ãã§ãããšããçµè«ã«éããŸããã ããã«ãããåŠçã¯é¢åãªæ§ææ§é ãå ¥åããã®ã§ã¯ãªããã¢ã«ãŽãªãºã ã®èšèšã«æéãšåŽåãè²»ããããšãã§ããŸãã
ãã©ãããã©ãŒã
- ãããŒãã£ãŒããäœæããã³ç·šéããŸãã
- äœæãããããŒãã£ãŒããå®è¡ãããã®äœæ¥çµæ (åºåããŒã¿) ã確èªããŸãã
- äœæãããããžã§ã¯ããä¿åããŠããŒãããŸãã
- ã©ã¹ã¿ãŒ ã€ã¡ãŒãžãæç»ããŸã (åäŸãäœæããã¢ã«ãŽãªãºã ã«åºã¥ããŠã€ã¡ãŒãžãçæããŸã)ã
- äœæãããã¢ã«ãŽãªãºã ã®è€éãã«é¢ããæ å ±ãåãåããŸã (ã¢ã«ãŽãªãºã ã§å®è¡ãããæäœã®æ°ã«åºã¥ããŠ)ã
æåž«ãšçåŸã®åœ¹å²åæ ãæåŸ ãããã ãã¹ãŠã®ãŠãŒã¶ãŒãåŠçã¹ããŒã¿ã¹ãååŸã§ããŸããæåž«ã¹ããŒã¿ã¹ãååŸããã«ã¯ãã·ã¹ãã 管çè ã«é£çµ¡ããå¿ èŠããããŸãã æåž«ã¯åé¡ã®èª¬æãæ¡ââ件ãå ¥åã§ããã ãã§ãªããçåŸãåé¡ã®è§£æ±ºçãã·ã¹ãã ã«æåºãããšèªåçã«éå§ãããèªåãã¹ããäœæããããšãã§ããŸãã
ãã©ãŠã¶ãããã¯ãã°ãšãã£ã¿:
åé¡ã解決ããåŸãåŠçã¯è§£æ±ºçãããŠã³ããŒãããŠçµæã確èªã§ããŸãã
ãã®ãã©ãããã©ãŒã ã¯ãVue.js ã®ããã³ããšã³ã ã¢ããªã±ãŒã·ã§ã³ãš Ruby on Rails ã®ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã§æ§æãããŸãã ããŒã¿ããŒã¹ãšããŠPostgreSQLã䜿çšããŠããŸãã ãããã€ãç°¡çŽ åããããã«ããã¹ãŠã®ã·ã¹ãã ã³ã³ããŒãã³ã㯠Docker ã³ã³ããã«ããã±ãŒãžåãããDocker Compose ã䜿çšããŠçµã¿ç«ãŠãããŸãã Block Log ã®ãã¹ã¯ããã ããŒãžã§ã³ã¯ãElectron ãã¬ãŒã ã¯ãŒã¯ã«åºã¥ããŠããŸãã JavaScript ã³ãŒãã®æ§ç¯ã«ã¯ Webpack ã䜿çšãããŸããã
ãããžã§ã¯ãããŒã : Alexander BarulevãMaxim KolotovkinãKirill Kucherovã
TamTamã¡ãã»ã³ãžã£ãŒçšCRMã·ã¹ãã
CRM ã¯ãäŒæ¥ãš TamTam ãŠãŒã¶ãŒã®éã®äŸ¿å©ãªå¯Ÿè©±ã®ããã®ããŒã«ã§ãã 以äžã®æ©èœãå®è£
ãããŸããã
- ããã°ã©ãã³ã°ã®ã¹ãã«ããªããŠãããããäœæã§ããããã ã³ã³ã¹ãã©ã¯ã¿ãŒã æ°åã§ããŠãŒã¶ãŒã«æ å ±ã衚瀺ããã ãã§ãªããããŒã¿ãå«ãããŒã¿ãåéã§ãããå®å šã«æ©èœããããããååŸã§ããŸãã 管çè ãåŸã§è¡šç€ºã§ãããã¡ã€ã«ã
- RSSã RSS ãä»»æã®ãã£ã³ãã«ã«ç°¡åã«æ¥ç¶ã§ããŸãã
- æçš¿ãé ããŸããã ãããããèšå®ããæéã«ã¡ãã»ãŒãžãéä¿¡ããã³åé€ã§ããŸãã
ããŒã ã¯ããã API ã®ãã¹ãã«ãåå ãã2019 幎ããã±ãŒã¯ãŒã«ãã«ããçšã®ãããããµãŒãã¹ã®ç»é²/èªå¯çšã®ããããCI/CD çšã®ããããªã©ãããã€ãã®èªäœããããäœæããŸããã
ãœãªã¥ãŒã·ã§ã³ã€ã³ãã©ã¹ãã©ã¯ãã£:
- 管çãµãŒããŒã«ã¯ãåé¡ãè¿ éãã€äŸ¿å©ã«æ€åºããŠè§£æ±ºããããŸããŸãªã¡ããªã¯ã¹ãšäœ¿çšç¶æ³çµ±èšã衚瀺ããããã«ãåãµãŒããŒãšãã®äžã®å Docker ã³ã³ãããŒã®ç£èŠã·ã¹ãã ãå«ãŸããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ã®ãªã¢ãŒãæ§æ管çã®ããã®ã·ã¹ãã ããããŸãã
- ã¹ããŒãžã³ã° ãµãŒããŒã«ã¯ã¢ããªã±ãŒã·ã§ã³ã®çŸåšã®ããŒãžã§ã³ãå«ãŸããŠãããéçºããŒã ã«ããäžè¬çãªãã¹ãã«äœ¿çšã§ããŸãã
- éçºè ã¯ç®¡çãµãŒããŒãšã¹ããŒãžã³ã° ãµãŒããŒã VPN çµç±ã§ã®ã¿å©çšã§ããéçšãµãŒããŒã«ã¯ã¢ããªã±ãŒã·ã§ã³ã®ãªãªãŒã¹ ããŒãžã§ã³ãå«ãŸããŸãã ããã¯éçºè ã®æããéé¢ãããŠããããšã³ããŠãŒã¶ãŒã®ã¿ãå©çšã§ããŸãã
- CI/CD ã·ã¹ãã 㯠Github ãš Travis ã䜿çšããŠå®è£ ãããéç¥ã¯ TamTam ã®ã«ã¹ã¿ã ãããã䜿çšããŸããã
ã¢ããªã±ãŒã·ã§ã³ ã¢ãŒããã¯ãã£ã¯ã¢ãžã¥ãŒã«åãœãªã¥ãŒã·ã§ã³ã§ãã ã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ãæ§æãããŒãžã£ãŒãããã³ç£èŠã¯å¥åã® Docker ã³ã³ãããŒã§èµ·åããããããèµ·åç°å¢ããæœè±¡åããå¥åã®ã³ã³ãããŒãå€æŽãŸãã¯åèµ·åã§ããŸãã ãããã¯ãŒã¯ ããããžã®äœæãšã³ã³ãããŒã®ç®¡çã¯ãDocker Compose ã䜿çšããŠè¡ãããŸãã
ãããžã§ã¯ãããŒã : ã¢ã¬ã¯ã»ã€ã»ã¢ã³ãã¥ãã£ãšãããšãŽãŒã«ã»ãŽã«ããããã¢ã¬ã¯ã»ã€ã»ã³ãã¬ãã¹ããŒã
ãã©ãŒã¯ããŒ
ForkMe ãããžã§ã¯ãã¯ãã€ã³ã¿ã©ã¯ãã£ããªãããªãèŠèŽããããã®ãã©ãããã©ãŒã ã§ãç¬èªã®ãããªãäœæããŠåéã«èŠããããšãã§ããŸãã éåžžã®ãããªãããã®ã«ããªãã€ã³ã¿ã©ã¯ãã£ããªãããªãå¿
èŠãªã®ã§ãããã?
ãããªã®éçŽç·çãªãããããšç¶ããèªåã§éžæã§ããæ©èœã«ãããèŠèŽè ãåå ã§ããããã«ãªããã³ã³ãã³ãäœæè ã¯ãããããããŠãŒã¶ãŒã®åœ±é¿ãåãããŠããŒã¯ãªã¹ããŒãªãŒã衚瀺ã§ããããã«ãªããŸãã ãŸããã³ã³ãã³ãäœæè ã¯ãããªå€æçµ±èšãç 究ããããšã§ãèŠèŽè ãæãèå³ãæã£ãŠããããšãç解ããçŽ æãããé åçã«ããããšãã§ããŸãã
ãã®ãããžã§ã¯ããéçºããéã圌ã㯠Netflix ã®ã€ã³ã¿ã©ã¯ãã£ãæ ç»ããã³ããŒã¹ããããã«ã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŸããããã®æ ç»ã¯å€ãã®èŠèŽæ°ãšé«ãè©äŸ¡ãåŸãŸããã MVP ããã§ã«äœæãããŠãããšããYoutube ãã€ã³ã¿ã©ã¯ãã£ã ã·ãªãŒãºã®ãã©ãããã©ãŒã ã®ç«ã¡äžããèšç»ããŠãããšãããã¥ãŒã¹ãæµãããã®æ¹åæ§ã®äººæ°ãæ¹ããŠç¢ºèªãããŸããã
MVP ã«ã¯ãã€ã³ã¿ã©ã¯ãã£ã ãã¬ãŒã€ãŒããã㪠ã³ã³ã¹ãã©ã¯ã¿ãŒãã³ã³ãã³ããšã¿ã°ã«ããæ€çŽ¢ããã㪠ã³ã¬ã¯ã·ã§ã³ãã³ã¡ã³ãããã¥ãŒãè©äŸ¡ããã£ã³ãã«ãšãŠãŒã¶ãŒ ãããã£ãŒã«ãå«ãŸããŸãã
ãããžã§ã¯ãã§äœ¿çšããããã¯ãããžãŒã¹ã¿ãã¯:
ãããžã§ã¯ãã¯ã©ã®ããã«éçºãããäºå®ã§ãã:
- ãããªãžã®ç§»è¡ã«é¢ããçµ±èšãšã€ã³ãã©ã°ã©ãã£ãã¯ã®ã³ã¬ã¯ã·ã§ã³ã
- ãµã€ããŠãŒã¶ãŒãžã®éç¥ãšå人ã¡ãã»ãŒãžã
- Android ãš iOS ã®ããŒãžã§ã³ã
ãã®åŸã以äžãè¿œå ããäºå®ã§ãã
- æºåž¯é»è©±ãããããªã¹ããŒãªãŒãäœæãã;
- ããŠã³ããŒããããããªãã©ã°ã¡ã³ãã®ç·šéïŒããªãã³ã°ãªã©ïŒã
- ãã¬ãŒã€ãŒã§ã®ã€ã³ã¿ã©ã¯ãã£ãåºåã®äœæãšéå§ã
ãããžã§ã¯ã ããŒã : Maxim Morev (ãã«ã¹ã¿ãã¯éçºè ããããžã§ã¯ã ã¢ãŒããã¯ãã£ã«åãçµãã ) ãš Roman Maslov (ãã«ã¹ã¿ãã¯éçºè ããããžã§ã¯ãèšèšã«åãçµãã )ã
ãªã³ã©ã€ã³ãªã³ããŒã
ä»æ¥ã芪ã¯åäŸã®ç²Ÿç¥ççºéã«å€§ããªæ³šæãæããåäŸãã¡ã¯ç¥çãªã²ãŒã ã«èå³ãæã£ãŠããŸãã ãã®ããããã§ã¹ã®äººæ°ãåã³é«ãŸã£ãŠããŸãã ãã§ã¹ã¯äžè¬ã«éåžžã«äººæ°ããããŸãããã²ãŒã ã®å®æçãªå¯ŸæŠçžæãèŠã€ããã®ã¯å°é£ã§ãã ãããã£ãŠãå€ãã®ãã¬ã€ã€ãŒãå®éã®é§ã§ãã©ã€ããã§ãã¬ã€ããããšã奜ããšããäºå®ã«ãããããããå€ãã®äººããªã³ã©ã€ã³ ãã§ã¹ ãµãŒãã¹ãå©çšããŠããŸãã ãããããã§ã¹ããã¬ã€ãããšãã人ã¯å€å€§ãªç²Ÿç¥çåªåãæã£ãŠç²ããŸãããã®ç²åŽã¯ãã³ã³ãã¥ãŒã¿ãŒãã¹ããŒããã©ã³ã®åã«åº§ã£ãŠããããšã«ããæªåœ±é¿ã«ãã£ãŠããã«è£ãããŸãã ãã®çµæããã£ãXNUMXè©Šåã§è³ã«éè² è·ãããã£ãŠããŸããŸãã
ããããã¹ãŠã®èŠå ã«ãããèè ãã¯ãç©ççãªãã§ã¹ç€ããã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ãããã³ Web ãµãŒãã¹ã® XNUMX ã€ã®éšåã§æ§æããã On-Line-On-Board ãããžã§ã¯ãã®ã¢ã€ãã¢ã«ãã©ãçããŸããã ããŒãã¯éåžžã®ãã§ã¹ã®ãã£ãŒã«ãã§ãããé§ã®äœçœ®ãèªèããå ã®è¡šç€ºã®å©ããåããŠçžæã®æã瀺ããŸãã ããŒã㯠USB çµç±ã§ PC ã«æ¥ç¶ããããã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ãšéä¿¡ããŸãã ãã¬ãŒãã³ã° ã¢ãŒã (åäŸåã) ã§ã¯ãå¯èœãªåãã匷調衚瀺ãããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¯ããŒã管çã®åºæ¬æ©èœãåŒãç¶ããããã³ã¹ããå€§å¹ ã«åæžããã»ãšãã©ã®æ©èœããœãããŠã§ã¢ ã¬ãã«ã§å®è£ ã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ãäž»ãªäŸ¡å€ãåçæŽæ°ã§ãã Web ãµãŒãã¹ãšéä¿¡ããŸãã
補åã䜿çšããããã®äž»ãªã·ããªãª: XNUMX 人ã¯ãµãŒãã¹ã§ãã¬ã€ããXNUMX 人ç®ã¯ãµãŒãã¹ã«æ¥ç¶ãããç©çããŒãã§ãã¬ã€ããŸãã ã€ãŸãããµãŒãã¹ã¯ã³ãã¥ãã±ãŒã·ã§ã³æ©èœãæ ã£ãŠããŸãã
ãããžã§ã¯ãããŒã : ãããŒã«ã»ãã¥ãã³ãã¢ã³ãã³ã»ããããªãšãããµãŒã·ã£ã»ã¯ãºããã©ãã
ç§ãã¡ã®æè²ãããžã§ã¯ãã«ã€ããŠè©³ããã¯ããã¡ããã芧ãã ããã
åºæïŒ habr.com