JavaRush /Java Blog /Random-TK /Taslamany meýilleşdirmek: iki gezek ölçäň - bir gezek kes...

Taslamany meýilleşdirmek: iki gezek ölçäň - bir gezek kesiň - "Java taslamasy A-dan Z"

Toparda çap edildi
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. Java taslamasy A-dan Z. Taslamany meýilleşdirmek: ýedi gezek ölçäň - bir gezek kesiň - 1Emma 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üş): Java taslamasy A-dan Z. Taslamany meýilleşdirmek: ýedi gezek ölçäň - bir gezek kesiň - 2Golý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.
Java taslamasy A-dan Z. Taslamany meýilleşdirmek: ýedi gezek ölçäň - bir gezek kesiň - 3Ondan soň täze makalalary gözlemegiň usulyny has jikme-jik görkezmek isledim. Munuň üçin BPMN diagrammasyny ulandym, ony surata öwrüp, şuny aldym: Java taslamasy A-dan Z. Taslamany meýilleşdirmek: ýedi gezek ölçäň - bir gezek kesiň - 4Bu ýerdäki hemme zat has okalýan we düşnükli. Gözlegde bu shema laýyklykda işläris. Agersolbaşçylar bu shemany hakykatdanam halaýarlar, sebäbi diňe bir programmistlere däl, düşnükli: D Umuman aýdylanda, başlangyç edildi.

Iş üçin ammar dörediň

Netijede, telegramma boty bilen işlemek üçin ammar döredip bilersiňiz.Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 5
  1. Bize eýýäm tanyş bolan zatlary - ammaryň adyny, gysgaça düşündirişini doldurýarys.
  2. Ygtyýarnama goşuň - Apache 2.0 (ygtyýarnamany öz islegiňiz boýunça saýlap bilersiňiz).
  3. 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: Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 6Gö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:
  1. Etmeli - edilmegi meýilleşdirilýän ähli meseleler;
  2. Dowam edilýär - häzirki wagtda işlenýän meseleler;
  3. Oneerine ýetirildi - bu taslamanyň çäginde eýýäm tamamlanan meseleler.
Şeýdip, wezipelerimiziň ýagdaýy barada bileris. Haýsylary dowam edýär, haýsylary edilýär. Mundan başga-da, bu diňe bir topar bar bolan ýagdaýlarda däl, eýsem özbaşdak işleýän wagtyňyz hem möhümdir. Tagtada bir zadyň peýda bolmagy üçin Meseleleri döretmeli.

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.
Aboveokardakylaryň hemmesinden, geliň, meseleler döredip başlalyň.

Taslama döretmek şablony

Aşakdaky şablony ulanyp meseleler dörederis:
  1. 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.
  2. Wezipe meselesinde has jikme-jik düşündiriş bereris (käwagt ýumuş adynyň beýanyna gabat gelip biler).
  3. 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.
Bu şablony ulanyp, ilkinji wezipämizi dörederis: Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 7Şeýle hem, ony döredenimde, bu meseläniň haýsy taslama laýykdygyny, kimiň ýerine ýetirjekdigini (bellän) we bu ýumuşyň haýsy bellige degişlidigini derrew kesgitledim. Ondan soň, meseleleriň atlaryny kiçijik düşündiriş we olara baglanyşyk bilen görkezerin. Olaryň hemmesi şu ýerde . Wezipeleri şu ýerde görkezilişi ýaly takmynan ýerine ýetireris:
  1. ] _
  2. [HYZMAT] JRTB-2: taslama telegramma bot goşuň - diňe jogap berer we diridigini aýdyp, boş bot goşuň.
  3. ] _ Şu wagta çenli birnäçe topar üçin.
  4. [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.
  5. ] _ Bu ulanyjylarymyz üçin hakyky peýda bolar: botda topar abunalaryny goşmak mümkin bolar.
  6. ] _
  7. ] _
  8. [Aýratynlyk] JRTB-7: Ulanyjy hökmünde, abunalygymdan topar abunalygyny aýyrmak isleýärin - bu ýerde toparyň täzelenmelerine ulanyjynyň abunalygyny aýyrmaly.
  9. [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ň.
  10. ] _ Edil isleýşimiz ýaly.
  11. [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.
  12. [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))
Bu eýýäm taslamanyň başlangyjy ýaly bolup görünýär. Başgaça aýdylanda, taslama arhitektory we işewür analitik bolup işledik.

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.
GitHub-a seretseňiz, edil şuňa meňzeýär: Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 8Häzirki wagtda toparlar bilen işlemek üçin JavaRush API bilen işlemek baradaky resminamamyz bar.

Indiki näme?

Dogrusy, bu ädimleriň hemmesini tamamlaýarys we näme, taslama ýapylarmy? .Ok, asla ýok. Bu taslama ýaşamagyny dowam etdirer. Ony we gatnaşmak isleýän ähli JavaRush okuwçylary / uçurymlary tarapyndan işlenip düzüler. Geljek üçin meýilnamalaryňyz näme? Olaryň köpüsi. Ilkinji meýilnama, JavaRush API üçin Java müşderisini döretmekdir. Işläp düzüjiler Swagger-ä açyk girmegi wada berdiler. Şeýle hem, aldawçylygyň nämedigine serederis. Salkyn we gaty peýdaly zat. Indiki JavaRush sahypasyny telegramma boty bilen birleşdireris. Abunalary sinhronlamak üçin ulanyjyny bot bilen birleşdireliň. Geliň, okuwyň tamamlanmagy barada statistika döredeliň. JavaRush jemgyýeti hökmünde isleýän zatlaryňyzyň hemmesi.

Netijeler

Bu gün taslama döredilmezden ozal sahnanyň aňyrsyndaky işler barada gürleşdik. Has dogrusy, iş meýilnamasyny nädip döretmelidigi barada, onsuz köp energiýa sarp edip bilersiňiz. Repeatene-de bir gezek gaýtalaýaryn, taslamanyň başlangyjy bu ýerde eýýäm köpçülige ýetirildi . Hemişe bolşy ýaly, Github-daky hasabymy ýazmagyňyzy maslahat berýärin . Şeýlelik bilen, makala çap edilmezden ozal taslama üýtgeşmeler alyp bilersiňiz. Interestedhli gyzyklanýan taraplaryň Github-da hasaba alnandygyny eýýäm çaklaýaryn. Hawa, taslama isleýşimiz ýaly çalt hereket etmeýär. Şeýle-de bolsa, edil işdäki hakyky taslamalar ýaly. Indiki makalada ilkinji meseleleri goşmagy suratlandyraryn. Hemmäňizi okanyňyz we ýakynda görüşeniňiz üçin sag bolsun aýdýaryn!

Tapgyryň ähli materiallarynyň sanawy bu makalanyň başynda.

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION