Hackathon DevDays'19 (vaega 2): fa'asalalau fe'au fa'alogo mo le Telegram ma le siakiina o le kalama ile IntelliJ IDEA

Matou te faʻaauau pea ona talanoa e uiga i galuega faatino o le spring hackathon DevDays, lea na auai ai tamaiti aʻoga o le polokalame a le matai. "Atina'e Polokalama / Software Engineering".

Hackathon DevDays'19 (vaega 2): fe'au fa'alogo leo mo le Telegram ma le kalama siaki ile IntelliJ IDEA

I le auala, matou te fia valaʻau i le au faitau e auai VK-vaega o tamaiti aʻoga matai. I totonu o le a matou faʻasalalau tala fou e uiga i le faʻafaigaluegaina ma suʻesuʻega. E mafai foi ona maua se vitio mai le aso tatala i le vaega. Matou te faamanatu atu ia te oe: o le a faia le mea na tupu ia Aperila 29, auiliiliga luga o le initoneti.

Telegram Desktop Voice Message Parser

Hackathon DevDays'19 (vaega 2): fe'au fa'alogo leo mo le Telegram ma le kalama siaki ile IntelliJ IDEA

Tusitala o le manatu
Khoroshev Artyom

Faatulaga mai

Khoroshev Artem - pule o galuega / atinaʻe / QA
Eliseev Anton - suʻesuʻe pisinisi / faʻapitoa tau maketi
Maria Kuklina - UI faʻataʻitaʻiga / atinaʻe
Bakhvalov Pavel - UI faʻailoga / atinaʻe / QA

Mai la matou vaaiga, Telegram o se avefeʻau faʻaonaponei ma faigofie, ma o lona PC version e lauiloa ma tatala punaoa, lea e mafai ai ona suia. O lo'o ofo mai e le kalani le tele o galuega. I le faaopoopo atu i feau tusitusia masani, o loo i ai leo leo, savali vitio, ma savali leo. Ma o le mea mulimuli o nisi taimi e aumaia ai le faʻalavelave i latou e mauaina. E masani ona le mafai ona fa'alogo i se fe'au leo ​​a'o iai i se komepiuta po'o se komepiuta feavea'i. Atonu o lo'o pisa, leai ni mea fa'alogo, pe e te le mana'o e fa'alogo se tasi i mea o lo'o i totonu o le fe'au. O ia faʻafitauli e toetoe lava a le tulaʻi mai pe a e faʻaogaina Telegram i luga o se telefoni, aua e mafai ona e aumaia i lou taliga, e le pei o se komepiuta poʻo se PC. Sa matou taumafai e foia lenei faafitauli.

O le sini o la matou poloketi i DevDays o le faʻaopoopoina lea o le tomai e faʻaliliu ai feʻau leo ​​maua i totonu o tusitusiga i le Telegram desktop client (e taʻua mulimuli ane o Telegram Desktop).

O analogues uma i le taimi nei o bots e mafai ona e lafoina ai se feʻau faʻalogo ma maua se tusitusiga e tali atu ai. Matou te le fiafia tele i lenei mea: o le tuʻuina atu o se feʻau i se bot e le faigofie tele; matou te manaʻo e maua galuega faʻale-aganuʻu. E le gata i lea, soʻo se bot o se vaega lona tolu o loʻo galue o se tagata faufautua i le va o le tautala API ma le tagata faʻaoga, ma o le mea lea, i se tulaga maualalo, e le saogalemu.

E pei ona taʻua muamua, o le telegram-desktop e lua ona lelei taua: faigofie ma le saoasaoa o le gaioiga. Ma e le o se mea faʻafuaseʻi, aua o loʻo tusia atoa ile C ++. Ma talu ai na matou filifili e faʻaopoopo saʻo galuega fou i le kalani, e tatau ona matou atiaʻe i le C++.

Hackathon DevDays'19 (vaega 2): fe'au fa'alogo leo mo le Telegram ma le kalama siaki ile IntelliJ IDEAE 4 tagata i la matou 'au. I le taimi muamua, e toʻalua tagata na suʻe se faletusi talafeagai mo le faʻaalia o le tautala, o le tasi tagata na suʻesuʻeina le faʻamatalaga autu o Telegram-desktop, o le isi na faʻaaogaina le galuega faufale. Tekonolosi Telegram. Mulimuli ane, sa pisi tagata uma i le faʻaleleia o le UI ma le faʻapipiʻiina.

