JavaRush /Blog Jawa /Random-JV /Perencanaan proyek: ngukur kaping pindho - dipotong sapis...

Perencanaan proyek: ngukur kaping pindho - dipotong sapisan - "proyek Jawa saka A nganti Z"

Diterbitake ing grup
Salam, kanca-kanca. Dina iki kita bakal ngomong babagan jinis persiapan sing kudu sampeyan lakoni sadurunge miwiti coding kanthi liar. Luwih khusus, babagan ngrancang lan nggawe arsitektur aplikasi. Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 1Nanging ngendi kanggo miwiti? Carane mbangun arsitektur iki? Kaya kabeh, sampeyan kudu miwiti saka wiwitan. Yaiku - karo IDEA. Gagasan proyek kita yaiku nggawe bot telegram sing migunani kanthi fungsi dhasar. Ayo baleni persis apa: "Aku, minangka pangguna, pengin bisa nampa kabar nalika artikel anyar diterbitake ing grup kasebut ing JavaRush sing narik kawigatenku." Kanthi prinsip YAGNI, kita bakal mbangun aplikasi kita. Iki tegese kita mung bakal njupuk apa sing kita butuhake. Kita ora bakal nggawe fungsi sadurunge lan cadangan mung amarga kita pengin lan ing sawijining dina bisa uga migunani. Ya, kita bakal nggawe aplikasi sing bisa diwaca lan bisa ditambah, nanging iki ora ateges kita bakal nggawe skema database "kanggo wutah". Supaya ora ndhukung "wutah" iki, aku mutusake yen luwih becik ninggalake kabeh. Iki bakal mbantu kita ngindhari dhukungan sing ora perlu sajrone pangembangan lan tes sing ora perlu. Mengko, nalika proyek kita dadi produksi (maneh Anglicism, saka prod singkatan - produksi), kita bakal bisa nindakake liyane. Sawise sampeyan mutusake ide, sampeyan kudu rada nakal lan nggambar. Apa sing arep digambar? Kita butuh kemampuan kanggo nyimpen data babagan langganan klompok pangguna sing beda-beda. Aku ngerti sampeyan bisa nggunakake ID pangguna ing wangun ID chatting ing Telegram. Lan ana gagasan babagan carane nggoleki artikel anyar bakal ditindakake: kita bakal nelusuri kabeh grup sing duwe langganan artikel anyar lan dikirim menyang obrolan. Adhedhasar iki, kita njaluk ing ngisor iki minangka panyerakan pisanan (kene pembangunan tanpa embellishment): Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 2Aku ora ngarep-arep sing bakal ngerti tulisan tangan: Aku pengin nuduhake persis carane lan ngendi pembangunan wiwit. Tahap pisanan wis rampung: kita wis mutusake apa sing bakal kelakon. Model / tabel ing database kasebut ing ndhuwur. Nanging iki minangka rancangan: bisa lan kudu dipoles lan digawa menyang wangun sing luwih bisa diwaca. Nalika aku polishing, aku eling yen aku uga pengin njaluk statistik ing karya bot. Ditambahake iki. Ing drawing iki luwih cetha apa lan carane iku bakal diatur. Yaiku, tabel lan kolom apa sing bakal ana, jeneng entitas apa kanggo tabel kasebut. Diputusake yen bakal ana sawetara:
  • Panganggo - informasi babagan pangguna telegram sing bakal nggunakake bot kita. Kaya sing sampeyan ngerteni, kita mung nyimpen ID chatting lan gendera manawa pangguna aktif utawa ora. Kenging punapa? Amarga tujuan kita ora kanggo ngumpulake informasi babagan pangguna, nanging kanggo entuk manfaat;
  • GroupSub - ing kene bakal ana informasi babagan grup sing sampeyan langganan lan artikel paling anyar sing dikirim menyang pelanggan;
  • Statistik - Aku durung nggawe skema - kita bakal nindakake mengko. Iki dudu tujuan utama ing MVP proyek kasebut.
Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 3Sawise iku, aku pengin nuduhake kanthi luwih rinci babagan cara nggoleki artikel anyar. Kanggo nindakake iki, aku nggunakake diagram BPMN, sing diowahi dadi gambar lan entuk iki: Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 4Kabeh ing kene luwih bisa diwaca lan bisa dingerteni. Kita bakal bisa miturut skema iki ing panelusuran. Manajer seneng banget skema iki, amarga bisa dingerteni ora mung kanggo programer: D Umumé, wiwitan wis digawe.

