Hackathon DevDays'19 (دوهمه برخه): د ټیلیګرام لپاره د آډیو پیغام پارسر او په IntelliJ IDEA کې د ګرامر چک کول

موږ د پسرلي هیکاتون DevDays پروژو په اړه خبرو ته دوام ورکوو، په کوم کې چې د ماسټر پروګرام زده کونکو برخه اخیستې وه. "د سافټویر پراختیا / سافټویر انجینري".

Hackathon DevDays'19 (2 برخه): د ټیلیګرام لپاره د آډیو پیغام پارسر او په IntelliJ IDEA کې د ګرامر چک کول

په هرصورت، موږ غواړو لوستونکو ته بلنه ورکړو چې ګډون وکړي د ماسټر زده کونکو VK ګروپ. پدې کې به موږ د استخدام او مطالعې په اړه وروستي خبرونه خپاره کړو. د خلاصې ورځې ویډیو هم په ګروپ کې موندل کیدی شي. موږ تاسو ته یادونه کوو: پیښه به د اپریل په 29 نیټه ترسره شي، توضیحات په آنلاین توګه.

د ټیلیګرام ډیسټاپ غږیز پیغام پارسر

Hackathon DevDays'19 (2 برخه): د ټیلیګرام لپاره د آډیو پیغام پارسر او په IntelliJ IDEA کې د ګرامر چک کول

د مفکورې لیکوال
خروشیف ارتیوم

په لیکه کیدل

خروشیف آرټیم - د پروژې مدیر / پراختیا کونکی / QA
الیسیف انتون - د سوداګرۍ شنونکی / د بازار موندنې متخصص
ماریا کوکلینا - د UI ډیزاینر / پراختیا کونکی
Bakhvalov Pavel - د UI ډیزاینر / پراختیا کونکی / QA

زموږ له نظره ، ټیلیګرام یو عصري او اسانه میسنجر دی ، او د دې د کمپیوټر نسخه مشهوره او خلاص سرچینه ده ، کوم چې د دې ترمیم کول ممکن کوي. پیرودونکي خورا بډایه فعالیت وړاندې کوي. د معیاري متن پیغامونو سربیره، پدې کې غږیز زنګونه، ویډیو پیغامونه، او غږیز پیغامونه شامل دي. او دا وروستی دی چې ځینې وختونه د دوی ترلاسه کونکي ته تکلیف راوړي. دا اکثرا امکان نلري چې په کمپیوټر یا لپ ټاپ کې د غږ پیغام واورئ. کیدای شي محیطي شور وي، د هیډفونونو نشتوالی، یا تاسو نه غواړئ چې څوک د پیغام مینځپانګې واوري. دا ډول ستونزې تقریبا هیڅکله نه رامینځته کیږي که تاسو په سمارټ فون کې ټیلیګرام کاروئ ، ځکه چې تاسو کولی شئ دا په ساده ډول خپل غوږ ته راوړئ ، د لپ ټاپ یا کمپیوټر برعکس. موږ هڅه وکړه چې دا ستونزه حل کړي.

په DevDays کې زموږ د پروژې هدف د ټیلیګرام ډیسټاپ پیرودونکي ته په متن کې د ترلاسه شوي غږیز پیغامونو ژباړلو وړتیا اضافه کول وو (له دې وروسته د ټیلیګرام ډیسټاپ په نوم یادیږي).

په اوس وخت کې ټول انلاګونه بوټونه دي چې تاسو کولی شئ یو آډیو پیغام واستوئ او په ځواب کې متن ترلاسه کړئ. موږ له دې څخه ډیر خوښ نه یو: بوټ ته د پیغام لیږل خورا اسانه ندي؛ موږ غواړو اصلي فعالیت ولرو. سربیره پردې ، هر بوټ دریم اړخ دی چې د وینا پیژندنې API او کارونکي ترمینځ د مینځګړی په توګه کار کوي ، او دا لږترلږه ، غیر خوندي دی.

لکه څنګه چې مخکې یادونه وشوه، ټیلیګرام - ډیسټاپ دوه مهمې ګټې لري: اسانه او د عملیاتو سرعت. او دا هیڅ تصادف ندی ، ځکه چې دا په بشپړ ډول په C++ کې لیکل شوی. او له هغه وخته چې موږ پریکړه وکړه چې نوي فعالیت مستقیم پیرودونکي ته اضافه کړو، موږ باید دا په C++ کې پراختیا کړو.

