Teknikal na isyu ng Mail.ru Group 2019

Teknikal na isyu ng Mail.ru Group 2019

Sa pagtatapos ng Mayo, ipinagtanggol ng aming mga nagtapos mula sa Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moscow State University) at Technopolis (Peter the Great St. Petersburg Polytechnic University) ang kanilang mga proyektong diploma. Tatlong buwan ang inilaan para sa trabaho, at ang mga lalaki ay namuhunan sa kanilang utak ng kaalaman at kasanayan na nakuha sa loob ng dalawang taon ng pag-aaral.

Sa kabuuan, mayroong 13 mga proyekto sa pagtatanggol, paglutas ng iba't ibang mga problema sa iba't ibang mga industriya. Halimbawa:

  • cloud storage na may cryptographic file encryption;
  • platform para sa paglikha ng mga interactive na video (na may iba't ibang mga pagtatapos);
  • smart board para sa paglalaro ng totoong chess sa network;
  • arkitektura para sa matalinong pagkuha ng mga medikal na artikulo;
  • Software para sa pagtuturo sa mga bata sa elementarya ng mga pangunahing kaalaman sa algorithmization.

Pati na rin ang mga proyekto mula sa mga yunit ng negosyo:

  • CRM system para sa TamTam messenger;
  • serbisyo sa web para sa paghahanap ng mga pampakay na larawan sa mapa para sa Odnoklassniki;
  • address geocoding service para sa MAPS.ME.

Ngayon ay sasabihin namin sa iyo nang mas detalyado ang tungkol sa limang mga proyekto ng aming mga nagtapos.

Matalinong paghahanap ng mga medikal na artikulo

Teknikal na isyu ng Mail.ru Group 2019

Mayroong maraming mga lugar sa larangan ng agham, sa bawat isa kung saan isinasagawa ang pananaliksik, isang malaking bilang ng mga artikulo ang nai-publish sa iba't ibang mga journal. Ito ay teknolohiya ng impormasyon, pisika, matematika, biology, medisina at marami pang iba.

Mga May-akda proyekto nagpasya na tumuon sa larangan ng medikal. Halos lahat ng mga artikulo sa mga paksang medikal ay kinokolekta sa portal ng PubMed. Ang portal ay nagbibigay ng sarili nitong paghahanap. Gayunpaman, ang mga kakayahan nito ay napakalimitado. Samakatuwid, pinahusay ng mga lalaki ang sistema ng paghahanap, nagdagdag ng suporta para sa mahabang query at ang kakayahang pinuhin ang mga query gamit ang pagmomodelo ng paksa.

Teknikal na isyu ng Mail.ru Group 2019
Ang SERP ay naglalaman ng isang ranggo na listahan ng mga dokumento na may tinukoy na mga paksa, at ang mga salita at terminong nauugnay sa mga paksang ito ay na-highlight gamit ang probabilistic na pagmomodelo ng paksa. Maaaring mag-click ang user sa mga naka-highlight na termino upang paliitin ang query sa paghahanap.

Teknikal na isyu ng Mail.ru Group 2019
Upang gawing mabilis ang paghahanap sa pamamagitan ng malaking database ng PubMed, isinulat ng mga may-akda ang kanilang sariling search engine na madaling maisama sa anumang imprastraktura.

Ang paghahanap ay isinasagawa sa tatlong yugto:

  1. Pinipili ang mga dokumento ng kandidato gamit ang reverse index.
  2. Ang mga kandidato ay niraranggo gamit ang BM25F algorithm, na isinasaalang-alang ang iba't ibang mga patlang sa mga dokumento sa panahon ng paghahanap. Kaya, ang mga salita sa pamagat ay may mas timbang kaysa sa mga salita sa abstract.
  3. Ginagamit din ang isang sistema ng pag-cache upang mapabilis ang pagproseso ng mga madalas na kahilingan.

Teknikal na isyu ng Mail.ru Group 2019

Arkitektura ng microservice:

Teknikal na isyu ng Mail.ru Group 2019
Karaniwan, inililipat ang structured text data sa pagitan ng mga serbisyo. Para sa mataas na bilis ng paglipat, ginagamit ang GRPC - isang balangkas para sa pagkonekta ng mga module sa isang arkitektura ng microservice. Ginagamit din ang serialization ng data gamit ang format ng pagpapalitan ng mensahe ng Protobuf.

Anong mga bahagi ang kasama sa system:

  • Server para sa pagproseso ng mga papasok na kahilingan ng user sa Node.js.
  • Mga kahilingan sa pag-load ng pagbabalanse gamit ang nginx proxy server.
  • Ipinapatupad ng Flask server ang REST API at tumatanggap ng mga kahilingang ipinasa mula sa Node.js.
  • Ang lahat ng raw at naprosesong data, pati na rin ang impormasyon ng query, ay naka-imbak sa MongoDB.
  • Ang lahat ng mga kahilingan para sa mga nauugnay na resulta para sa thematization ng dokumento ay mapupunta sa RabbitMQ.

Halimbawa ng mga resulta ng paghahanap:

Teknikal na isyu ng Mail.ru Group 2019

Ano ang plano naming gawin sa susunod:

  • Mga rekomendasyon kapag nag-compile ng mga review sa isang partikular na paksa (pagtukoy ng mahahalagang paksa sa isang dokumento at naghahanap sa mga subset ng mga dokumento).
  • Maghanap ng mga PDF file.
  • Semantic text segmentation.
  • Subaybayan ang mga paksa at trend sa paglipas ng panahon.

Koponan ng proyekto: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Block Log

Teknikal na isyu ng Mail.ru Group 2019

Ngayon, kapag nagtuturo ng programming at computer science, ang mga bata sa edad ng elementarya (grade 5–7) ay may mga problema sa pag-master ng materyal. Bilang karagdagan, kung nais ng mga mag-aaral na tapusin ang mga takdang-aralin sa bahay, kailangan nilang mag-install ng karagdagang software sa kanilang mga computer. Kailangang suriin ng mga guro ang isang malaking bilang ng mga katulad na solusyon sa mga problema, at sa kaso ng malayong pag-aaral, kailangan din nilang bumuo ng isang pamamaraan para sa pagtanggap ng mga takdang-aralin mula sa mga mag-aaral.

Ang mga may-akda ng proyekto ng Block Log ay dumating sa konklusyon: kapag nagtuturo sa mga bata sa edad ng elementarya ang mga pangunahing kaalaman ng algorithmization, ang diin ay hindi dapat sa pagsasaulo ng mga utos ng programming language, ngunit sa pagbuo ng mga diagram ng algorithm. Ito ay magbibigay-daan sa mga mag-aaral na gumugol ng oras at pagsisikap sa pagdidisenyo ng isang algorithm, sa halip na mag-type ng masalimuot na syntactic na istruktura.

Platform Block Log pinapayagan ang:

  1. Gumawa at mag-edit ng mga flowchart.
  2. Patakbuhin ang ginawang mga flowchart at tingnan ang resulta ng kanilang trabaho (output data).
  3. I-save at i-load ang mga ginawang proyekto.
  4. Gumuhit ng mga raster na larawan (bumubuo ng larawan batay sa isang algorithm na ginawa ng bata).
  5. Tumanggap ng impormasyon tungkol sa pagiging kumplikado ng nilikha na algorithm (batay sa bilang ng mga operasyon na isinagawa sa algorithm).

Inaasahan ang paghahati ng mga tungkulin sa mga guro at mag-aaral. Ang sinumang user ay tumatanggap ng katayuang mag-aaral; upang makakuha ng katayuan ng guro, dapat kang makipag-ugnayan sa administrator ng system. Ang guro ay hindi lamang maaaring magpasok ng mga paglalarawan at kundisyon ng mga problema, ngunit lumikha din ng mga awtomatikong pagsubok na awtomatikong ilulunsad kapag ang isang mag-aaral ay nagsumite ng solusyon sa problema sa system.

Browser Block Log Editor:

Teknikal na isyu ng Mail.ru Group 2019

Pagkatapos malutas ang problema, maaaring i-download ng mag-aaral ang solusyon at makita ang mga resulta:

Teknikal na isyu ng Mail.ru Group 2019

Ang platform ay binubuo ng isang front-end na application sa Vue.js at isang back-end na application sa Ruby on Rails. Ang PostgreSQL ay ginagamit bilang database. Upang pasimplehin ang pag-deploy, lahat ng bahagi ng system ay naka-package sa mga container ng Docker at pinagsama-sama gamit ang Docker Compose. Ang desktop na bersyon ng Block Log ay batay sa Electron framework. Ginamit ang Webpack upang buuin ang JavaScript code.

Koponan ng proyekto: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

CRM system para sa TamTam messenger

Teknikal na isyu ng Mail.ru Group 2019

Ang CRM ay isang tool para sa maginhawang pakikipag-ugnayan sa pagitan ng mga negosyo at mga user ng TamTam. Ang mga sumusunod na function ay ipinatupad:

  • Isang bot constructor na nagbibigay-daan sa iyong lumikha ng mga bot nang walang mga kasanayan sa programming. Sa ilang minuto maaari kang makakuha ng isang ganap na gumaganang bot na hindi lamang maaaring magpakita ng ilang impormasyon sa mga gumagamit, ngunit mangolekta din ng data, kasama. mga file na maaaring tingnan ng administrator sa ibang pagkakataon.
  • RSS. Madali mong makokonekta ang RSS sa anumang channel.
  • Naantala ang pag-post. Binibigyang-daan kang magpadala at magtanggal ng mga mensahe sa mga preset na oras.

Nakibahagi rin ang team sa pagsubok sa Bot API, na lumikha ng ilang self-written na mga bot, tulad ng isang bot para sa 2019 World Cup of Hockey, isang bot para sa pagpaparehistro/awtorisasyon sa aming serbisyo, at isang bot para sa CI/CD.

Imprastraktura ng solusyon:

  • Ang server ng pamamahala ay naglalaman ng isang sistema ng pagsubaybay para sa bawat server at bawat lalagyan ng Docker dito upang mabilis at maginhawang matukoy ang isang problema at malutas ito, tingnan ang iba't ibang mga sukatan at istatistika ng paggamit. Mayroon ding sistema para sa malayuang pamamahala ng pagsasaayos ng aming aplikasyon.
  • Ang staging server ay naglalaman ng kasalukuyang bersyon ng aming application, na magagamit para sa pangkalahatang pagsubok ng development team.
  • Ang mga server ng pamamahala at pagtatanghal ay magagamit lamang sa pamamagitan ng VPN sa mga developer, at ang production server ay naglalaman ng release na bersyon ng application. Ito ay nakahiwalay sa mga kamay ng mga developer at available lang sa end user.
  • Ang CI/CD system ay ipinatupad gamit ang Github at Travis, abiso gamit ang custom na bot sa TamTam.

Teknikal na isyu ng Mail.ru Group 2019

Ang arkitektura ng application ay isang modular na solusyon. Ang application, database, configuration manager at pagsubaybay ay inilunsad sa magkahiwalay na mga container ng Docker, na nagbibigay-daan sa iyong mag-abstract mula sa kapaligiran ng paglulunsad, magbago o mag-restart ng isang hiwalay na lalagyan. Ang paggawa ng topology ng network at pamamahala ng mga container ay ginagawa gamit ang Docker Compose.

Teknikal na isyu ng Mail.ru Group 2019

Koponan ng proyekto: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

ForkMe

Teknikal na isyu ng Mail.ru Group 2019

Ang proyekto ng ForkMe ay isang platform para sa panonood ng mga interactive na video, kung saan maaari kang lumikha ng iyong sariling video at ipakita ito sa iyong mga kaibigan. Bakit kailangan natin ng mga interactive na video kung may mga regular?

Ang non-linear na plot ng video at ang kakayahang pumili ng pagpapatuloy mismo ay nagbibigay-daan sa manonood na makilahok, at ang mga tagalikha ng nilalaman ay makakapagpakita ng mga natatanging kuwento, na ang balangkas nito ay maaapektuhan ng mga user. Gayundin, ang mga tagalikha ng nilalaman, sa pamamagitan ng pag-aaral ng mga istatistika ng conversion ng video, ay mauunawaan kung ano ang pinaka-interesante sa madla at gagawing mas kaakit-akit ang mga materyales.

Sa pagbuo ng proyekto, ang mga lalaki ay naging inspirasyon ng interactive na pelikulang Bandersnatch mula sa Netflix, na nakatanggap ng maraming view at magagandang review. Nang naisulat na ang MVP, lumabas ang balita na nagpaplano ang Youtube na maglunsad ng isang platform para sa interactive na serye, na muling nagpapatunay sa kasikatan ng direksyong ito.

Kasama sa MVP ang: interactive na player, video constructor, paghahanap sa pamamagitan ng content at mga tag, mga koleksyon ng video, komento, view, rating, channel at profile ng user.

Teknikal na isyu ng Mail.ru Group 2019

Technology stack na ginamit sa proyekto:

Teknikal na isyu ng Mail.ru Group 2019

Paano ito pinaplano na bumuo ng proyekto:

  • koleksyon ng mga istatistika at infographics tungkol sa mga transition sa video;
  • mga abiso at personal na mensahe para sa mga gumagamit ng site;
  • mga bersyon para sa Android at iOS.

Pagkatapos nito plano naming idagdag:

  • paglikha ng mga kwentong video mula sa iyong telepono;
  • pag-edit ng mga na-download na fragment ng video (halimbawa, pag-trim);
  • paglikha at paglulunsad ng interactive na advertising sa player.

Koponan ng proyekto: Maxim Morev (fullstack developer, nagtrabaho sa arkitektura ng proyekto) at Roman Maslov (fullstack developer, nagtrabaho sa disenyo ng proyekto).

On-Line-On-Board

Teknikal na isyu ng Mail.ru Group 2019

Teknikal na isyu ng Mail.ru Group 2019

Ngayon, binibigyang-pansin ng mga magulang ang pag-unlad ng kaisipan ng kanilang mga anak, at ang mga bata ay interesado sa mga larong intelektwal. Kaya naman, sumikat na naman ang chess. At kahit na ang chess sa pangkalahatan ay medyo popular, ang paghahanap ng isang regular na kalaban para sa mga laro ay may problema. Samakatuwid, maraming tao ang gumagamit ng mga online na serbisyo ng chess, sa kabila ng katotohanang mas gusto ng maraming manlalaro na maglaro ng "live" gamit ang mga tunay na piraso. Gayunpaman, kapag naglalaro ng chess, ang isang tao ay naglalagay ng maraming pagsisikap sa pag-iisip at napapagod, at ang pagkapagod na ito ay kinukumpleto ng negatibong epekto ng pag-upo sa isang computer o smartphone. Bilang resulta, ang utak ay nagiging overloaded pagkatapos lamang ng dalawang laro.

Ang lahat ng mga kadahilanang ito ay nagtulak sa mga may-akda sa ideya ng On-Line-On-Board na proyekto, na binubuo ng tatlong bahagi: isang pisikal na chessboard, isang desktop application at isang serbisyo sa web. Ang board ay isang regular na larangan ng chess, na kinikilala ang posisyon ng mga piraso at, sa tulong ng isang liwanag na indikasyon, ay nagpapahiwatig ng mga galaw ng kalaban. Ang board ay konektado sa pamamagitan ng USB sa isang PC at nakikipag-ugnayan sa desktop application. Sa mode ng pagsasanay (at para sa mga bata), ang iyong mga posibleng galaw ay naka-highlight.

Ang application ay tumatagal sa mga pangunahing pag-andar ng pamamahala ng board, na nagbibigay-daan sa iyo upang lubos na bawasan ang gastos nito at dalhin ang pagpapatupad ng karamihan sa mga function sa antas ng software. Nakikipag-ugnayan ang application sa isang web service na ang pangunahing halaga ay dynamic na pag-update.

Ang pangunahing senaryo para sa paggamit ng produkto: isang tao ang naglalaro sa serbisyo, ang pangalawa sa isang pisikal na board na konektado sa serbisyo. Iyon ay, ang serbisyo ay tumatagal sa isang communicative function.

Koponan ng proyekto: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Maaari kang magbasa nang higit pa tungkol sa aming mga proyektong pang-edukasyon sa ang link na ito. At bisitahin ang channel nang mas madalas Technostream, ang mga bagong pang-edukasyon na video tungkol sa programming, development at iba pang mga disiplina ay regular na lumalabas doon.

Pinagmulan: www.habr.com

Magdagdag ng komento