Peb txuas ntxiv mus tham txog cov haujlwm ntawm lub caij nplooj ntoos hlav hackathon DevDays, uas cov tub ntxhais kawm ntawm tus tswv txoj haujlwm tau koom nrog
Los ntawm txoj kev, peb xav caw cov neeg nyeem tuaj koom
Telegram Desktop Voice Message Parser
Tus sau lub tswv yim
Khoroshev Artyom
Kab-up
Khoroshev Artem β project manager/developer/QA
Eliseev Anton - tus kws tshuaj xyuas kev lag luam / tus kws tshaj lij kev lag luam
Maria Kuklina β UI designer/developer
Bakhvalov Pavel β UI designer/developer/QA
Los ntawm peb qhov kev xav, Telegram yog tus xa xov xwm niaj hnub thiab yooj yim, thiab nws cov PC version yog nrov thiab qhib qhov chaw, uas ua rau nws tuaj yeem hloov kho. Cov neeg siv khoom muaj kev nplua nuj heev. Ntxiv rau cov ntawv xov xwm txheem, nws muaj lub suab hu, video lus, thiab suab lus. Thiab nws yog qhov kawg uas qee zaum ua rau tsis yooj yim rau lawv cov neeg tau txais kev pab. Nws feem ntau tsis tuaj yeem mloog lub suab lus thaum nyob hauv computer lossis laptop. Tej zaum yuav muaj suab nrov, tsis muaj lub mloog pob ntseg, lossis koj tsis xav kom leej twg hnov ββcov ntsiab lus ntawm cov lus. Cov teeb meem zoo li no yuav luag tsis tshwm sim yog tias koj siv Telegram ntawm lub xov tooj smartphone, vim tias koj tuaj yeem nqa nws mus rau koj lub pob ntseg, tsis zoo li lub laptop lossis PC. Peb sim daws qhov teeb meem no.
Lub hom phiaj ntawm peb txoj haujlwm ntawm DevDays yog ntxiv lub peev xwm los txhais cov lus tau txais lub suab rau hauv cov ntawv rau Telegram desktop tus neeg siv khoom (tom qab no hu ua Telegram Desktop).
Tag nrho cov analogues tam sim no yog bots uas koj tuaj yeem xa cov lus thiab tau txais cov ntawv teb. Peb tsis txaus siab rau qhov no: xa xov mus rau bot tsis yooj yim heev; peb xav kom muaj kev ua haujlwm ib txwm muaj. Tsis tas li ntawd, ib qho bot yog ib tus neeg thib peb uas ua haujlwm nruab nrab ntawm cov lus lees paub API thiab tus neeg siv, thiab qhov no yog qhov tsawg kawg nkaus, tsis muaj kev nyab xeeb.
Raws li tau hais ua ntej, telegram-desktop muaj ob qhov zoo: yooj yim thiab ceev ntawm kev ua haujlwm. Thiab qhov no tsis yog coincidence, vim nws tau sau tag nrho hauv C ++. Thiab txij li thaum peb txiav txim siab ntxiv cov haujlwm tshiab ncaj qha rau cov neeg siv khoom, peb yuav tsum tsim nws hauv C ++.
Muaj 4 tus neeg nyob hauv peb pab neeg. Thaum xub thawj, ob tus neeg tab tom nrhiav rau lub tsev qiv ntawv tsim nyog rau kev paub txog kev hais lus, ib tus neeg tab tom kawm qhov chaws ntawm Telegram-desktop, lwm tus tau siv qhov project tsim.
Nws zoo nkaus li tias kev siv lub hom phiaj ua haujlwm yuav tsis yooj yim, tab sis, raws li ib txwm muaj, muaj teeb meem tshwm sim.
Txoj kev daws teeb meem muaj ob txoj haujlwm ywj pheej: xaiv cov cuab yeej paub hais lus tsim nyog thiab siv UI rau kev ua haujlwm tshiab.
Thaum xaiv lub tsev qiv ntawv rau lub suab lees paub, peb tam sim ntawd yuav tsum tso tseg tag nrho offline APIs, vim hais tias cov qauv lus siv ntau qhov chaw. Tab sis peb tab tom tham txog ib hom lus xwb. Nws tau pom tseeb tias peb yuav tau siv API online. Tom qab ntawd nws tau pom tias cov kev pabcuam kev paub txog kev hais lus ntawm cov neeg loj xws li Google, Yandex thiab Microsoft tsis yog txhua yam pub dawb, thiab peb yuav tsum tau txaus siab nrog lub sijhawm sim. Raws li qhov tshwm sim, Google Speech-To-Text tau raug xaiv vim nws tso cai rau koj kom tau txais lub cim rau kev siv cov kev pabcuam, uas yuav kav ib xyoos.
Qhov teeb meem thib ob uas peb tau ntsib yog cuam tshuam nrog qee qhov tsis txaus ntawm C ++ - lub vaj tsiaj ntawm ntau lub tsev qiv ntawv thaum tsis muaj lub hauv paus chaw cia khoom. Nws thiaj li tshwm sim tias Telegram Desktop nyob ntawm ntau lwm cov tsev qiv ntawv tshwj xeeb. Cov ntaub ntawv pov thawj muaj
Telegram Desktop nws tus kheej siv sijhawm ntev los sib sau ua ke: ntawm lub laptop nrog Intel Core i5-7200U, ua kom tiav kev sib dhos ( chij -j 4) nrog txhua qhov kev vam khom yuav siv sijhawm li peb teev. Ntawm cov no, kwv yees li 30 feeb yog coj los ntawm kev sib txuas tus neeg siv khoom nws tus kheej (tom qab ntawd nws tau pom tias hauv Debug teeb tsa, kev sib txuas yuav siv li 10 feeb), tab sis cov theem txuas yuav tsum tau rov ua dua txhua zaus tom qab hloov pauv.
Txawm hais tias muaj teeb meem, peb tau tswj hwm los siv lub tswv yim tsim, nrog rau kev hloov tshiab
Nyob rau hauv peb lub tswv yim, nws tau los ua ib tug zoo pov thawj ntawm lub tswv yim ntawm functionality uas yuav yooj yim rau ntau tus neeg siv. Peb cia siab tias yuav pom nws nyob rau yav tom ntej tso tawm ntawm Telegram Desktop.
Txhim kho Natural Language Support hauv IntelliJ IDEA
Tus sau lub tswv yim
Tankov Vladislav
Kab-up
Tankov Vladislav (pab pawg thawj coj, ua haujlwm nrog LanguageTool thiab IntelliJ IDEA)
Nikita Sokolov (ua haujlwm nrog LanguageTool thiab tsim UI)
Khvorov Alexander (ua hauj lwm nrog LanguageTool thiab optimizing kev ua tau zoo)
Sadovnikov Alexander (kev txhawb nqa rau parsing markup lus thiab code)
Peb tau tsim ib lub plugin rau IntelliJ IDEA uas kuaj xyuas ntau cov ntawv (cov lus pom thiab cov ntaub ntawv, cov kab lus hauv cov lej, cov ntawv sau hauv Markdown lossis XML markup) rau kev sau ntawv, sau ntawv thiab stylistic raug (hauv lus Askiv qhov no hu ua proofreading).
Lub tswv yim ntawm qhov project yog los nthuav cov qauv spellcheck IntelliJ IDEA rau qhov ntsuas ntawm Grammarly, ua ib hom Grammarly hauv IDE.
Koj tuaj yeem pom dab tsi tshwm sim
Zoo, hauv qab no peb yuav tham ntau ntxiv txog lub peev xwm ntawm lub plugin, nrog rau cov teeb meem uas tshwm sim thaum nws tsim.
Kev Txhawb
Muaj ntau yam khoom tsim los rau kev sau ntawv hauv cov lus ntuj, tab sis cov ntaub ntawv thiab cov lus qhia yog feem ntau sau rau hauv kev loj hlob ib puag ncig. Tib lub sijhawm, IDEs ua txoj haujlwm zoo ntawm kev nrhiav qhov yuam kev hauv cov lej, tab sis tsis zoo rau cov ntawv hauv cov lus ntuj. Qhov no ua rau nws yooj yim heev los ua yuam kev hauv cov qauv sau ntawv, cim cim, lossis cov qauv yam tsis muaj qhov kev loj hlob ib puag ncig taw qhia lawv. Nws yog qhov tseem ceeb tshaj plaws kom ua yuam kev hauv kev sau ntawv tus neeg siv interface, vim qhov no yuav cuam tshuam tsis tsuas yog kev nkag siab ntawm cov cai, tab sis kuj yog cov neeg siv ntawm daim ntawv thov tsim lawv tus kheej.
Ib qho chaw nrov tshaj plaws thiab tsim kev loj hlob yog IntelliJ IDEA, nrog rau IDEs raws li IntelliJ Platform. IntelliJ Platform twb muaj ib tug built-in spellchecker, tab sis nws tsis tau tshem ntawm txawm qhov yooj yim grammatical yuam kev. Peb tau txiav txim siab los koom ua ke ib qho ntawm cov kev tshuaj xyuas cov lus nrov hauv IntelliJ IDEA.
Kev siv
Peb tsis tau teeb tsa peb tus kheej txoj haujlwm ntawm kev tsim peb tus kheej cov ntawv pov thawj, yog li peb siv cov kev daws teeb meem uas twb muaj lawm. Qhov kev xaiv tsim nyog tshaj plaws tau muab los ua
Lub plugin code yog nyob rau hauv
Kev nyuaj
Heev sai heev peb pom tau hais tias yog peb pub tag nrho cov ntawv rau LanguageTool rau kev soj ntsuam txhua txhua lub sij hawm, ces tus IDEA interface yuav khov rau ib qho ntxiv los yog tsawg dua cov ntawv loj, vim qhov kev tshuaj ntsuam nws tus kheej thaiv cov UI ntws. Qhov teeb meem tau daws los ntawm 'ProgressManager.checkCancelled' kos - qhov haujlwm no cuam tshuam qhov kev zam yog tias IDEA ntseeg tias nws yog lub sijhawm los rho tawm qhov kev tshuaj xyuas.
Qhov no tshem tawm tag nrho cov freezes, tab sis nws yog siv tsis tau: cov ntawv nyeem yuav siv sij hawm ntev heev los ua. Ntxiv mus, nyob rau hauv peb cov ntaub ntawv, feem ntau yog ib feem me me ntawm cov ntawv nyeem hloov thiab peb xav cache cov ntsiab lus xyov. Qhov ntawd yog qhov peb tau ua. Txhawm rau kom tsis txhob kuaj xyuas txhua txhua lub sijhawm, peb txiav txim siab faib cov ntawv rau hauv daim ntawv thiab tshuaj xyuas tsuas yog cov uas tau hloov pauv. Txij li cov ntawv tuaj yeem loj thiab peb tsis xav thauj cov cache, peb tsis khaws cov ntawv lawv tus kheej, tab sis lawv cov hashs. Qhov no tso cai rau lub plugin ua haujlwm zoo txawm tias ntawm cov ntaub ntawv loj.
LanguageTool txhawb ntau tshaj 25 hom lus, tab sis nws tsis zoo li tias ib tus neeg siv xav tau tag nrho. Kuv xav muab lub sijhawm los rub cov tsev qiv ntawv rau ib hom lus tshwj xeeb thaum thov (yog tias koj zuam nws hauv UI). Peb txawm siv qhov no, tab sis nws tau dhau los ua qhov nyuaj thiab tsis ntseeg. Tshwj xeeb, peb yuav tsum thauj LanguageTool nrog cov lus tshiab uas siv cov chav kawm cais, thiab ua tib zoo pib nws. Nyob rau tib lub sijhawm, tag nrho cov tsev qiv ntawv tau nyob hauv ib tus neeg siv .m2 repository, thiab txhua qhov pib peb yuav tsum tau kuaj xyuas lawv cov kev ncaj ncees. Thaum kawg, peb txiav txim siab tias yog tias cov neeg siv muaj teeb meem nrog qhov loj ntawm lub plugin, ces peb yuav muab cov plugin cais rau ob peb hom lus nrov tshaj plaws.
Tom qab lub hackathon
Lub hackathon xaus, tab sis ua haujlwm ntawm lub plugin txuas ntxiv nrog pab pawg nqaim. Kuv xav txhawb cov hlua, cov lus pom, thiab txawm tias cov lus tsim xws li cov npe sib txawv thiab cov npe hauv chav kawm. Tam sim no qhov no tsuas yog txhawb nqa Java, Kotlin thiab Python, tab sis peb cia siab tias daim ntawv teev npe no yuav loj tuaj. Peb tau kho ntau cov kab me me thiab ua tau zoo dua nrog lub tswv yim lub built-in spell checker. Tsis tas li ntawd, kev txhawb nqa XML thiab tshuaj xyuas kev sau ntawv tau tshwm sim. Tag nrho cov no tuaj yeem pom hauv qhov thib ob version, uas peb tau tshaj tawm tsis ntev los no.
Yuav ua li cas yog tom ntej no?
Xws li lub plugin tuaj yeem pab tau tsis yog rau cov neeg tsim khoom xwb, tab sis kuj rau cov kws sau ntawv (feem ntau ua haujlwm, piv txwv li, nrog XML hauv IDE). Txhua hnub lawv yuav tsum tau ua haujlwm nrog cov lus ntuj, tsis tas yuav muaj tus pab cuam hauv daim ntawv ntawm cov lus qhia txog kev ua yuam kev. Peb lub plugin muab cov lus qhia zoo li no thiab ua nws nrog cov qib siab ntawm qhov raug.
Peb npaj los tsim lub plugin, ob qho tib si los ntawm kev ntxiv cov lus tshiab thiab los ntawm kev tshawb nrhiav ib txoj hauv kev los txhim kho cov ntawv txheeb xyuas. Peb cov phiaj xwm tam sim no suav nrog kev siv cov stylistic profiles (txheej txheem cov cai uas txhais cov qauv qhia rau cov ntawv nyeem, piv txwv li, "tsis txhob sau eg, tab sis sau tag nrho daim ntawv"), nthuav cov phau ntawv txhais lus thiab txhim kho cov neeg siv interface (tshwj xeeb, peb xav muab lub sijhawm rau tus neeg siv tsis yog kom tsis quav ntsej ib lo lus, tab sis ntxiv rau hauv phau ntawv txhais lus, qhia txog ib feem ntawm kev hais lus).
Tau qhov twg los: www.habr.com