Hackathon DevDays'19 (chikamu 2): odhiyo meseji parser yeTeregiramu uye girama yekutarisa muIntelliJ IDEA

Isu tinoenderera mberi nekutaura nezve mapurojekiti echitubu hackathon DevDays, umo vadzidzi vechirongwa che master vakapinda. "Software Development / Software Engineering".

Hackathon DevDays'19 (chikamu 2): odhiyo meseji parser yeTeregiramu uye girama yekutarisa muIntelliJ IDEA

Nenzira, tinoda kukoka vaverengi kuti vabatane VK boka revadzidzi vatenzi. Mariri tichaburitsa nhau dzichangoburwa nezve kupinza basa uye kudzidza. Vhidhiyo kubva pazuva rakavhurika inogonawo kuwanikwa muboka. Tinokuyeuchidza: chiitiko chichaitika muna Kubvumbi 29, ruzivo Online.

Telegraph Desktop Voice Message Parser

Hackathon DevDays'19 (chikamu 2): odhiyo meseji parser yeTeregiramu uye girama yekutarisa muIntelliJ IDEA

Munyori wepfungwa
Khoroshev Artyom

Mirai mumutsetse

Khoroshev Artem - maneja weprojekiti/mugadziri/QA
Eliseev Anton - muongorori webhizinesi / nyanzvi yekushambadzira
Maria Kuklina - UI mugadziri/mugadziri
Bakhvalov Pavel - UI mugadziri/mugadziri/QA

Kubva pamaonero edu, Teregiramu mutumwa wemazuva ano uye ari nyore, uye PC yayo vhezheni inozivikanwa uye yakavhurika sosi, iyo inoita kuti ikwanise kuigadzirisa. Mutengi anopa basa rakapfuma. Pamusoro peakajairwa mameseji mameseji, ine mameseji ekufona, mameseji evhidhiyo, uye mameseji ezwi. Uye ndiyo yekupedzisira iyo dzimwe nguva inounza kusagadzikana kune avo vanoigamuchira. Kazhinji hazvigoneke kuteerera izwi meseji uri pakombuta kana laptop. Panogona kunge paine ruzha, kushomeka kwemahedhifoni, kana kuti haudi kuti chero munhu anzwe zviri mukati memeseji. Matambudziko akadai haambomuki kana ukashandisa Telegraph pane smartphone, nekuti iwe unogona kungounza iyo munzeve yako, kusiyana nelaptop kana PC. Takaedza kugadzirisa dambudziko iri.

Chinangwa chepurojekiti yedu paDevDays chaive chekuwedzera kugona kushandura mameseji ezwi akagamuchirwa kuita mavara kune Teregiramu desktop mutengi (inozonzi Telegraph Desktop).

Ese analogues panguva ino mabhoti kwaunogona kutumira odhiyo meseji uye kugamuchira mameseji mukupindura. Hatina kufara zvakanyanya neizvi: kutumira meseji kune bot hakuna kunyanyo batsira; tinoda kuve nekuita kwekuzvarwa. Pamusoro pezvo, chero bot ibato rechitatu rinoita semurevereri pakati peiyo API yekuzivikanwa kwekutaura uye mushandisi, uye izvi, zvishoma, hazvina kuchengetedzeka.

Sezvambotaurwa, teregiramu-desktop ine maviri akakosha mabhenefiti: nyore uye kumhanya kwekushanda. Uye izvi hazvisi masanga, nekuti zvakanyorwa zvachose muC ++. Uye sezvo isu takasarudza kuwedzera mashandiro matsva zvakananga kumutengi, taifanira kuigadzira muC ++.

Hackathon DevDays'19 (chikamu 2): odhiyo meseji parser yeTeregiramu uye girama yekutarisa muIntelliJ IDEAMuchikwata chedu maiva nevanhu 4. Pakutanga, vanhu vaviri vaitsvaga raibhurari yakakodzera yekuzivikanwa kutaura, mumwe munhu aidzidza kodhi yeTeregiramu-desktop, mumwe aiendesa chirongwa chekuvaka. Teregiramu Desktop. Gare gare, munhu wese aive mubishi kugadzirisa UI uye kugadzirisa.