E foliga mai o le faʻatinoina o galuega faʻamoemoe e le faigata, ae, e pei ona tupu i taimi uma, na tulaʻi mai faigata.

O le fofo i le faʻafitauli e aofia ai ni suʻega tutoʻatasi e lua: filifilia o se meafaigaluega e iloa ai le tautala ma faʻaaogaina se UI mo galuega fou.

Pe a filifilia se faletusi mo le iloa o leo, na vave ona matou lafoaia uma API e le tuusao, aua o gagana faʻataʻitaʻiga e tele avanoa. Ae o loo tatou talanoa e uiga i le na o le tasi le gagana. Na manino mai e tatau ona matou faʻaogaina le API i luga ole laiga. Mulimuli ane, na faʻaalia ai o le faʻalauiloaina o tautalaga a tagata tetele e pei o Google, Yandex ma Microsoft e leʻo saoloto, ma e tatau ona tatou faamalieina i se vaitaimi o faʻataʻitaʻiga. O se taunuuga, Google Speech-To-Text na filifilia aua e mafai ai ona e maua se faʻailoga mo le faʻaaogaina o le tautua, lea e tumau mo le tausaga atoa.

O le fa'afitauli lona lua na matou feagai e feso'ota'i ma nisi o fa'aletonu o le C ++ - o se pa manu o faletusi eseese i le leai o se fale teu fa'atotonugalemu. E tupu tele Telegram Desktop e faʻalagolago i le tele o isi faletusi faʻapitoa. O loʻo iai le fale teu oloa aloaia faatonuga mo le tuufaatasia o le poloketi. Ma faʻapea foʻi le tele o faʻamatalaga tatala e uiga i le fausiaina o faʻafitauli, mo se faʻataʻitaʻiga taimi и два. O faʻafitauli uma na faʻaalia e fesoʻotaʻi ma le mea moni o le fausiaina o tusitusiga na tusia mo le Ubuntu 14.04, ma ina ia manuia le fausiaina o telefoni i lalo ole Ubuntu 18.04, e tatau ona faia suiga.

Telegram Desktop lava ia e umi se taimi e faʻapipiʻi ai: i luga o se komepiuta ma le Intel Core i5-7200U, faʻapipiʻi atoa (fuʻa -j 4) ma faʻalagolago uma e tusa ma le tolu itula. O nei mea, e tusa ma le 30 minute e faʻaaogaina e ala i le faʻafesoʻotaʻi o le kalani lava ia (mulimuli ane na aliali mai i le Debug configuration, fesoʻotaʻiga e tusa ma le 10 minute), ae o le fesoʻotaʻiga tulaga e tatau ona toe fai i taimi uma pe a uma ona fai suiga.

E ui lava i faʻafitauli, na mafai ona matou faʻatinoina le manatu faʻapitoa, faʻapea foʻi ma le faʻafouina fausia tusitusiga mo Ubuntu 18.04. O se fa'aaliga o le galuega e mafai ona va'aia i fesoʻotaʻiga. Matou te aofia ai foi le tele o animations. Ua aliali mai se ki i tafatafa o fe'au leo ​​uma, e mafai ai ona e fa'aliliu le fe'au i tusitusiga. I le kiliki-sa'o, e mafai ona e fa'aopoopoina le gagana o le a fa'aogaina mo fa'asalalauga. E fesoʻotaʻiga o lo'o avanoa le tagata o tausia mo le la'uina.

faleteuoloa.

I lo matou manatu, na avea ma faʻamaoniga lelei o le faʻatinoga o le a faigofie mo le tele o tagata faʻaoga. Matou te faʻamoemoe e vaʻaia i faʻasalalauga i le lumanaʻi o Telegram Desktop.

Fa'aleleia le Lagolago Gagana Faanatura ile IntelliJ IDEA

Hackathon DevDays'19 (vaega 2): fe'au fa'alogo leo mo le Telegram ma le kalama siaki ile IntelliJ IDEA

Tusitala o le manatu

Tankov Vladislav

Faatulaga mai

Tankov Vladislav (au ta'ita'i, galulue ma LanguageTool ma IntelliJ IDEA)
Nikita Sokolov (galue ma LanguageTool ma fatuina UI)
Khvorov Alexander (galue ma LanguageTool ma fa'amalieina le fa'atinoga)
Sadovnikov Alexander (lagolago mo le faʻavasegaina o gagana faʻailoga ma code)

