Salam, kärdeşler. Bu gün ýabany kodlamaga başlamazdan ozal etmeli işleriň görnüşi barada gürleşmekçi. Has takygy, programma arhitekturasyny meýilleşdirmek we döretmek barada. Emma nireden başlamaly? Bu binagärçiligi nädip gurmaly? Hemme zat ýaly bolşy ýaly, başdan başlamaly. Elyagny - IDEA bilen. Taslamamyzyň pikiri, esasy işleýşi bilen peýdaly telegramma bot döretmekdi. Geliň, takyk bir zady gaýtalalyň: “Ulanyjy hökmünde, meni gyzyklandyrýan JavaRush-da şol toparlarda täze makalalar çap edilende habarnamalary almak isleýärin.” YAGNI ýörelgesine eýerip, arzamyzy gurarys. Diýmek, diňe zerur zatlarymyzy alarys. Diňe isleýändigimiz we bir gün hakykatdanam peýdaly bolup biljekdigi sebäpli öňünden we ätiýaçda işlemeris. Hawa, okalýan we giňeldilip bilinjek programma dörederis, ýöne bu “ösüş üçin” maglumat bazasynyň shemasyny döredjekdigimizi aňlatmaýar. Bu “ösüşi” goldamazlyk üçin, ony düýbünden terk etmegiň has gowudygyna karar berdim. Bu bize ösüş we gereksiz synag wagtynda gereksiz goldawdan gaça durmaga kömek eder. Soňrak, taslamamyz önümçilige başlanda (ýene bir Anglikizm, gysgaldylan önümden - önümçilikden), has köp zat edip bileris. Bir ideýa karar bereniňizden soň, birneme gödek we çyzmaly. Näme çekmeli? Dürli ulanyjylaryň toparlaryna ýazylmak baradaky maglumatlary ýatda saklamak ukybymyz gerek bolar. Telegramda söhbetdeşlik şahsyýeti görnüşinde ulanyjy şahsyýetini ulanyp biljekdigiňizi bilýärin. Täze makalalary gözlemegiň hakykatda nähili dowam etjekdigi barada bir pikir bar: täze makalalara abuna ýazylan ähli toparlarda gözläris we söhbetlere ibereris. Şundan ugur alyp, aşakdakylary ilkinji ýakynlaşma hökmünde alýarys (ine, bezegsiz ösüş): Golýazmalara düşünersiňiz diýip umyt etmeýärin: Ösüşiň nirede we nirede başlanýandygyny anyk görkezmek isleýärin. Birinji etap tamamlandy: nämäniň boljakdygyny belli bir derejede karar berdik. Maglumat bazasyndaky modeller / tablisalar ýokarda beýan edilýär. Thisöne bu taslama: ony ýuwup, has okalýan görnüşe getirip bolýar. Süpürip ýörkäm, botyň işi barada statistika almak isleýändigimi ýadymda. Muny goşdy. Bu çyzgyda nämäniň we nähili tertipleşdiriljekdigi has aýdyňdyr. .Agny, haýsy tablisalar we meýdanlar bolar, tablisalar üçin haýsy atlar bolar. Olaryň birnäçesiniň boljakdygy karar edildi:
- Ulanyjy - botymyzy ulanjak telegram ulanyjy hakda maglumat. Görşüňiz ýaly, ulanyjynyň işjeň ýa-da işjeň däldigini diňe söhbetdeşlik ID-sini we baýdagy saklaýarys. Näme üçin? Sebäbi biziň maksadymyz ulanyjylar hakda maglumat ýygnamak däl-de, olara peýdaly bolmak;
- GroupSub - bu ýerde abuna ýazylan toparyňyz we abonentlere iberilen iň soňky makala barada maglumat bolar;
- Statistika - Munuň üçin shema döretmedim - muny soňrak ederis. Taslamanyň MVP-sinde esasy maksat däl.
Iş üçin ammar dörediň
Netijede, telegramma boty bilen işlemek üçin ammar döredip bilersiňiz.- Bize eýýäm tanyş bolan zatlary - ammaryň adyny, gysgaça düşündirişini doldurýarys.
- Ygtyýarnama goşuň - Apache 2.0 (ygtyýarnamany öz islegiňiz boýunça saýlap bilersiňiz).
- Taslamamyz indi elýeterli - oňa baglanyşyk: JavaRush Telegrambot .
Ammarda taslama dörediň
Taslama bilen işlemek üçin taslama ýaly GitHub gurallaryny ulanmak gowy bolardy. Bu näme? Bu, ýumuşlary döredip, olaryň ýerine ýetirilişini yzarlap we wezipe ýagdaýyny ýatda saklap boljak ýerdir. Olary kimiň ýerine ýetirjekdigini we başgalary kesgitläň. Munuň üçin döredilen taslamada Taslamalar düwmesini taparys we şol ýerde täzesini dörederis: Görşüňiz ýaly, bu ýerde taslamanyň adyny görkezdim, düşündirdim we işlejek şablonymy saýladyk - Awtomatlaşdyrylan Kanban. Häzir biziň üçin munuň manysy beýle möhüm däl. Esasy zat, sütünlere bölünen meseleler bilen tagtamyz bolar, bu ýerde her sütün meseläniň ýagdaýy bolar:- Etmeli - edilmegi meýilleşdirilýän ähli meseleler;
- Dowam edilýär - häzirki wagtda işlenýän meseleler;
- Oneerine ýetirildi - bu taslamanyň çäginde eýýäm tamamlanan meseleler.
Taslama üçin meseleler (meseleler) ýazýarys
Haýsy meseleleri ýazmalydygyna düşünmek üçin geliň, taslamada näme etjekdigimizi çözeliň. Maglumat bazasyna girip bilmek, maglumatlar bazasynyň shemasyny dolandyrmak we üýtgetmek, makalalar barada maglumat almak üçin JavaRush-da REST haýyşlaryny edip bilmek üçin aňsat we çalt işe girizilip bilinjek programma gerek. Şundan ugur alyp, aşakdaky tehnologiýalary saýlap bilersiňiz:- “SpringBoot” - programmamyzyň çarçuwasy hökmünde,
- Bahar maglumatlary - maglumat bazasy bilen işlemek üçin,
- Uçuş ýoly - maglumat bazasynyň göçüşleri bilen işlemek üçin,
- MySQL - taslama üçin maglumat bazasy hökmünde,
- Telegrambot StringBoot başlangyjy - telegram bot bilen işlemek üçin kitaphana,
- Unirest, REST haýyşlary bilen işlemek üçin kitaphanadyr.
Taslama döretmek şablony
Aşakdaky şablony ulanyp meseleler dörederis:- Işiň ady şeýle bolar: JRTB- {IssueNumber}: {IssueDescription} , nirede:
- {IssueNumber} meseläniň seriýa belgisi. Soňky problemadan ýene birini alalyň;
- {IssueDescription} - meseläniň gysgaça beýany.
- Wezipe meselesinde has jikme-jik düşündiriş bereris (käwagt ýumuş adynyň beýanyna gabat gelip biler).
- Kabul ediş ölçegleri talaplaryň sanawydyr, şondan soň tabşyryk ýerine ýetirilip bilner. Başgaça aýdylanda, meseläni kabul etmegiň ölçegleri. Olary ulanyp, synçy (iňlis synçysyndan - synçydan - bir işiň nähili tamamlanýandygyna seredýän adamdan) meseläniň doly tamamlanandygyna ýa-da ýokdugyna düşünip biler.
- ] _
- [HYZMAT] JRTB-2: taslama telegramma bot goşuň - diňe jogap berer we diridigini aýdyp, boş bot goşuň.
- ] _ Şu wagta çenli birnäçe topar üçin.
- [Aýratynlyk] JRTB-1: Ammar gatlagyny goşuň - bu iň uly meseleleriň biri - maglumatlar bazasy bilen işlemek üçin edilmeli ähli zady birleşdirýär.
- ] _ Bu ulanyjylarymyz üçin hakyky peýda bolar: botda topar abunalaryny goşmak mümkin bolar.
- ] _
- ] _
- [Aýratynlyk] JRTB-7: Ulanyjy hökmünde, abunalygymdan topar abunalygyny aýyrmak isleýärin - bu ýerde toparyň täzelenmelerine ulanyjynyň abunalygyny aýyrmaly.
- [Aýratynlyk] JRTB-8: Ulanyjy hökmünde, bot ulanyp hereketsiz goýmak isleýärin - botyň saklanmagyny amala aşyryň. .Agny, işiň bes edilmegi üçin ulgamymyzda edilmeli ähli zat. Işlemäge / stop buýrugyny goşuň.
- ] _ Edil isleýşimiz ýaly.
- [Aýratynlyk] JRTB-10: Dolandyryjy hökmünde bot statistikasyny görmek isleýärin - bot statistikasynyň ýygyndysyny döredýärin. Dolandyryjy mümkinçiliklerini goşmak.
- [Aýratynlyk] JRTB-11: Ulanyjy hökmünde bu telegram bot - resminamalary ýazmak üçin resminamalary göresim gelýär . Hawa, hawa, dostlar, siz onsuz ýaşap bilmersiňiz we muny näçe ir öwrenseňiz, şonça-da gowy bolar))
Ammary doldurmak
Kodlaşdyrmaga başlamazdan ozal başga näme etmeli? - Awtor, bu abzaslardan näçesini goşup bilersiňiz, olary çukurdan çykarýarsyňyzmy ?? -, ok, işiň hili jikme-jikliklerde görkezilýär. Munuň manysy bar. Geliň, ýene bir jikme-jiklik goşalyň. Taslamanyň beýleki işläp düzüjiler üçin meşhur we düşnükli bolmagy üçin ony doldurmaly. Näme goşmaly? Makalada edilip bilinjek zatlaryň doly sanawyny GitHub-daky taslamalaryňyz bilen optimizirlemek: Github şablon ammary bilen tanyşmak . Okamagy maslahat berýärin. Edýän zatlarymyza aýdyň wersiýa, aýdyň düşünmek biziň üçin möhümdir. Şonuň üçin taslamamyzdaky üýtgeşmeler ýazyljak RELEASE_NOTES faýly goşdum. Mysal üçin, RELEASE_NOTES taslamamdan seredip bilersiňiz (hawa, näme üçin energiýamy we döredijiligimi goýanymy görkezmeýärsiňiz). Her täze wersiýa üçin üýtgeşmeler şol ýerde beýan edilýär. Şeýle hem, 4 warianty bolan täze meseleler döretmek üçin şablonlar goşdum:- Bug hasabaty, işinde kemçilik tapýan ulanyjylar / synagçylar tarapyndan döredilen mesele. Bu gaty möhüm zat: näsazlyklary düzetmäge kömek edýär;
- Aýratynlyk haýyşy, täze işlemegi goşmak meselesidir. Taslamadaky ilkinji meseleleriň hemmesi aýratynlyk haýyşlary;
- Gowulaşdyrmak haýyşy - programmanyň işini gowulandyrmak meselesi. Mysal üçin, bot bilen işleýän wagtyňyz synag jogaplaryny üýtgetmek. Men tehniki ýazyjy däl we düýbünden dogry däl jogaplary tapyp bilerin. Şonuň üçin islegiňiz we ukybyňyz bar bolsa, teklip ediň :)
- Sorag , programmanyň işleýşi barada döredijiler üçin sorag. Örän peýdaly zat. Esere düşünmek ýok ýa-da käbir soraglara şübhe bar diýeliň - bu görnüşde bir sorag berip, ilkinji gezek jogap alyp bilersiňiz.
GO TO FULL VERSION