Zvaiita sekuti kuita basa rakatarisirwa kwaisazova rakaoma, asi, sezvagara zvichiitika, matambudziko akamuka.

Mhinduro yedambudziko yaisanganisira maviri akazvimiririra subtasks: kusarudza chakakodzera chekuziva kutaura uye kushandisa UI yekushanda kutsva.

Pakusarudza raibhurari yekuziva inzwi, takabva tatosiya maAPI ese asiri pamhepo, nekuti mhando dzemitauro dzinotora nzvimbo yakawanda. Asi tiri kutaura nezvemutauro mumwe chete. Zvakava pachena kuti taizofanira kushandisa online API. Gare gare zvakazoitika kuti masevhisi ekuzivikanwa kwekutaura ehofori dzakadai seGoogle, Yandex neMicrosoft haana zvachose, uye isu tichafanirwa kugutsikana nenguva yekuedzwa. Somugumisiro, Google Speech-To-Text yakasarudzwa nokuti inokubvumira kuwana chiratidzo chekushandisa sevhisi, iyo ichagara kwegore rose.

Dambudziko rechipiri ratakasangana naro rinechekuita nekumwe kukanganisa kweC++ - zoo yemaraibhurari akasiyana siyana pasina nzvimbo yepakati. Izvo zvinoitika kuti Telegraph Desktop inotsamira kune mamwe akawanda mavhezheni-chaiwo maraibhurari. Iyo yepamutemo repository ine manual yekuunganidza purojekiti. Uye zvakare nhamba huru yenyaya dzakavhurika nezve matambudziko ekuvaka, semuenzaniso nguva ΠΈ Π΄Π²Π°. Matambudziko ese akave ane chekuita nenyaya yekuti script yekuvaka yakanyorerwa Ubuntu 14.04, uye kuti ibudirire kuvaka teregiramu pasi peUbuntu 18.04, shanduko dzaifanira kuitwa.

Telegraph Desktop pachayo inotora nguva yakareba kuti iungane: palaptop ine Intel Core i5-7200U, musangano wakakwana (mureza -j 4) uine zvese zvinotsamira zvinotora anenge maawa matatu. Pakati peizvi, anenge maminetsi makumi matatu anotorwa nekubatanidza mutengi pachayo (gare gare zvakazoitika kuti mukugadziriswa kweDebug, kubatanidza kunotora anenge maminetsi gumi), asi nhanho yekubatanidza inofanirwa kudzokororwa nguva dzese mushure mekuita shanduko.

Kunyangwe paine matambudziko, isu takakwanisa kuita zano rakapihwa, pamwe nekuvandudza kuvaka script yeUbuntu 18.04. Kuratidzwa kwebasa kunogona kuonekwa pa batanidzo. Isu tinosanganisirawo akati wandei animation. Bhatani rabuda padivi pemeseji yese yezwi, richikubvumidza kuti uturike meseji kuita mavara. Nekudzvanya-kurudyi, unogona kuwedzera kutaura mutauro uchashandiswa kutepfenyura. By batanidzo client iripo yekurodha.

Repository.

Semaonero edu, zvakazove Humbowo hwakanaka hweChirevo chekushanda kwaizove kwakanakira vashandisi vazhinji. Isu tinotarisira kuzviona mune ramangwana kuburitswa kweTeregiramu Desktop.

Yakanatsiridzwa Yechisikigo Mutauro Tsigiro muIntelliJ IDEA

Hackathon DevDays'19 (chikamu 2): odhiyo meseji parser yeTeregiramu uye girama yekutarisa muIntelliJ IDEA

Munyori wepfungwa

Tankov Vladislav

Mirai mumutsetse

Tankov Vladislav (mutungamiri weboka, achishanda neMutauroTool uye IntelliJ IDEA)
Nikita Sokolov (achishanda neMutauroTool uye kugadzira UI)
Khvorov Alexander (kushanda neMutauroTool uye optimizing kuita)
Sadovnikov Alexander (rutsigiro rwekupatsanura mitauro uye kodhi)

