Manohy miresaka momba ny tetikasan'ny hackathon DevDays lohataona isika, izay nandraisan'ny mpianatra ny programa master.
Raha ny marina, tianay ny manasa ny mpamaky hanatevin-daharana
Telegram Desktop Voice Message Parser
Mpanoratra ny hevitra
Khoroshev Artyom
Milahatra
Khoroshev Artem - mpitantana ny tetikasa / mpamorona / QA
Eliseev Anton - mpandinika raharaham-barotra / manam-pahaizana momba ny varotra
Maria Kuklina - mpamorona / mpamorona UI
Bakhvalov Pavel - mpamorona / mpamorona / QA
Raha ny fomba fijerinay, Telegram dia iraka maoderina sy mora, ary ny dikan-PC dia malaza sy loharano misokatra, izay ahafahana manova azy. Ny mpanjifa dia manolotra fampiasa tena manankarena. Ho fanampin'ny hafatra an-tsoratra mahazatra dia misy antso an-telefaona, hafatra video ary hafatra an-peo. Ary ity farany no miteraka fahasahiranana ho an'ny mpandray azy. Matetika dia tsy azo atao ny mihaino hafatra feo rehefa eo amin'ny solosaina na solosaina. Mety hisy tabataba manodidina, tsy fahampian'ny Γ©couteur, na tsy tianao ho ren'ny olona ny votoatin'ny hafatra. Ny olana toy izany dia saika tsy mipoitra mihitsy raha mampiasa Telegram amin'ny finday avo lenta ianao, satria azonao atao ny mitondra azy ho eo an-tsofinao, fa tsy toy ny solosaina finday na PC. Niezaka namaha ity olana ity izahay.
Ny tanjon'ny tetikasanay tao amin'ny DevDays dia ny hanampy ny fahafahana mandika ireo hafatra an-peo voaray ho lahatsoratra amin'ny mpanjifa Desktop Telegram (antsoina hoe Telegram Desktop).
Ny analogues rehetra amin'izao fotoana izao dia bots izay ahafahanao mandefa hafatra audio ary mahazo lahatsoratra ho valin'izany. Tsy dia faly loatra amin'izany izahay: tsy dia mety loatra ny fandefasana hafatra amin'ny bot; te hanana fampiasa teratany izahay. Fanampin'izany, ny bota rehetra dia antoko fahatelo miasa ho mpanelanelana eo amin'ny API fanekena ny kabary sy ny mpampiasa, ary izany, fara fahakeliny, dia tsy azo antoka.
Araka ny nomarihina teo aloha, ny telegram-desktop dia manana tombony lehibe roa: mora sy haingana. Ary tsy kisendrasendra izany, satria voasoratra tanteraka ao amin'ny C ++. Ary satria nanapa-kevitra ny hampiditra fiasa vaovao mivantana amin'ny mpanjifa izahay, dia tsy maintsy namolavola azy tao amin'ny C++ izahay.
Nisy olona 4 tao amin'ny ekipanay. Tamin'ny voalohany, nisy olona roa nitady tranomboky sahaza ho an'ny fanekena ny kabary, ny iray nianatra ny loharanon-kaody Telegram-desktop, ny iray kosa nampiasa ny tetikasa fananganana.
Toa tsy ho sarotra ny fampiharana ny fampiasa nokasaina, fa, toy ny mitranga foana, dia nisy olana.
Ny vahaolana amin'ny olana dia misy zana-asa tsy miankina roa: misafidy fitaovana famantarana ny kabary mety sy fampiharana UI ho an'ny fiasa vaovao.
Rehefa nisafidy tranomboky ho an'ny fanekena feo izahay dia tsy maintsy nandao avy hatrany ny API rehetra ivelan'ny aterineto, satria maka toerana be ny maodely fiteny. Fa fiteny iray ihany no resahina. Nanjary nazava fa tsy maintsy mampiasa ny API an-tserasera izahay. Taty aoriana dia hita fa tsy maimaim-poana mihitsy ny serivisy famantarana ny kabarin'ireo goavambe toa an'i Google, Yandex ary Microsoft, ary tsy maintsy mionona amin'ny fotoam-pitsarana isika. Vokatr'izany dia voafidy ny Google Speech-To-Text satria ahafahanao mahazo token'ny fampiasana ny serivisy, izay haharitra mandritra ny herintaona.
Ny olana faharoa sendra anay dia mifandraika amin'ny lesoka sasany amin'ny C ++ - zoo amin'ny tranomboky isan-karazany raha tsy misy tahiry foibe. Izany no mitranga fa ny Telegram Desktop dia miankina amin'ny tranomboky manokana maro hafa. Ny tahiry ofisialy dia manana
Ny Telegram Desktop mihitsy dia mila fotoana lava vao mivory: amin'ny solosaina misy Intel Core i5-7200U, ny fivoriambe feno (faneva -j 4) miaraka amin'ny fiankinan-doha rehetra dia maharitra adiny telo eo ho eo. Amin'ireo, eo amin'ny 30 minitra eo ho eo dia alaina amin'ny fampifandraisana ny mpanjifa mihitsy (taty aoriana dia hita fa ao amin'ny fanamafisana Debug, mila 10 minitra eo ho eo ny fampifandraisana), fa ny dingana fampifandraisana dia tsy maintsy averina isaky ny manao fanovana.
Na dia teo aza ny olana, dia nahavita nampihatra ny hevitra noforonina, ary koa ny fanavaozana
Araka ny hevitray dia hita ho porofon'ny foto-kevitra tsara amin'ny fiasa izay mety ho an'ny mpampiasa maro. Manantena izahay fa hahita izany amin'ny famoahana ho avy amin'ny Telegram Desktop.
Fanohanana ny fiteny voajanahary nohatsaraina ao amin'ny IntelliJ IDEA
Mpanoratra ny hevitra
Tankov Vladislav
Milahatra
Tankov Vladislav (mpitarika ekipa, miara-miasa amin'ny LanguageTool sy IntelliJ IDEA)
Nikita Sokolov (miasa amin'ny LanguageTool ary mamorona UI)
Khvorov Alexander (miara-miasa amin'ny LanguageTool ary manatsara ny fampisehoana)
Sadovnikov Alexander (fanohanana amin'ny fanaparitahana fiteny sy kaody marika)
Namorona plugin iray ho an'ny IntelliJ IDEA izahay izay manamarina lahatsoratra isan-karazany (fanehoan-kevitra sy antontan-taratasy, tsipika ara-bakiteny amin'ny kaody, lahatsoratra formata amin'ny Markdown na XML markup) ho an'ny fitsipi-pitenenana, tsipelina ary stylistic (amin'ny teny anglisy dia antsoina hoe proofreading).
Ny hevitr'ilay tetikasa dia ny hanitarana ny tsipelina mahazatra IntelliJ IDEA amin'ny haavon'ny Grammarly, mba hanaovana karazana Grammarly ao anaty IDE.
Hitanao ny zava-nitranga
Eny ary, eto ambany isika dia hiresaka amin'ny antsipiriany bebe kokoa momba ny fahaiza-manaon'ny plugin, ary koa ny fahasarotana nitranga nandritra ny famoronana azy.
motivation
Betsaka ny vokatra natao hanoratana lahatsoratra amin'ny fiteny voajanahary, fa ny antontan-taratasy sy ny fanehoan-kevitry ny kaody dia matetika nosoratana tamin'ny tontolo fampandrosoana. Mandritra izany fotoana izany, ny IDE dia manao asa tsara amin'ny fitadiavana lesoka amin'ny fehezan-dalΓ na, saingy tsy mety amin'ny lahatsoratra amin'ny fiteny voajanahary. Izany dia manamora ny fanaovana fahadisoana amin'ny fitsipi-pitenenana, mari-piatoana, na fomba tsy misy ny tontolo fampandrosoana manondro azy ireo. Tena zava-dehibe ny manao fahadisoana amin'ny fanoratana ny mpampiasa interface tsara, satria izany dia hisy fiantraikany tsy ny fahatakarana ny fehezan-dalΓ na, fa koa ny mpampiasa ny fampiharana novolavolaina.
Iray amin'ireo tontolo fampandrosoana malaza sy mandroso indrindra ny IntelliJ IDEA, ary koa ny IDE mifototra amin'ny IntelliJ Platform. IntelliJ Platform dia efa manana tsipelina naorina, saingy tsy manala na dia ny fahadisoana ara-pitsipi-pitenenana tsotra indrindra aza. Nanapa-kevitra ny hampiditra ny iray amin'ireo rafitra famakafakana fiteny voajanahary malaza amin'ny IntelliJ IDEA izahay.
fanatanterahana
Tsy nametraka ny tenanay izahay hamorona rafitra fanamarinana lahatsoratra manokana, noho izany dia nampiasa vahaolana efa misy izahay. Ny safidy mety indrindra dia nivadika ho
Ny code plugin dia ao
olana
Vetivety dia tsikaritray fa raha mamahana ny lahatsoratra rehetra amin'ny LanguageTool izahay mba hojerena isaky ny mandeha, dia hivaingana ny interface IDEA amin'ny lahatsoratra lehibe kokoa na tsy dia matotra, satria ny fisafoana mihitsy no manakana ny fikorianan'ny UI. Voavaha ny olana tamin'ny alΓ lan'ny fanamarinana `ProgressManager.checkCancelled` - ity fiasa ity dia manipy fanavahana raha mino ny IDEA fa tonga ny fotoana hanajanonana ny fisafoana.
Izany dia nanafoana tanteraka ny fandriam-pahalemana, saingy tsy azo ampiasaina: ny lahatsoratra dia mila fotoana be ny fikarakarana. Ambonin'izany, amin'ny tranga misy antsika, matetika dia ampahany kely amin'ny lahatsoratra no miova ary te-hitahiry ny valiny isika. Izany indrindra no nataonay. Mba tsy hanamarinana ny zava-drehetra, dia nozarainay ho tapatapaka ny lahatsoratra ary izay niova ihany no nojerenay. Koa satria ny lahatsoratra dia mety ho lehibe ary tsy te hampiditra ny cache izahay, tsy ny lahatsoratra ihany no notahirizinay, fa ny hash azy. Izany dia namela ny plugin hiasa tsara na dia amin'ny rakitra lehibe aza.
LanguageTool dia manohana fiteny 25 mahery, saingy tsy azo inoana fa misy mpampiasa iray mila azy rehetra. Te-hanome fahafahana hisintona tranomboky ho an'ny fiteny manokana aho raha angatahina (raha asianao azy ao amin'ny UI). Nampihatra izany aza izahay, saingy hita fa sarotra loatra sy tsy azo ianteherana. Indrindra indrindra, tsy maintsy nampiditra LanguageTool miaraka amin'ny andian-teny vaovao amin'ny fampiasana classloader misaraka izahay, ary avy eo dia amboary tsara izany. Nandritra izany fotoana izany, ny trano famakiam-boky rehetra dia tao amin'ny mpampiasa .m2 repository, ary isaky ny fanombohana dia tsy maintsy nanamarina ny fahamarinany izahay. Tamin'ny farany, nanapa-kevitra izahay fa raha manana olana amin'ny haben'ny plugin ny mpampiasa, dia hanome plugin mitokana ho an'ny fiteny malaza indrindra izahay.
Taorian'ny hackathon
Nifarana ny hackathon, saingy nitohy niaraka tamin'ny ekipa tery kokoa ny asa amin'ny plugin. Te hanohana tady, fanehoan-kevitra, ary na dia ny fananganana fiteny toy ny anarana miovaova sy ny kilasy aza aho. Amin'izao fotoana izao dia tsy tohana afa-tsy amin'ny Java, Kotlin ary Python izany, saingy manantena izahay fa hitombo ity lisitra ity. Nanamboatra bibikely kely maro izahay ary nifanaraka kokoa tamin'ny mpitsikilo tsipelina an'i Idea. Fanampin'izany, nipoitra ny fanohanana XML sy ny fitsirihana tsipelina. Izany rehetra izany dia hita ao amin'ny dikan-teny faharoa, izay navoakanay vao haingana.
Inona ny manaraka?
Ny plugin toy izany dia mety tsy ho an'ny mpamorona ihany, fa koa ho an'ny mpanoratra teknika (matetika miasa, ohatra, miaraka amin'ny XML amin'ny IDE). Isan'andro dia tsy maintsy miasa amin'ny fiteny voajanahary izy ireo, tsy manana mpanampy amin'ny endrika toro-hevitra momba ny tonian-dahatsoratra momba ny fahadisoana mety hitranga. Ny pluginy dia manome soso-kevitra toy izany ary manao izany amin'ny fahamendrehana avo lenta.
Mikasa ny hamolavola ny plugin izahay, amin'ny alΓ lan'ny fampidirana fiteny vaovao na amin'ny fijerena fomba fiasa ankapobeny amin'ny fandaminana ny fanamarinana lahatsoratra. Ny drafitray avy hatrany dia ahitana ny fampiharana ny mombamomba ny stylistic (fitsipika izay mamaritra ny torolΓ lana momba ny fomba ho an'ny lahatsoratra, ohatra, "aza manoratra, ohatra, fa soraty ny endrika feno"), fanitarana ny rakibolana ary fanatsarana ny interface interface (indrindra, tianay ny hanome ny mpampiasa fahafahana tsy hiraharaha teny fotsiny, fa hanampy azy ao amin'ny rakibolana, manondro ny ampahany amin'ny kabary).
Loharano: www.habr.com