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. Nanging 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): Aku 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.
Nggawe repositori kanggo karya
Pungkasan, sampeyan bisa nggawe repositori kanggo nggarap bot telegram.- Kita ngisi item sing wis dikenal kanggo kita - jeneng gudang, katrangan singkat.
- Tambah lisensi - Apache 2.0 (sampeyan bisa milih lisensi ing discretion).
- 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: Kaya 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:- Kanggo nindakake - kabeh tugas sing direncanakake bakal ditindakake;
- Ing proses - tugas sing saiki lagi digarap;
- Rampung - tugas sing wis rampung ing proyek iki.
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.
Cithakan nggawe tugas
Kita bakal nggawe tugas nggunakake cithakan ing ngisor iki:- 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.
- Ing awak tugas, kita bakal nggawe katrangan sing luwih rinci babagan kasebut (kadhangkala bisa uga pas karo deskripsi ing jeneng tugas).
- 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.
- [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.
- [FEATURE] JRTB-2: tambahake bot telegram menyang proyek kasebut - tambahake bot kosong sing mung bakal nanggapi lan ujar manawa isih urip.
- [FEATURE] JRTB-3: Ngleksanakake pola Command kanggo telegrambot - ayo nyiyapake pendekatan sing bener kanggo nggarap perintah ing bot telegram. Nganti saiki kanggo sawetara tim.
- [FEATURE] JRTB-1: Tambah lapisan repositori - iki minangka salah sawijining tugas paling gedhe - nggabungake kabeh sing kudu ditindakake kanggo nggarap database.
- [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.
- [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.
- [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.
- [FEATURE] JRTB-7: Minangka pangguna, aku pengin mbusak langganan grup saka langgananku - ing kene sampeyan kudu mbusak langganan pangguna kanggo nganyari ing grup.
- [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.
- [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.
- [FEATURE] JRTB-10: Minangka administrator, aku pengin ndeleng statistik bot - nggawe koleksi statistik bot. Nambahake kapabilitas administrator.
- [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))
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.
GO TO FULL VERSION