Takagadzira plugin yeIntelliJ IDEA inotarisa zvinyorwa zvakasiyana (macomments uye zvinyorwa, mitsetse chaiyo mukodhi, zvinyorwa zvakarongwa muMarkdown kana XML markup) yegirama, zviperengo uye stylistic huchokwadi (muChirungu izvi zvinodaidzwa kuti kuongorora).

Pfungwa yepurojekiti yaive yekuwedzera yakajairwa spellcheck IntelliJ IDEA kusvika pachiyero cheGrammarly, kugadzira mhando yeGrammarly mukati meIDE.

Unogona kuona zvakaitika batanidzo.

Zvakanaka, pazasi isu tichataura zvakadzama nezve kugona kwe plugin, pamwe nezvinetso zvakamuka panguva yekusikwa kwayo.

Chikonzero

Kune zvakawanda zvigadzirwa zvakagadzirirwa kunyora zvinyorwa mumitauro yechisikigo, asi zvinyorwa uye kodhi makomendi zvinonyanya kunyorwa munzvimbo dzekusimudzira. Panguva imwecheteyo, maIDE anoita basa rakanakisa rekutsvaga zvikanganiso mukodhi, asi haana kukodzera kunyorwa kwezvinyorwa mumitauro yechisikigo. Izvi zvinoita kuti zvive nyore kuita zvikanganiso mugirama, nyora, kana chimiro pasina nharaunda yekusimudzira inovaratidza. Zvinonyanya kukosha kuita chikanganiso mukunyora mushandisi interface, nekuti izvi zvichakanganisa kwete chete kunzwisiswa kwekodhi, asiwo vashandisi veiyo yakagadziridzwa application ivo pachavo.

Imwe yenzvimbo dzinonyanya kufarirwa uye dzakagadziridzwa budiriro iIntelliJ IDEA, pamwe neIDEs yakavakirwa paIntelliJ Platform. IntelliJ Platform yatove neyakavakirwa-mukati spellchecker, asi haibvise kunyangwe akapusa zvikanganiso zvegirama. Isu takasarudza kubatanidza imwe yeanozivikanwa mitauro yekuongorora masisitimu muIntelliJ IDEA.

Kutevedzera

Hackathon DevDays'19 (chikamu 2): odhiyo meseji parser yeTeregiramu uye girama yekutarisa muIntelliJ IDEAHatina kuzviisa isu pachedu basa rekugadzira yedu yekuongorora zvinyorwa, saka takashandisa mhinduro iripo. Sarudzo yakanyatsokodzera yakazova MutauroTool. Rezinesi rakatibvumira kuishandisa zvakasununguka nekuda kwezvinangwa zvedu: ndeyemahara, yakanyorwa muJava uye yakavhurika-sosi. Pamusoro pezvo, inotsigira mitauro makumi maviri neshanu uye yave mukusimudzira kweanopfuura makore gumi nemashanu. Zvisinei nekuvhurika kwayo, MutauroTool mukwikwidzi akakomba kune akabhadhara mameseji ekuongorora mhinduro, uye chokwadi chekuti inogona kushanda munharaunda ndiyo chaiyo inouraya.

Iyo plugin kodhi iri mukati repositories paGitHub. Iyo yese purojekiti yakanyorwa muKotlin nekuwedzera kudiki kweJava yeUI. Munguva yehackathon, takakwanisa kuita rutsigiro rweMarkdown, JavaDoc, HTML uye Plain Text. Mushure meiyo hackathon, huru yekuvandudza yakawedzera rutsigiro rweXML, tambo chaiyo muJava, Kotlin nePython, uye kutarisa zviperengo.

Matambudziko

