Siqhubeka sithetha ngeeprojekthi ze-hackathon ye-spring DevDays, apho abafundi beprogram yenkosi bathatha inxaxheba.
Ngendlela, singathanda ukumema abafundi ukuba bajoyine
I-Telegram Desktop Voice Message Parser
Umbhali wembono
Khoroshev Artyom
Ukuma kweQela
Khoroshev Artem β umphathi weprojekthi/umphuhlisi/QA
Eliseev Anton - umhlalutyi wezoshishino / ingcali yokuthengisa
UMaria Kuklina β umyili/umphuhlisi we-UI
Bakhvalov Pavel β umyili we-UI/umphuhlisi/QA
Ngokombono wethu, iTelegram sisithunywa sanamhlanje nesifanelekileyo, kwaye inguqulelo yePC idumile kwaye ingumthombo ovulekileyo, okwenza kube lula ukuyiguqula. Umxhasi unika umsebenzi otyebileyo. Ukongeza kwimiyalezo ebhaliweyo eqhelekileyo, iqulethe iifowuni zelizwi, imiyalezo yevidiyo, kunye nemiyalezo yelizwi. Kwaye yeyokugqibela ethi ngamanye amaxesha izise ukuphazamiseka kumamkeli wabo. Ngokuqhelekileyo akunakwenzeka ukumamela umyalezo welizwi ngelixa ukwikhompyuter okanye ilaptop. Kusenokubakho ingxolo ye-ambient, ukungabikho kwee-headphones, okanye awufuni nabani na ukuba eve umxholo womyalezo. Iingxaki ezinjalo phantse azinakuvela ukuba usebenzisa iTelegram kwi-smartphone, kuba unokuyibeka nje endlebeni yakho, ngokungafaniyo nelaptop okanye iPC. Sizamile ukusombulula le ngxaki.
Injongo yeprojekthi yethu kwi-DevDays ibikukongeza ukukwazi ukuguqulela imiyalezo yelizwi efunyenweyo kwisicatshulwa kumxhasi wedesktop yeTelegram (ekwabizwa ngokuba yiTelegram Desktop).
Zonke ii-analogue okwangoku zi-bots onokuthumela kuzo umyalezo ovakalayo kwaye ufumane isicatshulwa ekuphenduleni. Asonwabanga kakhulu yile: ukuthumela umyalezo kwi-bot akulunganga kakhulu; singathanda ukuba nomsebenzi womthonyama. Ukongeza, nayiphi na i-bot ngumntu wesithathu osebenza njengomlamli phakathi kwe-API yokuqaphela intetho kunye nomsebenzisi, kwaye oku, ubuncinci, akukhuselekanga.
Njengoko kuphawuliwe ngaphambili, i-telegram-desktop ineenzuzo ezimbini ezibalulekileyo: ukukhululeka kunye nesantya sokusebenza. Kwaye oku akuqhelekanga, kuba kubhalwe ngokupheleleyo kwi-C ++. Kwaye ekubeni sigqibe ekubeni songeze ukusebenza okutsha ngokuthe ngqo kumxhasi, kuye kwafuneka siyiphuhlise kwi-C ++.
Bekukho abantu aba-4 kwiqela lethu. Ekuqaleni, abantu ababini babekhangela ithala leencwadi elifanelekileyo lokuqondwa kwentetho, umntu omnye wayefunda ikhowudi yomthombo weTelegram-desktop, omnye wayehambisa iprojekthi yokwakha.
Kwakubonakala ngathi ukuphumeza umsebenzi ocetywayo kwakungayi kuba nzima, kodwa, njengokuba kusenzeka rhoqo, kwavela ubunzima.
Isisombululo kule ngxaki sasiquka imisebenzi engaphantsi emibini ezimeleyo: ukukhetha isixhobo esifanelekileyo sokuqaphela intetho kunye nokuphumeza i-UI yokusebenza okutsha.
Xa sikhetha ithala leencwadi lokuqondwa kwelizwi, kwangoko kuye kwafuneka silahle zonke ii-API ezingaxhunyiwe kwi-intanethi, kuba iimodeli zolwimi zithatha indawo enkulu. Kodwa sithetha ngolwimi olunye kuphela. Kwacaca ukuba kuya kufuneka sisebenzise i-API ye-intanethi. Kamva kwavela ukuba iinkonzo zokuqatshelwa kwentetho yezikhulu ezifana neGoogle, Yandex kunye neMicrosoft azikho simahla, kwaye kuya kufuneka saneliswe lixesha lovavanyo. Ngenxa yoko, i-Google Speech-To-Text yakhethwa kuba ikuvumela ukuba ufumane ithokheni yokusebenzisa inkonzo, eya kuhlala unyaka wonke.
Ingxaki yesibini esiye sadibana nayo inxulumene nezinye zeentsilelo ze-C++ - indawo yogcino-zilwanyana yamathala eencwadi ahlukeneyo ngokungabikho kwendawo yokugcina indawo esembindini. Kuyenzeka ukuba iTelegram yeDesktop ixhomekeke kwezinye iilayibrari ezininzi ezikhethekileyo. Uvimba osemthethweni uye
I-Telegram Desktop ngokwayo ithatha ixesha elide ukudibanisa: kwi-laptop ene-Intel Core i5-7200U, indibano epheleleyo (iflegi -j 4) nako konke ukuxhomekeka kuthatha malunga neeyure ezintathu. Kule, malunga nemizuzu ye-30 ithathwa ngokudibanisa umxhasi ngokwawo (kamva kwavela ukuba kwi-Debug Configuration, ukudibanisa kuthatha malunga nemizuzu eyi-10), kwaye kunjalo isigaba sokudibanisa kufuneka siphindwe rhoqo emva kokwenza utshintsho.
Ngaphandle kweengxaki, sikwazile ukuzalisekisa umbono owenziweyo, kunye nokuhlaziya
Ngokombono wethu, kuye kwaba bubungqina obuhle beNgcaciso yokusebenza eya kuba lula kubasebenzisi abaninzi. Sinethemba lokuyibona kukhupho oluzayo lweTelegram yeDesktop.
Inkxaso yoLwimi lweNdalo olwandisiweyo kwi-IntelliJ IDEA
Umbhali wembono
Tankov Vladislav
Ukuma kweQela
UTankov Vladislav (iqela elikhokelayo, elisebenza neLanguageTool kunye ne-IntelliJ IDEA)
UNikita Sokolov (esebenza nge-LanguageTool kunye nokudala i-UI)
Khvorov Alexander (esebenza ngeLanguageTool kunye nokwenza ngcono ukusebenza)
Sadovnikov Alexander (inkxaso yokwahlulahlula ulwimi kunye nekhowudi)
Siye saqulunqa iplagin ye-IntelliJ IDEA ehlola izicatshulwa ezahlukeneyo (amagqabantshintshi kunye namaxwebhu, imigca yokwenyani kwikhowudi, umbhalo olungiselelwe kwi-Markdown okanye i-XML markup) yokuchaneka kwegrama, upelo kunye nesimbo (ngesiNgesi oku kubizwa ngokuba yi-proofreading).
Umbono weprojekthi yayikukukhulisa i-spellcheck esemgangathweni ye-IntelliJ IDEA ukuya kwisikali seGrammarly, ukwenza uhlobo lweGrammarly ngaphakathi kwe-IDE.
Uyayibona into eyenzekayo
Ewe, ngezantsi siza kuthetha ngokubanzi malunga nobuchule beplagin, kunye nobunzima obavela ngexesha lokudalwa kwayo.
Isizathu
Zininzi iimveliso ezenzelwe ukubhala isicatshulwa ngeelwimi zendalo, kodwa amaxwebhu kunye nekhowudi yamazwana ahlala ebhalwa kwiindawo zophuhliso. Kwangaxeshanye, ii-IDE zenza umsebenzi oncomekayo wokufumana iimpazamo kwikhowudi, kodwa azifanelekanga kakuhle kwiitekisi zeelwimi zendalo. Oku kwenza kube lula kakhulu ukwenza iimpazamo kwigrama, iziphumlisi, okanye isimbo ngaphandle kophuhliso lwemekobume ebalathayo. Kubaluleke kakhulu ukwenza impazamo ekubhaleni ujongano lomsebenzisi, kuba oku akuyi kuchaphazela kuphela ukuqonda kwekhowudi, kodwa nabasebenzisi besicelo esiphuhlisiweyo ngokwabo.
Enye yezona ndawo zidumileyo kunye neziphuhlisiwe zophuhliso yi-IntelliJ IDEA, kunye nee-IDE ezisekelwe kwi-IntelliJ Platform. I-IntelliJ Platform sele inesikhangeli sokupela esakhelwe ngaphakathi, kodwa ayisusi kwa ezona mpazamo zilula zegrama. Siye sagqiba ekubeni sidibanise enye yeenkqubo ezithandwayo zokuhlalutya ulwimi lwendalo kwi-IntelliJ IDEA.
Ukuphunyezwa
Asizange sizibekele umsebenzi wokudala inkqubo yethu yokuqinisekisa isicatshulwa, ngoko sisebenzise isisombululo esele sikhona. Eyona ndlela ifanelekileyo yajika yaba
Ikhowudi yeplagi ingaphakathi
Ubunzima
Ngokukhawuleza siye saqaphela ukuba ukuba sondla yonke itekisi kwi-LanguageTool ukuze ihlolwe ngalo lonke ixesha, ngoko ujongano lwe-IDEA luya kukhenkceka nakweyiphi na itekisi ebaluleke kakhulu, kuba uhlolo ngokwalo luvalela ukuhamba kwe-UI. Ingxaki yasonjululwa nge `ProgressManager.checkCancelled` khangela - lo msebenzi uphosa umkhethe ukuba i-IDEA ikholelwa ekubeni lixesha lokulahla uhlolo.
Oku kuphelisa ngokupheleleyo ukukhenkceza, kodwa akunakwenzeka ukusebenzisa: isicatshulwa sithatha ixesha elide ukuqhubekeka. Ngaphezu koko, kwimeko yethu, amaxesha amaninzi inxalenye encinci yesicatshulwa iyatshintsha kwaye sifuna ukugcina iziphumo ngandlela-thile. Yiloo nto kanye esayenzayo. Ukuze singajongi yonke into ngalo lonke ixesha, sizimisele ukwahlula isicatshulwa sibe ziziqwenga kwaye sajonga kuphela ezo zitshintshileyo. Ekubeni iitekisi zinokuba zikhulu kwaye asizange sifune ukulayisha i-cache, asigcinanga izibhalo ngokwazo, kodwa i-hashes yazo. Oku kwavumela iplagin ukuba isebenze kakuhle nakwiifayile ezinkulu.
LanguageTool ixhasa ngaphezu kweelwimi ezingama-25, kodwa akunakwenzeka ukuba nawuphi na umsebenzisi azidinga zonke. Bendifuna ukunika ithuba lokukhuphela amathala eencwadi olwimi oluthile xa uceliwe (ukuba uyawuphawula kwi-UI). Sade sayiphumeza le nto, kodwa yajika yantsonkotha kakhulu kwaye ayithembekanga. Ngokukodwa, kuye kwafuneka silayishe i-LanguageTool ngeseti entsha yeelwimi sisebenzisa isilayishi esahlukileyo, kwaye emva koko siyiqalise ngononophelo. Kwangaxeshanye, onke amathala eencwadi akwindawo yogcino .m2 yomsebenzisi, kwaye kwisiqalo ngasinye kwafuneka sihlole ingqibelelo yazo. Ekugqibeleni, sigqibe kwelokuba ukuba abasebenzisi baneengxaki ngobungakanani beplagin, ngoko siya kubonelela ngeplagi eyahlukileyo kwiilwimi ezininzi ezidumileyo.
Emva kwe-hackathon
I-hackathon iphelile, kodwa umsebenzi kwi-plugin waqhubeka neqela elincinane. Bendifuna ukuxhasa imitya, izimvo, kunye nolwakhiwo lolwimi olunje ngamagama aguquguqukayo kunye namagama eklasi. Okwangoku oku kuxhaswa kuphela iJava, iKotlin kunye nePython, kodwa sinethemba lokuba olu luhlu luya kukhula. Silungise iibhugi ezincinci ezininzi kwaye sihambelane ngakumbi ne-Idea eyakhelwe-ngaphakathi umkhangeli wopelo. Ukongeza, inkxaso yeXML kunye nokujongwa kopelo luvele. Konke oku kunokufumaneka kwinguqulelo yesibini, esiyipapashe kutshanje.
Yintoni elandelayo?
Iplagin enjalo inokuba luncedo kungekuphela nje kubaphuhlisi, kodwa nababhali bezobugcisa (ngokuqhelekileyo basebenza, umzekelo, nge-XML kwi-IDE). Yonke imihla kufuneka basebenze ngolwimi lwendalo, ngaphandle kokuba nomncedisi ngendlela yeengcebiso zomhleli malunga neempazamo ezinokwenzeka. Iplagi yethu ibonelela ngezi ngcebiso kwaye iyenza ngezinga eliphezulu lokuchaneka.
Siceba ukuphuhlisa iplagin, zombini ngokongeza iilwimi ezintsha kunye nokuphonononga indlela eqhelekileyo yokulungelelanisa ukujonga umbhalo. Izicwangciso zethu zangoku zibandakanya ukuphunyezwa kweeprofayili zesitayela (iiseti zemithetho echaza isikhokelo sesitayela sombhalo, umzekelo, "ungabhali umz., kodwa bhala ifom epheleleyo"), ukwandisa isichazi-magama kunye nokuphucula ujongano lomsebenzisi (ngokukodwa; sifuna ukunika umsebenzisi ithuba lokungahoyi nje igama, kodwa elongeze kwisichazi-magama, ebonisa indawo yentetho).
Umthombo: www.habr.com