Nggawe repositori kanggo karya

Pungkasan, sampeyan bisa nggawe repositori kanggo nggarap bot telegram.Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 5
  1. Kita ngisi item sing wis dikenal kanggo kita - jeneng gudang, katrangan singkat.
  2. Tambah lisensi - Apache 2.0 (sampeyan bisa milih lisensi ing discretion).
  3. Proyek kita saiki kasedhiya - iki link menyang: JavaRush Telegrambot .

Nggawe proyek ing repositori

Kanggo nggarap proyek kasebut, luwih becik nggunakake alat GitHub, kayata proyek. Opo iki? Iki minangka papan kanggo nggawe tugas, nglacak rampunge, lan nyimpen status tugas. Temtokake sapa sing bakal nindakake lan liya-liyane. Kanggo nindakake iki, ing proyek sing digawe kita bakal nemokake tombol Projects , lan ing kana kita bakal nggawe sing anyar: Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 6Kaya sing sampeyan ngerteni, ing kene aku nuduhake jeneng proyek kasebut, diterangake lan milih template sing bakal ditindakake - Kanban otomatis. Kanggo kita saiki ora penting apa tegese. Ingkang utama yaiku kita bakal duwe papan kanthi tugas, dipérang dadi kolom, ing ngendi saben kolom bakal dadi status tugas:
  1. Kanggo nindakake - kabeh tugas sing direncanakake bakal ditindakake;
  2. Ing proses - tugas sing saiki lagi digarap;
  3. Rampung - tugas sing wis rampung ing proyek iki.
Kanthi cara iki kita bakal ngerti babagan status tugas kita. Endi sing lagi ditindakake, endi sing ditindakake. Kajaba iku, iki penting lan trep ora mung ing kasus sing ana tim, nanging uga nalika sampeyan kerja dhewe. Supaya ana sing katon ing papan, sampeyan kudu nggawe Masalah.

Masalah nulis (masalah) kanggo proyek kasebut

Kanggo ngerti tugas apa sing kudu ditulis, ayo mutusake apa sing bakal ditindakake ing proyek kasebut. Kita butuh aplikasi sing bisa diluncurake kanthi gampang lan cepet, supaya bisa ngakses database, supaya bisa ngatur lan ngganti skema database, supaya bisa nggawe panjaluk REST ing JavaRush kanggo entuk data babagan artikel. Adhedhasar iki, sampeyan bisa milih teknologi ing ngisor iki:
  • SpringBoot - minangka kerangka kanggo aplikasi kita,
  • Spring Data - kanggo nggarap database,
  • Flyway - kanggo nggarap migrasi database,
  • MySQL - minangka basis data kanggo proyek kasebut,
  • Pemula Telegrambot StringBoot - perpustakaan kanggo nggarap bot telegram,
  • Unirest minangka perpustakaan kanggo nggarap panjaluk REST.
Saka kabeh ing ndhuwur, ayo miwiti nggawe tugas.

Cithakan nggawe tugas

Kita bakal nggawe tugas nggunakake cithakan ing ngisor iki:
  1. Jeneng tugas bakal katon kaya iki: JRTB-{IssueNumber}:{IssueDescription} , ngendi:
    • {IssueNumber} iku nomer seri saka masalah. Ayo dadi njupuk siji maneh saka masalah pungkasan;
    • {IssueDescription} - katrangan singkat babagan masalah kasebut.
  2. Ing awak tugas, kita bakal nggawe katrangan sing luwih rinci babagan kasebut (kadhangkala bisa uga pas karo deskripsi ing jeneng tugas).
  3. Kriteria Penerimaan minangka dhaptar syarat, sawise tugas kasebut bisa dianggep rampung. Dadi, kritéria kanggo nampa tugas kasebut. Nggunakake wong-wong mau, reviewer (saka reviewer Inggris - reviewer - wong sing ndeleng carane tugas wis rampung) bisa ngerti apa tugas rampung utawa ora.