Nekukurumidza takaona kuti kana tikadyisa zvinyorwa zvese kuMutauroTool kuti zviongororwe nguva dzese, ipapo iyo IDEA interface inotonhora pane chero yakanyanya kana kushomeka zvinyorwa, sezvo ongororo pachayo inovharira kuyerera kweUI. Dambudziko rakagadziriswa kuburikidza necheki ye `ProgressManager.checkCancelled` - basa iri rinopa musiyano kana IDEA ichitenda kuti yave nguva yekubvisa ongororo.

Izvi zvakabvisa zvachose chando, asi hazvibviri kushandisa: zvinyorwa zvinotora nguva yakareba kwazvo kugadzirisa. Uyezve, kwatiri, kazhinji chikamu chidiki chemavara chinoshanduka uye isu tinoda kuchengetedza mhedzisiro neimwe nzira. Ndizvo chaizvo zvatakaita. Kuti tisatarise zvese nguva dzese, isu takanyatso patsanura zvinyorwa kuita zvidimbu uye takatarisa chete izvo zvakachinja. Sezvo zvinyorwa zvingave zvakakura uye isu hatina kuda kutakura cache, isu takachengeta kwete zvinyorwa ivo pachavo, asi hashi dzavo. Izvi zvakabvumira kuti plugin ishande zvakanaka kunyange pamafaira makuru.

MutauroTool inotsigira mitauro inodarika makumi maviri neshanu, asi hazvigoneke kuti chero mushandisi mumwechete anoida yese. Ini ndaida kupa mukana wekudhawunirodha maraibhurari emumwe mutauro pakukumbira (kana iwe ukamaka muUI). Isu takatoita izvi, asi zvakazonyanya kuoma uye kusavimbika. Kunyanya, isu taifanira kurodha MutauroTool neseti nyowani yemitauro tichishandisa yakaparadzana kirasi yekurodha, tobva tanyatsoitanga. Panguva imwecheteyo, maraibhurari ese aive mushandisi .m25 repository, uye pakutanga kwega kwega taifanira kutarisa kuvimbika kwavo. Pakupedzisira, takasarudza kuti kana vashandisi vaine matambudziko nehukuru hweplugin, saka isu taizopa yakaparadzana plugin kune akati wandei emitauro inonyanya kufarirwa.

Mushure me hackathon

Iyo hackathon yakapera, asi basa pane plugin rakaenderera nechikwata chakamanikana. Ini ndaida kutsigira tambo, makomendi, uye kunyangwe magadzirirwo emitauro akadai sekusiyana uye mazita ekirasi. Parizvino izvi zvinongotsigirwa neJava, Kotlin nePython, asi isu tinovimba runyorwa urwu ruchakura. Isu takagadzirisa twudiki diki uye tinowedzera kuenderana neIdea yakavakirwa-mukati spell checker. Pamusoro pezvo, rutsigiro rweXML uye kutariswa zviperengo zvakaonekwa. Zvese izvi zvinogona kuwanikwa mune yechipiri vhezheni, yatakaburitsa munguva pfupi yapfuura.

Chii chinotevera?

Plugin yakadaro inogona kubatsira kwete chete kune vanogadzira, asiwo kune vanyori vehunyanzvi (kazhinji vanoshanda, semuenzaniso, neXML muIDE). Zuva rega rega vanofanira kushanda nemutauro wechisikigo, pasina kuva nemubatsiri muchimiro chemupepeti mazano pamusoro pezvikanganiso zvinogona kuitika. Plugin yedu inopa mazano akadaro uye inozviita nehupamhi hwepamusoro.
Isu tinoronga kugadzira plugin, zvese nekuwedzera mitauro mitsva uye nekuongorora yakajairika nzira yekuronga mameseji kutarisa. Zvirongwa zvedu zvepakarepo zvinosanganisira kuisirwa stylistic profiles (seti yemitemo inotsanangura gwara remanyorero, semuenzaniso, "usanyore semuenzaniso, asi nyora fomu rakazara"), kuwedzera duramazwi nekuvandudza mushandisi interface (kunyanya, tinoda kupa mushandisi mukana kwete kungofuratira izwi, asi kuriwedzera muduramazwi, tichiratidza chikamu chekutaura).

Kunobva: www.habr.com

Voeg