Hackathon DevDays'19 (2 برخه): د ټیلیګرام لپاره د آډیو پیغام پارسر او په IntelliJ IDEA کې د ګرامر چک کولزموږ په ټیم کې څلور کسان وو. په پیل کې، دوه کسان د وینا پیژندنې لپاره د مناسب کتابتون په لټه کې وو، یو کس د ټیلیګرام ډیسټاپ د سرچینې کوډ مطالعه کوله، بل یې د جوړونې پروژې ځای پرځای کول. د ټلیگرام ویبسټر. وروسته، هرڅوک د UI فکس کولو او ډیبګ کولو بوخت وو.

داسې بریښي چې د ټاکل شوي فعالیت پلي کول به ستونزمن نه وي، مګر، لکه څنګه چې تل پیښیږي، ستونزې رامنځته شوې.

د ستونزې حل دوه خپلواک فرعي دندې لري: د مناسب وینا پیژندنې وسیله غوره کول او د نوي فعالیت لپاره د UI پلي کول.

کله چې د غږ پیژندنې لپاره کتابتون غوره کړئ، موږ باید سمدلاسه ټول آفلاین APIs پریږدو، ځکه چې د ژبې ماډلونه ډیر ځای نیسي. مګر موږ یوازې د یوې ژبې په اړه خبرې کوو. دا څرګنده شوه چې موږ باید آنلاین API وکاروو. وروسته معلومه شوه چې د ګوګل، یانډیکس او مایکروسافټ په څیر د داسې لویانو د وینا پیژندنې خدمتونه په بشپړ ډول وړیا ندي، او موږ باید د آزموینې دورې سره قناعت وکړو. د پایلې په توګه، د ګوګل سپیچ-ټو-ټیکټ غوره شوی ځکه چې دا تاسو ته اجازه درکوي د خدمت کارولو لپاره نښه ترلاسه کړئ، کوم چې به د ټول کال لپاره دوام وکړي.

دویمه ستونزه چې موږ ورسره مخ شوي د C++ ځینې نیمګړتیاو پورې اړه لري - د مرکزي ذخیره په نشتوالي کې د مختلف کتابتونونو ژوبڼ. دا داسې پیښیږي چې د ټیلیګرام ډیسټاپ په ډیری نورو نسخو ځانګړي کتابتونونو پورې اړه لري. رسمي ذخیره لري لارښود د پروژې د راټولولو لپاره. او همدارنګه د جوړولو ستونزو په اړه د خلاصې مسلې لوی شمیر، د بیلګې په توګه وختونه и два. ټولې ستونزې د دې حقیقت سره تړاو درلود چې د جوړونې سکریپټ د اوبنټو 14.04 لپاره لیکل شوی و ، او د اوبنټو 18.04 لاندې په بریالیتوب سره د ټیلیګرام رامینځته کولو لپاره ، بدلونونه باید رامینځته شي.

د ټیلیګرام ډیسټاپ پخپله راټولولو کې خورا اوږد وخت نیسي: د Intel Core i5-7200U سره په لپ ټاپ کې ، د ټولو انحصارونو سره بشپړ مجلس (پرچم -j 4) شاوخوا درې ساعته وخت نیسي. له دې څخه ، شاوخوا 30 دقیقې د پیرودونکي پخپله لینک کولو سره اخیستل کیږي (وروسته معلومه شوه چې د ډیبګ ترتیب کې ، لینک کول شاوخوا 10 دقیقې وخت نیسي) ، مګر د لینک کولو مرحله باید د بدلونونو وروسته هر ځل تکرار شي.

د ستونزو سره سره، موږ اداره شوي مفکوره پلي کړه، او همدارنګه تازه سکریپټ جوړ کړئ د اوبنټو 18.04 لپاره. د کار یوه مظاهره په کې لیدل کیدی شي مخونه. موږ څو متحرکات هم شامل کړو. د ټولو غږیز پیغامونو تر څنګ یو تڼۍ ښکاره شوې، تاسو ته اجازه درکوي چې پیغام په متن کې وژباړي. په ښي کلیک کولو سره، تاسو کولی شئ هغه ژبه هم مشخص کړئ چې د خپرونو لپاره به کارول کیږي. لخوا مخونه پیرودونکي د ډاونلوډ لپاره شتون لري.

ذخیره.

زموږ په نظر، دا د فعالیت مفهوم یو ښه ثبوت وګرځید چې د ډیری کاروونکو لپاره به مناسب وي. موږ هیله لرو چې دا د ټیلیګرام ډیسټاپ په راتلونکو خپرونو کې وګورو.

په IntelliJ IDEA کې د طبیعي ژبې ملاتړ ته وده ورکول

Hackathon DevDays'19 (2 برخه): د ټیلیګرام لپاره د آډیو پیغام پارسر او په IntelliJ IDEA کې د ګرامر چک کول

د مفکورې لیکوال

تانکوف ولادیسلاو

په لیکه کیدل