Nggunakake cithakan iki, kita bakal nggawe tugas pisanan kita: Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 7Iku uga worth kang lagi nyimak sing nalika nggawe, Aku langsung nemtokake project kang tugas iki cocok kanggo, sing bakal nindakake iku (assignee) lan kang label (label) tugas iki kagungane. Sabanjure, aku mung bakal nuduhake jeneng tugas kanthi katrangan cilik lan pranala menyang. Dheweke kabeh ana ing kene . Kita bakal nindakake tugas kanthi urutan sing padha kaya sing dituduhake ing kene:
  1. [FEATURE] JRTB-0: nggawe proyek boot Skeleton Spring - kabeh wis jelas ing kene: sampeyan kudu nindakake bagean pisanan saka apa sing ditindakake ing artikel sadurunge.
  2. [FEATURE] JRTB-2: tambahake bot telegram menyang proyek kasebut - tambahake bot kosong sing mung bakal nanggapi lan ujar manawa isih urip.
  3. [FEATURE] JRTB-3: Ngleksanakake pola Command kanggo telegrambot - ayo nyiyapake pendekatan sing bener kanggo nggarap perintah ing bot telegram. Nganti saiki kanggo sawetara tim.
  4. [FEATURE] JRTB-1: Tambah lapisan repositori - iki minangka salah sawijining tugas paling gedhe - nggabungake kabeh sing kudu ditindakake kanggo nggarap database.
  5. [FEATURE] JRTB-5: Minangka pangguna, aku pengin nambah grup menyang langganan - iki wis dadi Kisah Panganggo pisanan ing pangerten Agile. Iki bakal entuk manfaat nyata kanggo pangguna: bisa uga nambah langganan grup menyang bot.
  6. [FEATURE] JRTB-12: Ngleksanakake penjadwalan kanggo ngirim kabar babagan artikel anyar - ing kene bakal dadi implementasine nggoleki artikel anyar yen diterbitake kanggo saben grup lan dikirim menyang kabeh pangguna sing langganan grup kasebut.
  7. [FEATURE] JRTB-6: Minangka pangguna, aku pengin ndeleng dhaptar langganan grupku - kabeh gampang ing kene: kita nambahake prentah sing nampilake dhaptar kabeh grup sing pangguna langganan.
  8. [FEATURE] JRTB-7: Minangka pangguna, aku pengin mbusak langganan grup saka langgananku - ing kene sampeyan kudu mbusak langganan pangguna kanggo nganyari ing grup.
  9. [FEATURE] JRTB-8: Minangka pangguna, aku pengin nyetel ora aktif nggunakake bot - implement stopping the bot. Yaiku, kabeh sing kudu ditindakake ing sistem kita supaya bisa mandheg. Tambah printah / stop kanggo ngolah.
  10. [FEATURE] JRTB-9: Minangka pangguna, aku pengin miwiti nggarap bot UTAWA nyetel aktif yen aku nggunakake sadurunge - nambah pangolahan perintah / start. Persis cara sing dikarepake.
  11. [FEATURE] JRTB-10: Minangka administrator, aku pengin ndeleng statistik bot - nggawe koleksi statistik bot. Nambahake kapabilitas administrator.
  12. [FEATURE] JRTB-11: Minangka pangguna, aku pengin ndeleng dokumentasi kanggo bot telegram iki - dokumentasi nulis. Ya, ya, kanca-kanca, sampeyan ora bisa urip tanpa, lan luwih cepet sampeyan sinau nindakake iki, luwih apik kanggo sampeyan))
Iki wis katon kaya wiwitan proyek. Dadi, kita kerja minangka arsitek proyek lan analis bisnis.

Ngisi repositori

