15 poin oleh ironlung 2024-01-18 | Belum ada komentar. | Bagikan ke WhatsApp
  • Proses dan cara mengembangkan Slack bot yang mengotomatiskan distribusi konten ke blog teknis
  • Proses pengembangan
      1. Menyusun rencana otomatisasi
      • Pertama, saat mendistribusikan konten ke blog teknis, diputuskan untuk mengintegrasikan alat yang sebelumnya digunakan (Notion, GitLab) ke alat baru (Slack bot). Tujuannya agar anggota tim dapat beradaptasi dengan sistem distribusi baru secara mudah dan cepat
      • Kedua, diputuskan untuk menggunakan framework TypeScript. TypeScript digunakan secara luas, dan karena merupakan bahasa dengan tipe statis, pengembangan dapat dilakukan dengan stabil. Ini membantu pemeliharaan sistem distribusi baru agar lebih mudah dan nyaman
      • Ketiga, mendukung interaksi yang ramah pengguna
      • Alasan memilih Slack bot
        • Slack bot memenuhi semua prinsip ini
        • Slack bot menyediakan framework bernama Bolt. Framework ini mendukung JavaScript, Java, Python, serta dokumentasinya juga sangat baik. Dengan merujuk padanya, lebih mudah mengembangkan alat otomatisasi distribusi blog teknis. Bahkan saat dijalankan di lingkungan lokal, alat tersebut tetap bisa diuji di aplikasi Slack
        • Slack mendukung perancangan tampilan yang dilihat pengguna melalui fitur Block Kit. Jika alur layar dirancang dalam JSON dan data diproses dengan fungsi, interaksi dapat dibuat secara intuitif
      1. Menggambar layar
      • Slack mendukung pesan dan modal untuk digunakan dalam berinteraksi dengan pengguna
      • Workflow untuk mendistribusikan konten ke blog teknis diimplementasikan dengan modal
      • Proses distribusi blog teknis dengan memanfaatkan Slack bot
        • Publikasi blog: memilih konten apa yang akan didistribusikan dan ke mana
        • Validasi blog: memeriksa apakah elemen yang dibutuhkan frontend, seperti metadata dan gambar sampul, semuanya ada pada konten yang akan didistribusikan
        • Pemeriksaan issue/MR GitLab: tahap membuat issue dan MR di GitLab. Jika issue dan MR sudah ada, commit dilakukan ke MR tersebut
        • Pesan selesai: setelah distribusi selesai, meninggalkan pesan yang mencakup tautan sumber asli konten di Notion dan tautan GitLab MR
      1. Merancang dan membuat bot
      • Ingin menggunakan satu bot untuk berinteraksi dengan berbagai layanan lain seperti Notion dan GitLab
      • Saat membuat pipeline CI/CD di GitLab untuk mendistribusikan aplikasi atau memodifikasi bot, pendekatan ini dinilai lebih menguntungkan
      • Untuk pengembangan bot, digunakan bahasa TypeScript dan framework Bolt yang didukung Slack
      • Struktur folder diadopsi dengan inspirasi dari NestJS
        • workflow.ts : mendefinisikan tampilan dan alur data, serta menjadi titik awal semua workflow
        • service.ts : mendefinisikan logika bisnis
        • model.ts : mendefinisikan tipe data untuk Slack atau API pihak ketiga
        • modal.ts : mendefinisikan tampilan untuk interaksi dengan pengguna
      1. Cara kerja bot
      • Jika perintah dimasukkan di sembarang channel di Slack, bot akan dipanggil
      • Pada saat itu, pengguna memilih judul konten di Notion dan channel tempat konten akan diunggah, lalu menekan tombol 제출하기, sehingga sistem otomatis memeriksa apakah metadata wajib telah diisi
      • GitLab ID, nama penulis, nama file md, gambar sampul, <!--truncate-->, dan sebagainya adalah metadata yang harus diisi; jika satu saja terlewat, konten tidak dapat diunggah
      • Jika semua metadata wajib sudah diisi, pengguna dapat menekan tombol 계속하기 untuk melanjutkan ke langkah berikutnya
      • Pada tahap ini, issue dan MR untuk konten tersebut otomatis dibuat di GitLab
      • Label juga otomatis ditambahkan ke MR, dan bahkan pipeline untuk mendistribusikan konten juga dijalankan secara otomatis
      • Setelah eksekusi pipeline selesai, status distribusi konten dapat diperiksa terlebih dahulu melalui GitLab Review App
  • Hasil penerapan
    • Frekuensi technical writer dan engineer membuat MR untuk mendistribusikan konten ke blog teknis meningkat sekitar 30%
    • Konten dapat didistribusikan dalam waktu kurang dari 1 menit hanya dengan satu klik
    • Tingkat kegagalan pipeline turun hingga di bawah 5%

Belum ada komentar.

Belum ada komentar.