Hackathon DevDays'19 (karolo ea 2): sekhetho sa molaetsa oa molumo bakeng sa Telegraph le ho hlahloba sebōpeho-puo ho IntelliJ IDEA

Re tsoela pele ho bua ka merero ea hackathon DevDays ea selemo, eo liithuti tsa lenaneo la master li ileng tsa kenya letsoho ho tsona. "Nts'etsopele ea Software / Boenjiniere ba Software".

Hackathon DevDays'19 (karolo ea 2): sekhetho sa molaetsa oa molumo bakeng sa Telegraph le ho hlahloba sebōpeho-puo ho IntelliJ IDEA

Ka tsela, re rata ho memela babali ho kena Sehlopha sa VK sa liithuti tsa master. Ho eona re tla phatlalatsa litaba tsa morao-rao mabapi le ho hira batho le ho ithuta. Video e tsoang letsatsing le bulehileng le eona e ka fumanoa sehlopheng. Rea u hopotsa: ketsahalo e tla etsahala ka la 29 Mmesa, lintlha Online.

Telegram Desktop Molaetsa oa Molaetsa oa Lentsoe

Hackathon DevDays'19 (karolo ea 2): sekhetho sa molaetsa oa molumo bakeng sa Telegraph le ho hlahloba sebōpeho-puo ho IntelliJ IDEA

Mongoli oa mohopolo
Khoroshev Artyom

Sebopeho sa taelo

Khoroshev Artem – mookameli oa morero/mohlahisi/QA
Eliseev Anton - setsebi sa khoebo / setsebi sa papatso
Maria Kuklina – Moqapi/moqapi oa UI
Bakhvalov Pavel – UI moqapi/moetsi/QA

Ho ea ka pono ea rona, Telegraph ke lenģosa la sejoale-joale ebile le bonolo, 'me mofuta oa PC oa eona oa tsebahala ebile ke mohloli o bulehileng, o etsang hore ho khonehe ho o fetola. Moreki o fana ka ts'ebetso e ruileng haholo. Ntle le melaetsa e tloaelehileng ea mongolo, e na le mehala ea lentsoe, melaetsa ea video le melaetsa ea lentsoe. 'Me ke tsa morao-rao tseo ka linako tse ling li tlisang tšitiso ho motho ea li amohelang. Hangata ha ho khonehe ho mamela molaetsa oa lentsoe ha u le khomphuteng kapa laptop. Ho ka 'na ha e-ba le lerata, ho hloka li-headphone, kapa ha u batle hore mang kapa mang a utloe litaba tsa molaetsa. Mathata a joalo ha ho mohla a kileng a hlaha haeba u sebelisa Telegraph ho smartphone, hobane u ka e tlisa tsebeng ea hau, ho fapana le laptop kapa PC. Re lekile ho rarolla bothata bona.