Ua matou fausia se plugin mo IntelliJ IDEA e siaki ai tusitusiga eseese (faʻamatalaga ma faʻamaumauga, laina moni i le code, tusitusiga faʻapipiʻi i le Markdown poʻo le XML markup) mo le kalama, sipelaga ma le saʻo o le stylistic (i le Igilisi e taʻua o le proofreading).

O le manatu o le poloketi o le faʻalauteleina lea o le sipelaga masani IntelliJ IDEA i le fua o le Grammarly, e fai ai se ituaiga Grammarly i totonu o le IDE.

E mafai ona e vaʻai i le mea na tupu fesoʻotaʻiga.

Ia, o loʻo i lalo o le a tatou talanoa atili e uiga i le gafatia o le plugin, faʻapea foʻi ma faigata na tulaʻi mai i le taimi o lona foafoaga.

Motugaafa

E tele oloa ua fuafuaina mo le tusiaina o tusitusiga i gagana masani, ae o faʻamaumauga ma faʻamatalaga code e masani ona tusia i totonu o siosiomaga atinaʻe. I le taimi lava e tasi, e faia e IDE se galuega sili ona lelei i le sailia o mea sese i le code, ae e le fetaui mo tusitusiga i gagana masani. O le mea lea e matua faigofie ai ona fai mea sese i le kalama, faailoga, po'o sitaili e aunoa ma le fa'asinoina e le siosiomaga o le atina'e. E sili ona taua le faia o se mea sese i le tusiaina o le faʻaoga faʻaoga, talu ai o lenei mea o le a aʻafia ai e le gata i le malamalama o le code, ae faʻapea foʻi ma tagata faʻaogaina le atinaʻeina o latou lava.

O se tasi o siosiomaga sili ona lauiloa ma atinaʻe o IntelliJ IDEA, faʻapea foʻi ma IDE e faʻavae i luga ole IntelliJ Platform. O le IntelliJ Platform ua uma ona i ai se siaki sipela, ae e le mafai ona faʻaumatia e oʻo lava i mea sili ona faigofie o le kalama. Na matou filifili e tu'ufa'atasia se tasi o faiga fa'ale-aganu'u fa'alenatura ta'uta'ua i totonu o le IntelliJ IDEA.

Реализация

Hackathon DevDays'19 (vaega 2): fe'au fa'alogo leo mo le Telegram ma le kalama siaki ile IntelliJ IDEAMatou te leʻi faʻatulagaina i matou lava le galuega o le fatuina o matou lava faiga faʻamaonia tusitusiga, o lea na matou faʻaogaina ai se fofo o iai. O le filifiliga sili ona talafeagai na iʻu i ai Gagana Faʻapitoa. O le laisene na fa'atagaina ai i matou e fa'aoga saoloto mo matou fa'amoemoega: e leai se totogi, tusia i Java ma tatala-puna. E le gata i lea, e lagolagoina gagana e 25 ma o loʻo atinaʻe mo le silia ma le sefululima tausaga. E ui lava i lona matala, LanguageTool ose tauva ogaoga i fofo faʻamaoniga o tusitusiga, ma o le mea moni e mafai ona galue i le lotoifale o lona uiga fasioti tagata.

O loʻo i totonu le code plugin fale teu oloa ile GitHub. O le poloketi atoa na tusia i Kotlin faʻatasi ai ma sina faʻaopoopoga o Java mo le UI. I le taimi o le hackathon, na mafai ona matou faʻatinoina le lagolago mo Markdown, JavaDoc, HTML ma Plain Text. Ina ua maeʻa le hackathon, o se faʻafouga tele na faʻaopoopoina le lagolago mo XML, manoa faʻapitoa i Java, Kotlin ma Python, ma siaki sipela.

Faigata

Na vave lava ona matou iloa afai matou te fafaga uma tusitusiga i LanguageTool mo asiasiga i taimi uma, ona faʻamalo ai lea o le IDEA interface i luga o soʻo se tusitusiga sili atu pe itiiti ifo foi, talu ai o le asiasiga lava ia e poloka ai le tafe o le UI. Na foia le faafitauli e ala i le siaki `ProgressManager.checkCancelled` - o lenei galuega e lafo ai se tuusaunoaga pe afai e talitonu le IDEA ua oo i le taimi e taofia ai le asiasiga.

