سلام ، ساٿي. اڄ اسان ان قسم جي تياري واري ڪم جي باري ۾ ڳالهائڻ وارا آهيون جيڪو توهان کي ڪرڻ جي ضرورت آهي ان کان اڳ جو توهان جهنگلي طريقي سان ڪوڊنگ شروع ڪريو. وڌيڪ خاص طور تي، هڪ ايپليڪيشن فن تعمير جي منصوبابندي ۽ ٺاهڻ بابت. پر ڪٿان شروع ڪجي؟ هن فن تعمير کي ڪيئن ٺاهيو؟ جيئن هر شيء سان، توهان کي شروعات کان شروع ڪرڻ جي ضرورت آهي. يعني IDEA سان. اسان جي منصوبي جو خيال بنيادي ڪارڪردگي سان هڪ مفيد ٽيليگرام بوٽ ٺاهڻ هو. اچو ته ورجائي ورجايون ته: ”آئون، هڪ صارف جي حيثيت سان، نوٽيفڪيشن حاصل ڪرڻ جي قابل ٿي وڃڻ چاهيان ٿو جڏهن جاوا رش تي انهن گروپن ۾ نوان آرٽيڪل شايع ڪيا وڃن جيڪي منهنجي دلچسپيءَ ۾ هجن. YAGNI اصول تي عمل ڪندي، اسان اسان جي ايپليڪيشن کي تعمير ڪنداسين. ان جو مطلب اهو آهي ته اسان صرف اهو کڻنداسين جيڪو اسان کي گهرجي. اسان اڳواٽ ۽ رزرو ۾ ڪارڪردگي پيدا نه ڪنداسين ڇو ته اسان چاهيون ٿا ۽ ڪنهن ڏينهن اهو اصل ۾ هٿ اچي سگهي ٿو. ها، اسان هڪ پڙهڻ جي قابل ۽ وسعت واري ايپليڪيشن ٺاهينداسين، پر هن جو مطلب اهو ناهي ته اسان هڪ ڊيٽابيس اسڪيما ٺاهينداسين "ترقي لاء". هن "ترقي" جي حمايت نه ڪرڻ لاء، مون فيصلو ڪيو ته اهو بهتر ٿيندو ته ان کي مڪمل طور تي ڇڏي ڏيو. اهو اسان کي ترقي ۽ غير ضروري جاچ دوران غير ضروري مدد کان بچڻ ۾ مدد ڏيندو. بعد ۾، جڏهن اسان جو پروجيڪٽ پيداوار ۾ وڃي ٿو (ٻيهر هڪ انگلڪيزم، مخفف پروڊ - پيداوار کان)، اسان ڪجهه وڌيڪ ڪرڻ جي قابل ٿي سگهنداسين. هڪ دفعو توهان هڪ خيال تي فيصلو ڪيو آهي، توهان کي ٿورو شرارتي حاصل ڪرڻ جي ضرورت آهي . ڇا ڪڍڻ لاء؟ اسان کي مختلف صارفين جي گروپن جي رڪنيت تي ڊيٽا محفوظ ڪرڻ جي صلاحيت جي ضرورت پوندي. مون کي خبر آهي ته توهان ٽيليگرام ۾ چيٽ ID جي صورت ۾ هڪ صارف جي سڃاڻپ استعمال ڪري سگهو ٿا. ۽ اتي هڪ خيال آهي ته نئين مضمونن جي ڳولا اصل ۾ ڪيئن اڳتي وڌندي: اسان انهن سڀني گروپن ۾ ڳولهينداسين جن وٽ نون مضمونن لاءِ سبسڪرپشن آهن ۽ انهن کي چيٽ ڏانهن موڪلينداسين. ان جي بنياد تي، اسان کي پھرين لڳ ڀڳ ھيٺيون مليون آھن (هتي آھي بغير زيبائش جي ترقي): مون کي اميد نه آھي ته توھان سمجھندا ھوندؤ منھنجي ھٿ جي لکت: مان اھو ڏيکارڻ چاھيان ٿو ته ترقي ڪيئن ۽ ڪٿان شروع ٿئي ٿي. پهريون مرحلو مڪمل ٿي چڪو آهي: اسان ڪنهن به طرح فيصلو ڪيو آهي ته ڇا ٿيندو. ڊيٽابيس ۾ ماڊل / ٽيبل مٿي بيان ڪيا ويا آهن. پر هي هڪ مسودو آهي: اهو ٿي سگهي ٿو ۽ پالش ڪيو وڃي ۽ وڌيڪ پڙهڻ جي قابل فارم ۾ آندو وڃي. جڏهن مان پالش ڪري رهيو هوس، مون کي ياد آيو ته مان پڻ بوٽ جي ڪم تي انگ اکر حاصل ڪرڻ چاهيان ٿو. هن شامل ڪيو. هن ڊرائنگ ۾ اهو واضح آهي ته ڇا ۽ ڪيئن ترتيب ڏني ويندي. اهو آهي، انهن ۾ ڪهڙيون ٽيبل ۽ فيلڊون هونديون، ڪهڙيون ادارن جا نالا ٽيبل لاءِ هوندا. اهو فيصلو ڪيو ويو ته انهن مان ڪيترائي هوندا:
- استعمال ڪندڙ - ٽيليگرام استعمال ڪندڙ بابت ڄاڻ جيڪو اسان جو بوٽ استعمال ڪندو. جئين توهان ڏسي سگهو ٿا، اسان صرف چيٽ جي سڃاڻپ ۽ پرچم کي محفوظ ڪندا آهيون ته صارف فعال آهي يا نه. ڇو؟ ڇو ته اسان جو مقصد صارفين بابت معلومات گڏ ڪرڻ نه آهي، پر انهن کي فائدو ڏيڻ؛
- GroupSub - هتي ان گروپ جي باري ۾ معلومات هوندي جنهن ۾ توهان وٽ سبسڪرپشن آهي ۽ تازو آرٽيڪل جيڪو سبسڪرائبرن ڏانهن موڪليو ويو هو؛
- شماريات - مون ان لاءِ ڪو اسڪيما نه ٺاهيو آهي - اسان اهو بعد ۾ ڪنداسين. هن منصوبي جي MVP ۾ بنيادي مقصد نه آهي.
ڪم لاءِ مخزن ٺاھيو
آخرڪار، توهان ٽيليگرام بوٽ سان ڪم ڪرڻ لاء هڪ مخزن ٺاهي سگهو ٿا.- اسان اهي شيون ڀريون ٿا جيڪي اڳ ۾ ئي اسان سان واقف آهن - مخزن جو نالو، ان جو مختصر بيان.
- هڪ لائسنس شامل ڪريو - Apache 2.0 (توهان پنهنجي صوابديد تي لائسنس چونڊي سگهو ٿا).
- اسان جو پروجيڪٽ هاڻي دستياب آهي - هتي ان جي لنڪ آهي: JavaRush Telegrambot .
مخزن ۾ هڪ پروجيڪٽ ٺاهيو
منصوبي سان ڪم ڪرڻ لاء، اهو سٺو ٿيندو GitHub اوزار استعمال ڪرڻ، جهڙوڪ پروجيڪٽ. هي ڇا آهي؟ هي هڪ جڳهه آهي جتي توهان ڪم ٺاهي سگهو ٿا، انهن جي مڪمل ٿيڻ کي ٽريڪ ڪري سگهو ٿا، ۽ ڪم جي صورتحال کي بچائي سگهو ٿا. اهو طئي ڪيو ته ڪير انهن کي کڻندو ۽ وڌيڪ. هن کي ڪرڻ لاء، ٺاهيل پروجيڪٽ ۾ اسان ڳولينداسين پراجيڪٽ بٽڻ ، ۽ اتي اسان هڪ نئون ٺاهينداسين: جيئن توهان ڏسي سگهو ٿا، هتي مون پروجيڪٽ جو نالو ظاهر ڪيو، ان کي بيان ڪيو ۽ ٽيمپليٽ چونڊيو جنهن تي اسان ڪم ڪنداسين - خودڪار ڪنبن. اسان لاءِ هاڻي اهو اهم ناهي ته ان جو مطلب ڇا آهي. بنيادي شيء اها آهي ته اسان وٽ ڪمن سان گڏ هڪ بورڊ هوندو، جيڪو ڪالمن ۾ ورهايل هوندو، جتي هر ڪالمن جي ڪم جي حيثيت هوندي:- ڪرڻ - سڀ ڪم جيڪي ڪرڻ جي منصوبابندي ڪئي وئي آهي؛
- جاري آهي - ڪم جيڪي هن وقت ڪم ڪري رهيا آهن؛
- ٿي ويو - ڪم جيڪي اڳ ۾ ئي هن منصوبي جي اندر مڪمل ڪيا ويا آهن.
اسان پروجيڪٽ لاء مسئلا (مسائل) لکندا آهيون
سمجھڻ لاءِ ڪھڙا ڪم لکڻا آھن، اچو ته فيصلو ڪريون ته اسان وٽ پروجيڪٽ ۾ ڇا ھوندو. اسان کي هڪ ايپليڪيشن جي ضرورت آهي جيڪا آساني سان ۽ جلدي شروع ڪري سگهجي، ته جيئن اسان ڊيٽابيس تائين رسائي ڪري سگهون، ته جيئن اسان ڊيٽابيس اسڪيما کي منظم ۽ تبديل ڪري سگهون، ته جيئن اسان آرٽيڪل تي ڊيٽا حاصل ڪرڻ لاءِ JavaRush ۾ REST درخواستون ڪري سگهون. هن جي بنياد تي، توهان هيٺ ڏنل ٽيڪنالاجي چونڊي سگهو ٿا:- اسپرنگ بوٽ - اسان جي ايپليڪيشن لاء فريم ورڪ جي طور تي،
- بهار جي ڊيٽا - ڊيٽابيس سان ڪم ڪرڻ لاء،
- Flyway - ڊيٽابيس لڏپلاڻ سان ڪم ڪرڻ لاء،
- MySQL - منصوبي لاء ڊيٽابيس جي طور تي،
- ٽيليگرام بوٽ اسٽرنگ بوٽ اسٽارٽر - ٽيليگرام بوٽ سان ڪم ڪرڻ لاءِ هڪ لائبريري،
- Unirest REST درخواستن سان ڪم ڪرڻ لاءِ هڪ لائبريري آهي.
ٽاسڪ ٺاھڻ جو نمونو
اسان هيٺ ڏنل ٽيمپليٽ استعمال ڪندي ڪم ٺاهينداسين:- ڪم جو نالو هن طرح نظر ايندو: JRTB-{IssueNumber}:{IssueDescription} ، جتي:
- {IssueNumber} مسئلي جو سيريل نمبر آهي. اچو ته ان کي آخري مسئلي مان هڪ وڌيڪ وٺو؛
- {IssueDescription} - مسئلي جو مختصر بيان.
- ڪم جي جسم ۾ اسان ان جي وڌيڪ تفصيلي وضاحت ڪنداسين (ڪڏهن ڪڏهن اهو ڪم جي نالي جي وضاحت سان ٺهڪندڙ ٿي سگهي ٿو).
- قبوليت جي معيار جي ضرورتن جي ھڪڙي فهرست آھي، جنھن کان پوء ڪم مڪمل ٿي سگھي ٿو. تنهنڪري ڳالهائڻ لاء، ڪم کي قبول ڪرڻ لاء معيار. انهن کي استعمال ڪندي، هڪ نظرثاني ڪندڙ (انگريزي نظرثاني ڪندڙ - نظرثاني ڪندڙ - هڪ شخص جيڪو اهو ڏسي ٿو ته هڪ ڪم ڪيئن مڪمل ٿئي ٿو) سمجهي سگهي ٿو ته اهو ڪم مڪمل طور تي مڪمل ڪيو ويو آهي يا نه.
- [فيچر] JRTB-0: اسڪيلٽن اسپرنگ بوٽ پروجيڪٽ ٺاھيو - سڀ ڪجھ ھتي واضح آھي: توھان کي پھريون حصو ڪرڻو پوندو جيڪو اسان گذريل مضمون ۾ ڪيو آھي.
- [فيچر] JRTB-2: پروجيڪٽ ۾ ٽيليگرام بوٽ شامل ڪريو - ھڪڙو خالي بوٽ شامل ڪريو جيڪو صرف جواب ڏيندو ۽ چوندو ته اھو زنده ۽ سٺو آھي.
- [فيچر] JRTB-3: Telegrambot لاءِ ڪمانڊ جو نمونو لاڳو ڪريو - اچو ته ٽيليگرام بوٽ ۾ ڪمانڊز سان ڪم ڪرڻ لاءِ صحيح اپروچ قائم ڪريون. هن وقت تائين ڪيترن ئي ٽيمن لاء.
- [فيچر] JRTB-1: ريپوزٽري پرت شامل ڪريو - اھو ھڪڙو وڏو ڪم آھي - اھو انھن سڀني شين کي گڏ ڪري ٿو جيڪو ڊيٽابيس سان ڪم ڪرڻ جي ضرورت آھي.
- [فيچر] JRTB-5: هڪ صارف جي حيثيت ۾، مان گروپ کي رڪنيت ۾ شامل ڪرڻ چاهيان ٿو - اها اڳ ۾ ئي پهرين صارف ڪهاڻي آهي، جيڪا اڳيئي سمجھ ۾ اچي ٿي. اهو اسان جي استعمال ڪندڙن لاء هڪ حقيقي فائدو ٿيندو: اهو ممڪن ٿيندو ته گروپ جي رڪنيت شامل ڪرڻ بوٽ ۾.
- [فيچر] JRTB-12: نون مضمونن بابت نوٽيفڪيشن موڪلڻ لاءِ شيڊيولنگ لاڳو ڪريو - هتي نون مضمونن جي ڳولا تي عمل ڪيو ويندو جيڪڏهن اهي هر هڪ گروپ لاءِ شايع ڪيا وڃن ۽ انهن سڀني صارفين کي موڪليا وڃن جن گروپن ۾ رڪنيت حاصل ڪئي آهي.
- [فيچر] JRTB-6: هڪ صارف جي حيثيت ۾، مان پنهنجي گروپ جي رڪنيتن جي فهرست ڏسڻ چاهيان ٿو - هتي سڀ ڪجھ سادو آهي: اسان هڪ حڪم شامل ڪيو جيڪو ڏيکاري ٿو انهن سڀني گروپن جي فهرست جنهن ۾ صارف رڪنيت حاصل ڪئي آهي.
- [فيچر] JRTB-7: هڪ صارف جي حيثيت ۾، مان پنهنجي رڪنيتن مان گروپ جي رڪنيت کي ختم ڪرڻ چاهيان ٿو - هتي توهان کي هٽائڻو پوندو صارف جي رڪنيت کي هٽائڻ لاءِ گروپ ۾ تازه ڪاريون.
- [فيچر] JRTB-8: هڪ استعمال ڪندڙ جي حيثيت ۾، مان چاهيان ٿو ته bot استعمال ڪندي غير فعال کي سيٽ ڪرڻ چاهيان ٿو - بوٽ کي روڪڻ تي عمل ڪريو. اهو آهي، هر شيء جيڪا اسان جي سسٽم ۾ ٿيڻ جي ضرورت آهي ڪم کي روڪڻ لاء. پروسيسنگ لاءِ / اسٽاپ ڪمانڊ شامل ڪريو.
- [فيچر] JRTB-9: هڪ صارف جي طور تي، مان چاهيان ٿو ته بوٽ سان ڪم ڪرڻ شروع ڪريو يا فعال سيٽ ڪريو جيڪڏهن مون ان کان اڳ استعمال ڪيو آهي - /start ڪمانڊ جي پروسيسنگ شامل ڪريو. بلڪل ائين جيئن اسان چاهيون ٿا.
- [فيچر] JRTB-10: هڪ منتظم جي حيثيت ۾، مان ڏسڻ چاهيان ٿو bot statistics - create a collection of bot statistics. ايڊمنسٽريٽر جون صلاحيتون شامل ڪرڻ.
- [فيچر] JRTB-11: هڪ صارف جي حيثيت ۾، مان هن ٽيليگرام بوٽ لاءِ دستاويز ڏسڻ چاهيان ٿو - لکڻ واري دستاويز. ها، ها، دوست، توهان ان کان سواء رهي نٿا سگهو، ۽ جيترو جلدي توهان اهو ڪرڻ سکندا، اهو توهان لاء بهتر ٿيندو))
ذخيرو ڀرڻ
اسان کي ڪوڊنگ شروع ڪرڻ کان پهريان ٻيو ڇا ڪرڻ جي ضرورت آهي؟ - ليکڪ، توهان انهن مان ڪيترا پيراگراف شامل ڪري سگهو ٿا، ڇا توهان انهن کي اوندهه مان ڪڍي رهيا آهيو؟ - نه، ڪم جو معيار تفصيل ۾ ڏيکاريل آهي. ۽ اھي اھي آھن جيڪي سمجھندا آھن. تنهن ڪري اچو ته هڪ وڌيڪ تفصيل شامل ڪريو. پروجيڪٽ جي مشهور ٿيڻ ۽ ٻين ڊولپرز لاءِ سمجھڻ جي قابل ٿيڻ لاءِ، ان کي ڀرڻ جي ضرورت آھي. مون کي ڇا شامل ڪرڻ گهرجي؟ مون بيان ڪيو ته مضمون ۾ ڇا ڪري سگهجي ٿو هڪ مڪمل فهرست GitHub تي توهان جي منصوبن سان ڪم کي بهتر ڪرڻ: Github Template Repository کي ڄاڻڻ . مان هن کي پڙهڻ جي ڏاڍي سفارش ڪريان ٿو. اھو ضروري آھي ته اسان لاءِ صاف نسخو ھجي، جيڪو اسان ڪري رھيا آھيون ان جي واضح سمجھ. تنهن ڪري، مون هڪ RELEASE_NOTES فائل شامل ڪئي جنهن ۾ اسان جي منصوبي ۾ تبديليون رڪارڊ ڪيون وينديون. مثال طور، توهان ڏسي سگهو ٿا RELEASE_NOTES منهنجي پروجيڪٽ مان (ها، ڇو نه ڏيکاريان ته مون پنهنجي توانائي ۽ تخليق کي ڪهڙي ڪم ۾ رکيو). هر نئين نسخي لاءِ تبديليون اتي بيان ڪيون ويون آهن. مون نئين ڪمن ٺاهڻ لاءِ ٽيمپليٽ پڻ شامل ڪيا، جن ۾ 4 آپشن آھن:- بگ رپورٽ ھڪڙو ڪم آھي جيڪو ٺاھيو ويو آھي استعمال ڪندڙ / ٽيسٽ ڪندڙ جيڪي پنھنجي ڪم ۾ بگ ڳوليندا آھن. اها هڪ تمام اهم شيءِ آهي: اها بگ فڪس کي منظم ڪرڻ ۾ مدد ڪري ٿي.
- هڪ خصوصيت جي درخواست نئين ڪارڪردگي شامل ڪرڻ لاء هڪ ڪم آهي. پروجيڪٽ تي سڀ پهريون ڪم خصوصيت جي درخواست جا ڪم آهن؛
- بهتري جي درخواست - ايپليڪيشن جي آپريشن کي بهتر ڪرڻ لاء هڪ ڪم. مثال طور، بوٽ سان ڪم ڪرڻ دوران ٽيسٽ جا جواب تبديل ڪرڻ. مان هڪ ٽيڪنيڪل ليکڪ نه آهيان ۽ مان مڪمل طور تي صحيح جوابن سان گڏ اچي سگهان ٿو. تنهن ڪري جيڪڏهن توهان وٽ خواهش ۽ صلاحيت آهي، ان کي پيش ڪريو :)
- سوال ڊولپرز لاء ايپليڪيشن جي آپريشن بابت سوال آهي. هڪ تمام مفيد شيء. اچو ته چئو ته ڪم جي ڪا سمجھ نه آهي يا ڪنهن سوال بابت شڪ آهي - توهان هن طريقي سان هڪ سوال پڇي سگهو ٿا ۽ پهريان ئي جواب حاصل ڪري سگهو ٿا.
GO TO FULL VERSION