Sepheo sa projeke ea rona ho DevDays e ne e le ho eketsa bokhoni ba ho fetolela melaetsa ea lentsoe e amoheloang ka mongolo ho moreki oa komporo ea Telegraph (eo ka mor'a moo e bitsoang Telegraph Desktop).

Li-analogue tsohle hajoale ke li-bots tseo u ka romellang molaetsa oa molumo le ho amohela mongolo ho arabela. Ha rea ​​thaba haholo ka sena: ho fetisetsa molaetsa ho bot ha ho bonolo haholo; re ka thabela ho ba le ts'ebetso ea tlhaho. Ho phaella moo, bot leha e le efe ke motho oa boraro ea sebetsang e le mokena-lipakeng pakeng tsa API ea ho tseba puo le mosebedisi, 'me sena, bonyane, ha se bolokehe.

Joalokaha ho boletsoe pejana, telegram-desktop e na le melemo e 'meli ea bohlokoa: boiketlo le lebelo la ts'ebetso. 'Me sena ha se iketsahalle feela, hobane se ngotsoe ka ho feletseng ho C ++. 'Me kaha re nkile qeto ea ho kenyelletsa tšebetso e ncha ka kotloloho ho moreki, re ile ra tlameha ho e nts'etsapele ka C ++.

Hackathon DevDays'19 (karolo ea 2): sekhetho sa molaetsa oa molumo bakeng sa Telegraph le ho hlahloba sebōpeho-puo ho IntelliJ IDEAHo ne ho e-na le batho ba 4 sehlopheng sa rona. Qalong, batho ba babeli ba ne ba batla laeborari e loketseng bakeng sa temoho ea puo, motho a le mong o ne a ithuta khoutu ea mohloli oa Telegraph-desktop, e mong o ne a tsamaisa morero oa kaho. Telegram ea Desktop. Hamorao, e mong le e mong o ne a phathahane ho lokisa UI le ho lokisa liphoso.

Ho ne ho bonahala eka ho kenya tšebetsong tšebetso e reriloeng ho ke ke ha e-ba thata, empa, joalo ka kamehla, ho ile ha hlaha mathata.

Tharollo ea bothata e ne e e-na le mesebetsi e 'meli e ikemetseng: ho khetha sesebelisoa se loketseng sa ho lemoha puo le ho kenya ts'ebetsong UI bakeng sa ts'ebetso e ncha.

Ha re khetha laeborari bakeng sa ho tseba lentsoe, hang-hang re ile ra tlameha ho lahla li-API tsohle tse kantle ho marang-rang, hobane mefuta ea lipuo e nka sebaka se sengata. Empa re bua ka puo e le nngwe feela. Ho ile ha hlaka hore re tla tlameha ho sebelisa API ea inthaneteng. Hamorao ho ile ha fumaneha hore litšebeletso tsa ho amohela puo ea linatla tse kang Google, Yandex le Microsoft ha li na mahala, 'me re tla tlameha ho khotsofalla nako ea teko. Ka lebaka leo, Google Speech-To-Text e khethiloe hobane e u lumella ho fumana letšoao bakeng sa ho sebelisa tšebeletso, e tla tšoarella selemo kaofela.

Bothata ba bobeli boo re kopaneng le bona bo amana le bofokoli bo bong ba C++ - sebaka sa polokelo ea liphoofolo sa lilaebrari tse fapaneng ha ho se na polokelo e bohareng. Hoa etsahala hore Telegraph Desktop e ipapisitse le lilaebrari tse ling tse ngata tse ikhethileng. Sebaka sa polokelo ea molao se na le buka bakeng sa ho kopanya morero. Hape le palo e kholo ea litaba tse bulehileng mabapi le mathata a ho aha, mohlala linako и два. Mathata ohle a ne a amana le taba ea hore mongolo oa mohaho o ngotsoe bakeng sa Ubuntu 14.04, 'me e le ho atleha ho haha ​​thelekramo tlas'a Ubuntu 18.04, liphetoho li ne li lokela ho etsoa.

Telegraph Desktop ka boeona e nka nako e telele ho bokana: ho laptop e nang le Intel Core i5-7200U, kopano e felletseng (folakha -j 4) e nang le litšepiso tsohle e nka lihora tse ka bang tharo. Ho tsena, metsotso e ka bang 30 e nkuoa ka ho hokahanya moreki ka boeona (hamorao ho ile ha fumaneha hore ho tlhophiso ea Debug, ho hokahanya ho nka metsotso e ka bang 10), leha ho le joalo sethala sa ho hokahanya se tlameha ho phetoa nako le nako kamora ho etsa liphetoho.

Leha ho na le mathata, re khonne ho kenya ts'ebetsong mohopolo o qapiloe, hammoho le ho ntlafatsa haha script bakeng sa Ubuntu 18.04. Pontšo ea mosebetsi e ka bonoa ho kgokahanyo. Hape re kenyelletsa lipopae tse 'maloa. Ho hlahile konopo haufi le melaetsa eohle ea lentsoe, e u lumellang hore u fetolele molaetsa ka mongolo. Ka ho tobetsa ka ho le letona, o ka hlakisa puo e tla sebelisoa bakeng sa khaso. Ka kgokahanyo moreki e teng bakeng sa download.

Sebaka sa polokelo.

Ka maikutlo a rona, e ile ea e-ba Bopaki bo botle ba Khopolo ea ts'ebetso e neng e tla ba bonolo ho basebelisi ba bangata. Re ts'epa hore re tla e bona likhatisong tse tlang tsa Telegraph Desktop.

Tšehetso e Ntlafetseng ea Puo ea Tlhaho ho IntelliJ IDEA

Hackathon DevDays'19 (karolo ea 2): sekhetho sa molaetsa oa molumo bakeng sa Telegraph le ho hlahloba sebōpeho-puo ho IntelliJ IDEA

Mongoli oa mohopolo

Tankov Vladislav

Sebopeho sa taelo

Tankov Vladislav (moetapele oa sehlopha, ea sebetsang le LanguageTool le IntelliJ IDEA)
Nikita Sokolov (ho sebetsa le LanguageTool le ho theha UI)
Khvorov Alexander (ho sebetsa le LanguageTool le ho ntlafatsa tshebetso)
Sadovnikov Alexander (tšehetso bakeng sa ho arola lipuo le khoutu)

Re thehile plugin ea IntelliJ IDEA e hlahlobang litemana tse fapaneng (litlhaloso le litokomane, mela ea sebele ka khoutu, mongolo o hlophisitsoeng ka Markdown kapa XML markup) bakeng sa ho nepahala ha sebōpeho-puo, mopeleto le setaele (ka Senyesemane sena se bitsoa tlhahlobo ea liphoso).

Morero oa morero e ne e le ho holisa cheke e tloaelehileng ea IntelliJ IDEA ho isa tekanyong ea Grammarly, ho etsa mofuta oa Grammarly kahare ho IDE.

O ka bona se ileng sa etsahala link tsa.

Hantle, ka tlase re tla bua ka ho qaqileng haholoanyane ka bokhoni ba plugin, hammoho le mathata a ileng a hlaha nakong ea pōpo ea eona.

Tšusumetso

Ho na le lihlahisoa tse ngata tse etselitsoeng ho ngola mongolo ka lipuo tsa tlhaho, empa litokomane le litlhaloso tsa khoutu hangata li ngoloa libakeng tsa nts'etsopele. Ka nako e ts'oanang, li-IDE li etsa mosebetsi o motle oa ho fumana liphoso ka khoutu, empa ha li tšoanelehe hantle bakeng sa litemana tsa lipuo tsa tlhaho. Sena se etsa hore ho be bonolo haholo ho etsa liphoso ka sebōpeho-puo, matšoao a puo kapa setaele ntle le hore tikoloho ea nts'etsopele e li bontše. Ho bohlokoa haholo ho etsa phoso ka ho ngola sebopeho sa mosebelisi, kaha sena se ke ke sa ama kutloisiso ea khoutu feela, empa le basebelisi ba ts'ebeliso e ntlafalitsoeng ka bobona.

E 'ngoe ea libaka tsa nts'etsopele tse tsebahalang haholo le tse tsoetseng pele ke IntelliJ IDEA, hammoho le li-IDE tse thehiloeng ho IntelliJ Platform. IntelliJ Platform e se e ntse e na le spellchecker e hahelletsoeng ka hare, empa ha e tlose le liphoso tse bonolo tsa sebōpeho-puo. Re nkile qeto ea ho kenyelletsa e 'ngoe ea litsamaiso tse tsebahalang tsa tlhahlobo ea puo ea tlhaho ho IntelliJ IDEA.

Ts'ebetsong

Hackathon DevDays'19 (karolo ea 2): sekhetho sa molaetsa oa molumo bakeng sa Telegraph le ho hlahloba sebōpeho-puo ho IntelliJ IDEAHa rea ​​ka ra ipehela mosebetsi oa ho iketsetsa mokhoa oa rona oa ho netefatsa mongolo, kahoo re sebelisitse tharollo e teng. Khetho e nepahetseng ka ho fetisisa e bile Sesebediswa sa Puo. Laesense e re lumelletse ho e sebelisa ka bolokolohi molemong oa rona: ke mahala, e ngotsoe ka Java le mohloli o bulehileng. Ntle le moo, e ts'ehetsa lipuo tse 25 mme esale e nts'etsopele ka lilemo tse fetang leshome le metso e mehlano. Leha e bulehile, LanguageTool ke tlholisano e matla ea tharollo ea netefatso ea mongolo, 'me taba ea hore e ka sebetsa sebakeng sa heno ke karolo ea eona e bolaeang.

Khoutu ea plugin e kene libaka tsa polokelo ho GitHub. Morero oohle o ngotsoe Kotlin ka tlatsetso e nyane ea Java bakeng sa UI. Nakong ea hackathon, re khonne ho kenya ts'ehetso bakeng sa Markdown, JavaDoc, HTML le Plain Text. Kamora hackathon, ntlafatso e kholo e ekelitse tšehetso bakeng sa XML, likhoele tsa likhoele ho Java, Kotlin le Python, le tlhahlobo ea mopeleto.

Mathata

Ka potlako re ile ra hlokomela hore haeba re fepa mongolo oohle ho LanguageTool hore e hlahlojoe nako le nako, sebopeho sa IDEA se tla hoama ho mongolo o mong kapa o seng bobebe, kaha tlhahlobo ka boeona e thibela phallo ea UI. Bothata bo rarollotsoe ka ho hlahloba `ProgressManager.checkCancelled` - ts'ebetso ena e etsa mokhelo haeba IDEA e lumela hore ke nako ea ho emisa tlhahlobo.

Sena se felisitse ka ho feletseng li-freezes, empa ho ke ke ha khoneha ho sebelisa: mongolo o nka nako e telele haholo ho sebetsa. Ho feta moo, molemong oa rona, hangata karolo e nyane haholo ea mongolo e fetoha mme re batla ho boloka liphetho ka tsela e itseng. Ke sona seo re se entseng hantle. E le hore re se ke ra hlahloba ntho e 'ngoe le e' ngoe ka nako e 'ngoe le e' ngoe, re ile ra arola sengoloa ka mokhoa o ikhethileng 'me ra hlahloba feela tse neng li fetohile. Kaha litemana li ka ba kholo 'me re ne re sa batle ho kenya cache, ha rea ​​boloka litemana ka botsona, empa li-hashes tsa tsona. Sena se ile sa lumella plugin hore e sebetse hantle esita le lifaeleng tse kholo.

LanguageTool e tšehetsa lipuo tse fetang 25, empa ha ho na monyetla oa hore mosebelisi a le mong a li hloke kaofela. Ke ne ke batla ho fana ka monyetla oa ho khoasolla lilaeborari bakeng sa puo e itseng ha u e kopa (haeba u e tšoaea ho UI). Re bile ra kenya sena ts'ebetsong, empa ho ile ha bonahala e le thata haholo ebile e sa tšepahale. Haholo-holo, re ile ra tlameha ho kenya LanguageTool ka lipuo tse ncha re sebelisa sephutheloana se arohaneng, ebe re se qala ka hloko. Ka nako e tšoanang, lilaebrari tsohle li ne li le polokelong ea mosebelisi .m2, ’me qalong e ’ngoe le e ’ngoe re ne re lokela ho hlahloba botšepehi ba tsona. Qetellong, re ile ra etsa qeto ea hore haeba basebelisi ba ne ba e-na le mathata ka boholo ba plugin, joale re tla fana ka plugin e arohaneng bakeng sa lipuo tse ngata tse ratoang ka ho fetisisa.

Ka mor'a hackathon

Hackathon e felile, empa mosebetsi ho plugin o ile oa tsoela pele ka sehlopha se moqotetsane. Ke ne ke batla ho tšehetsa likhoele, litlhaloso, esita le lihahi tsa lipuo tse kang mabitso a fapaneng le a lihlopha. Hona joale sena se tšehetsoa feela bakeng sa Java, Kotlin le Python, empa re tšepa hore lenane lena le tla hōla. Re lokisitse litšitšili tse ngata tse nyane 'me ra tloaelana le Idea's ahelle-in spellchecker. Ho feta moo, tšehetso ea XML le tlhahlobo ea mopeleto li hlahile. Tsena tsohle li ka fumanoa phetolelong ea bobeli, eo re e hatisitseng haufinyane.

Ke'ng e latelang?

Plugin e joalo e ka ba molemo eseng feela ho bahlahisi, empa le ho bangoli ba theknoloji (hangata ba sebetsa, ka mohlala, ka XML ka IDE). Letsatsi le leng le le leng ba tlameha ho sebetsa ka puo ea tlhaho, ntle le ho ba le mothusi ka mokhoa oa malebela a mohlophisi mabapi le liphoso tse ka bang teng. Plugin ea rona e fana ka lintlha tse joalo 'me e e etsa ka tekanyo e phahameng ea ho nepahala.
Re rera ho nts'etsapele plugin, ka ho kenyelletsa lipuo tse ncha le ka ho hlahloba mokhoa o akaretsang oa ho hlophisa tlhahlobo ea mongolo. Merero ea rona ea hang-hang e kenyelletsa ts'ebetsong ea li-profiles tsa setaele (lihlopha tsa melao e hlalosang tataiso ea setaele bakeng sa mongolo, mohlala, "u se ke ua ngola mohlala, empa ngola foromo e felletseng"), ho atolosa buka ea mantsoe le ho ntlafatsa sebopeho sa mosebelisi (haholo-holo, re batla ho fa mosebedisi monyetla, eseng feela ho iphapanyetsa lentsoe, empa ho le kenya bukeng e hlalosang mantsoe, ho bontša karolo ea puo).

Mohloli: www.habr.com

Eketsa ka tlhaloso