تانکوف ولادیسلاو (د ټیم مشر، د ژبې وسیله او انټیلیج IDEA سره کار کوي)
نیکیتا سوکولوف (د LanguageTool سره کار کول او UI جوړول)
خواروف الیګزانډر (د LanguageTool سره کار کول او د فعالیت اصلاح کول)
Sadovnikov الکساندر (د مارک اپ ژبې او کوډ پارس کولو ملاتړ)

موږ د IntelliJ IDEA لپاره یو پلگ ان رامینځته کړی چې د ګراماتیک ، املا او سټایلیسټیک دقت لپاره مختلف متنونه (تبصرې او اسناد ، په کوډ کې لفظي کرښې ، په مارک ډاون یا XML مارک اپ کې متن فارمیټ) چیک کوي (په انګلیسي کې دې ته پروفریډینګ ویل کیږي).

د پروژې مفکوره دا وه چې د معیاري سپیل چیک IntelliJ IDEA د ګرامر په پیمانه پراخه کړي، ترڅو د IDE دننه یو ډول ګرامر جوړ کړي.

تاسو کولی شئ وګورئ چې څه پیښ شوي مخونه.

ښه، لاندې به موږ د پلگ ان وړتیاوو په اړه نور تفصیل سره وغږیږو، او همدارنګه هغه ستونزې چې د هغې د جوړولو په وخت کې رامنځ ته شوي.

انګیزه

په طبیعي ژبو کې د متن لیکلو لپاره ډیری محصولات ډیزاین شوي، مګر د اسنادو او کوډ تبصرې ډیری وختونه په پرمختیایي چاپیریال کې لیکل کیږي. په ورته وخت کې، IDEs په کوډ کې د غلطیو موندلو لپاره خورا ښه دنده ترسره کوي، مګر په طبیعي ژبو کې د متنونو لپاره په کمزوري توګه مناسب دي. دا په ګرامر، ټکو، یا سټایل کې د غلطیو کولو لپاره خورا اسانه کوي پرته له دې چې پراختیایي چاپیریال یې په ګوته کړي. دا خورا مهم دی چې د کارونکي انٹرفیس لیکلو کې غلطي وکړئ ، ځکه چې دا به نه یوازې د کوډ پوهه اغیزه وکړي ، بلکه پخپله د پرمختللي غوښتنلیک کارونکي هم اغیزه کوي.

یو له خورا مشهور او پرمختللی پرمختیایی چاپیریال څخه د IntelliJ IDEA دی، او همدارنګه IDEs د IntelliJ پلیټ فارم پراساس دی. IntelliJ پلیټ فارم لا دمخه یو جوړ شوی سپیل چیکر لري ، مګر دا حتی د ساده ګرامري غلطیو څخه خلاص نه کیږي. موږ پریکړه وکړه چې په IntelliJ IDEA کې یو له مشهور طبیعي ژبې تحلیل سیسټمونو څخه مدغم کړو.

پلي کول

Hackathon DevDays'19 (2 برخه): د ټیلیګرام لپاره د آډیو پیغام پارسر او په IntelliJ IDEA کې د ګرامر چک کولموږ خپل ځان د خپل متن تصدیق کولو سیسټم رامینځته کولو دنده نه ده ټاکلې ، نو موږ یو موجود حل وکاروو. ترټولو مناسب انتخاب وګرځید ژبه ژبه. جواز موږ ته اجازه راکړه چې دا زموږ د موخو لپاره په آزاده توګه وکاروو: دا وړیا دی، په جاوا کې لیکل شوی او خلاصې سرچینې. برسېره پردې، دا د 25 ژبو ملاتړ کوي او د پنځلسو کلونو څخه زیات د پراختیا په حال کې دی. د دې د خلاصیدو سره سره ، د ژبې تول د تادیه شوي متن تایید حلونو لپاره جدي سیالي کوي ، او دا حقیقت چې دا په محلي توګه کار کولی شي په حقیقت کې د دې وژونکي ځانګړتیا ده.

د پلگ ان کوډ دننه دی په GitHub کې ذخیره. ټوله پروژه د UI لپاره د جاوا یو کوچني اضافه کولو سره په کوټلین کې لیکل شوې وه. د هیکاتون په جریان کې، موږ د مارک ډاون، جاواډاک، HTML او ساده متن لپاره مالتړ پلي کولو توان درلود. د هیکاتون وروسته، یو لوی تازه معلومات د XML لپاره ملاتړ اضافه کړ، په جاوا، کوټلین او پایتون کې د سټینګ لیکونو، او د املا چک کول.

مشکلات

