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.
I le auala, matou te fia valaʻau i le au faitau e auai
Telegram Desktop Voice Message Parser
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++.
E 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.
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
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
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
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
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.
Реализация
Matou 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
O loʻo i totonu le code plugin
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