Apa maneh sing kudu ditindakake sadurunge miwiti coding? - Penulis, sampeyan bisa nambah pirang-pirang paragraf, apa sampeyan narik metu saka jurang ?? - Ora, kualitas karya ditampilake ing rincian. Lan wong-wong iku sing nggawe pangertèn. Dadi ayo nambah siji rincian liyane. Supaya proyek kasebut dadi populer lan bisa dingerteni kanggo pangembang liyane, kudu diisi. Apa aku kudu nambah? Aku nerangake dhaptar lengkap babagan apa sing bisa ditindakake ing artikel Ngoptimalake karya karo proyek sampeyan ing GitHub: ngerteni Repositori Cithakan Github . Aku menehi saran banget kanggo maca. Penting kanggo kita duwe versi sing jelas, pangerten sing jelas babagan apa sing ditindakake. Mula, aku nambahake file RELEASE_NOTES sing bakal direkam owah-owahan ing proyek kita. Minangka conto, sampeyan bisa ndeleng RELEASE_NOTES saka proyekku (ya, kok ora nuduhake apa sing dakwenehake energi lan kreatifitas). Owah-owahan kanggo saben versi anyar diterangake ana. Aku uga nambah template kanggo nggawe tugas anyar, sing duwe 4 pilihan:
  • Laporan Bug minangka tugas sing digawe dening pangguna / penguji sing nemokake bug ing karyane. Iki minangka perkara sing penting banget: mbantu ngatur koreksi bug;
  • Panjaluk fitur minangka tugas kanggo nambah fungsi anyar. Kabeh tugas pisanan ing proyek kasebut minangka tugas panyuwunan fitur;
  • Panyuwunan dandan - tugas kanggo nambah operasi aplikasi. Contone, kanggo ngganti jawaban test nalika nggarap bot. Aku dudu panulis teknis lan bisa nemokake jawaban sing ora bener. Dadi yen sampeyan duwe kepinginan lan kemampuan, tawaran :)
  • Pitakonan minangka pitakonan kanggo pangembang babagan operasi aplikasi kasebut. Bab sing migunani banget. Ayo ngomong ora ana pangerten babagan karya utawa ana keraguan babagan sawetara pitakonan - sampeyan bisa takon kanthi cara iki lan entuk jawaban langsung.
Yen sampeyan ndeleng GitHub, bakal katon kaya iki: Proyek Jawa saka A nganti Z. Perencanaan proyek: ngukur kaping pitu - dipotong sepisan - 8Saiki kita uga duwe dokumen babagan nggarap JavaRush API kanggo nggarap grup.

Apa sabanjure?

Ya, kita ngrampungake kabeh langkah kasebut lan apa, proyek kasebut bakal ditutup? Ora, ora. Proyek iki bakal terus urip. Bakal dikembangake dening aku lan kabeh siswa / lulusan JavaRush sing pengin melu. Apa rencanamu kanggo masa depan? Akeh banget. Rencana pisanan yaiku nggawe klien Java kanggo JavaRush API. Pangembang janji bakal nggawe akses mbukak Swagger. Kita uga bakal ndeleng apa swagger. Kelangan lan migunani banget. Sabanjure kita bakal nggabungake situs JavaRush karo bot telegram. Ayo nyambungake pangguna menyang bot kanggo nyinkronake langganan. Ayo nggawe statistik babagan ngrampungake kursus. Lan kabeh sing dikarepake minangka Komunitas JavaRush.

kesimpulan

Dina iki kita ngomong babagan karya mburi sadurunge nggawe proyek kasebut. Luwih tepate, babagan carane nggawe rencana kerja, tanpa sampeyan bisa mbuwang akeh energi. Aku mbaleni, wiwitan proyek kasebut wis kasedhiya kanggo umum ing kene . Kaya biasane, aku saranake sampeyan langganan akun ing Github. Kanthi cara iki sampeyan bisa nampa owah-owahan ing project sadurunge artikel diterbitake. Aku wis nganggep yen kabeh pihak sing kasengsem wis ndhaptar ing Github. Ya, proyek kasebut ora maju kanthi cepet kaya sing dikarepake. Nanging, kaya proyek nyata ing karya. Ing artikel sabanjure aku bakal njlèntrèhaké nambahi tugas pisanan. Matur nuwun kanggo kabeh sing wis maca lan ndeleng sampeyan rauh!

Dhaptar kabeh materi ing seri kasebut ana ing wiwitan artikel iki.

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