په چټکۍ سره موږ پوه شو چې که موږ هر ځل د معاینې لپاره LanguageTool ته ټول متن تغذیه کړو، نو د IDEA انٹرفیس به په هر یا لږ جدي متن کې کنګل شي، ځکه چې تفتیش پخپله د UI جریان بندوي. ستونزه د 'ProgressManager.checkCancelled' چک له لارې حل شوې وه - دا فنکشن یو استثنا ورکوي که چیرې IDEA باور ولري چې دا د تفتیش لغوه کولو وخت دی.

دا په بشپړه توګه منجمد له منځه یوسي، مګر د کارولو لپاره یې ناممکن دی: متن پروسس کولو لپاره خورا اوږد وخت نیسي. سربیره پردې ، زموږ په قضیه کې ، ډیری وختونه د متن خورا کوچنۍ برخه بدلیږي او موږ غواړو پایلې په یو ډول زیرمه کړو. دا هغه څه دي چې موږ یې وکړل. د دې لپاره چې هر ځل هر څه ونه ګورو، موږ په ټاکلي ډول متن په ټوټو وویشو او یوازې هغه یې چیک کړل چې بدل شوي. څرنګه چې متنونه لوی کیدی شي او موږ نه غوښتل چې کیچ پورته کړو، موږ متنونه پخپله نه، بلکې د دوی هشونه ساتل. دې پلگ ان ته اجازه ورکړه چې حتی په لویو فایلونو کې په اسانۍ سره کار وکړي.

LanguageTool له 25 څخه زیاتو ژبو ملاتړ کوي، مګر دا امکان نلري چې یو کاروونکي دې ټولو ته اړتیا ولري. ما غوښتل د غوښتنې پراساس د یوې ځانګړې ژبې لپاره کتابتونونو ډاونلوډ کولو فرصت ورکړم (که تاسو دا په UI کې ټیک کړئ). موږ حتی دا پلي کړل، مګر دا خورا پیچلي او د باور وړ نه و. په ځانګړې توګه، موږ باید د ژبو د نوي سیټ سره د جلا کلاسلوډر په کارولو سره LanguageTool پورته کړو، او بیا یې په احتیاط سره پیل کړو. په ورته وخت کې، ټول کتابتونونه په یو کارن .m2 ذخیره کې وو، او په هر پیل کې موږ باید د دوی بشپړتیا معاینه کړو. په پاى کې، موږ پرېکړه وکړه چې که کاروونکي د پلگ ان د اندازې سره ستونزې ولري، نو موږ به د څو مشهورو ژبو لپاره جلا پلگ ان چمتو کړو.

د هیکاتون وروسته

هیکاتون پای ته ورسید، مګر په پلگ ان کې کار د یو تنګ ټیم سره دوام درلود. ما غوښتل د تارونو، تبصرو، او حتی د ژبې جوړښتونو لکه متغیر او ټولګي نومونو ملاتړ وکړم. اوس مهال دا یوازې د جاوا، کوټلین او پایتون لپاره ملاتړ کیږي، مګر موږ هیله لرو چې دا لیست به وده ومومي. موږ ډیری کوچني بګونه حل کړي او د آیډیا جوړ شوي سپیل چیکر سره ډیر مطابقت لري. برسېره پردې، د XML مالتړ او د املا چک کول ښکاره شوي. دا ټول په دویمه نسخه کې موندل کیدی شي، کوم چې موږ پدې وروستیو کې خپور کړ.

څه راتلونکو؟

دا ډول پلگ ان نه یوازې د پراختیا کونکو لپاره ، بلکه د تخنیکي لیکوالانو لپاره هم ګټور کیدی شي (اکثرا کار کوي ، د مثال په توګه ، په IDE کې د XML سره). هره ورځ دوی باید د طبیعي ژبې سره کار وکړي، پرته له دې چې د احتمالي غلطیو په اړه د مدیر لارښوونو په بڼه کې مرستیال ولري. زموږ پلگ ان داسې اشارې وړاندې کوي او دا د لوړې کچې دقت سره کوي.
موږ پلان لرو چې پلگ ان ته وده ورکړو، دواړه د نویو ژبو په اضافه کولو او د متن چیک کولو تنظیم کولو لپاره د عمومي تګلارې په سپړلو سره. زموږ په سمدستي پلانونو کې د سټایلیسټیک پروفایلونو پلي کول شامل دي (د مقرراتو سیټ چې د متن لپاره سټایل لارښود تعریفوي ، د مثال په توګه ، "د مثال په توګه مه لیکئ ، مګر بشپړ ب formه ولیکئ") ، د قاموس پراخول او د کارن انٹرفیس ښه کول (په ځانګړي توګه ، موږ غواړو کارونکي ته دا فرصت ورکړو چې نه یوازې یوه کلمه له پامه غورځوي، بلکې په لغت کې یې اضافه کړي، د وینا برخه په ګوته کوي).

سرچینه: www.habr.com

Add a comment