O lenei mea na faʻaumatia atoa ai le faʻamalo, ae e le mafai ona faʻaaogaina: e umi se taimi e faʻagasolo ai le tusitusiga. E le gata i lea, i la matou tulaga, e masani lava o se vaega laʻititi o le tusitusiga e suia ma matou te manaʻo e faʻapipiʻi iʻuga i se isi itu. O le mea tonu lena na matou faia. Ina ia aua nei siaki mea uma i taimi uma, matou te vaevaeina ma le mautinoa le tusitusiga i ni vaega ma siaki na o mea na suia. Talu ai o tusitusiga e mafai ona tetele ma matou te le manaʻo e utaina le faʻaoga, matou te leʻi teuina ia tusitusiga lava ia, ae o latou faʻamau. O lenei mea na faʻatagaina ai le faʻapipiʻi e faʻagaioi malie e oʻo lava i faila tetele.

E sili atu i le 25 gagana e lagolagoina e LanguageTool, ae e foliga mai e le mana'omia uma e se tasi tagata. Na ou manaʻo e tuʻuina atu le avanoa e sii mai ai faletusi mo se gagana faʻapitoa pe a talosagaina (pe a e faʻailogaina i le UI). Na matou faʻatinoina foʻi lenei mea, ae na iʻu ina faigata tele ma le faʻatuatuaina. Aemaise lava, e tatau ona matou utaina le LanguageTool i se seti fou o gagana e faʻaaoga ai se isi vasega faʻapipiʻi, ona amata ai lea ma le faʻaeteete. I le taimi lava e tasi, o faletusi uma o loʻo i totonu o se tagata faʻaoga .m2 faleoloa, ma i amataga taʻitasi e tatau ona matou siakiina lo latou faʻamaoni. I le faaiuga, na matou filifili afai e iai faʻafitauli i tagata faʻaoga i le tele o le plugin, ona matou tuʻuina atu lea o se isi faʻapipiʻi mo le tele o gagana sili ona lauiloa.

Ina ua uma le hackathon

Na maeʻa le hackathon, ae na faʻaauau pea le galue i luga o le plugin i se 'au vaapiapi. Na ou manaʻo e lagolagoina manoa, faʻamatalaga, ma e oʻo lava i le fausiaina o gagana e pei o igoa fesuiaʻi ma vasega. I le taimi nei e naʻo Java, Kotlin ma Python e lagolagoina, ae matou te faʻamoemoe o le a tupu lenei lisi. Ua matou fa'apipi'iina le tele o tama'i tama'i pusi ma sili atu ona fetaui ma le su'esu'ega sipela o le Idea. E le gata i lea, ua aliali mai le lagolago XML ma le siakiina o sipela. O nei mea uma e mafai ona maua i le lomiga lona lua, lea na matou lomia talu ai nei.

o sosoo ai le a?

O sea faʻapipiʻi e mafai ona aoga e le gata mo tagata atiaʻe, ae faʻapea foʻi mo tusitala faʻapitoa (e masani ona galue, mo se faʻataʻitaʻiga, ma le XML i le IDE). O aso uma e tatau ona latou galulue i le gagana masani, e aunoa ma le i ai o se fesoasoani i le tulaga o le faatonu fautuaga e uiga i mea sese. O la matou plugin e tuʻuina atu ia faʻamatalaga ma faia i se maualuga maualuga o le saʻo.
Matou te fuafua e atiaʻe le faʻapipiʻi, e ala i le faʻaopoopoina o gagana fou ma e ala i le suʻesuʻeina o se auala lautele i le faʻatulagaina o le siakiina o tusitusiga. O a matou fuafuaga vave e aofia ai le faʻatinoina o faʻamatalaga faʻapitoa (seti o tulafono e faʻamalamalamaina ai se taʻiala mo tusitusiga, mo se faʻataʻitaʻiga, "aua le tusia se faʻataʻitaʻiga, ae tusi le pepa atoa"), faʻalauteleina le lolomifefiloi ma faʻaleleia le faʻaoga faʻaoga (aemaise lava, matou te mananaʻo e tuʻuina atu i le tagata faʻaoga le avanoa e le naʻo le le amanaiaina o se upu, ae faʻaopoopo i totonu o le lomifefiloi, faʻaalia le vaega o le tautala).

Punavai: www.habr.com

Faaopoopo i ai se faamatalaga