Pengenalan
Halo, saya adalah WcaleNieWolny - Capgo's lead software engineer.
Selama 8 bulan terakhir, saya telah mengembangkan sistem organisasi ini. Sistem Organisasi, dan sebagai tanggal 14 April, saya senang mengumumkan bahwa sistem ini telah selesai π π
Terakhir, setelah 8 bulan, setiap bagian Capgo dapat diakses oleh anggota organisasi. Ini termasuk:
- Aplikasi
- Statistik
- tagihan
- dukungan penuh CLI
- dan banyak lagi!
Perjalanan menuju sini tidaklah mudah; ada 3 revisi besar sistem yang telah dilakukan.
Sistem Organisasi v1
Awalnya, saya masih belajar... Saya mulai bekerja pada proyek ini 2 minggu setelah bergabung. Pada saat itu, saya masih tidak memiliki pengetahuan yang cukup tentang basis kode atau ide besar tentang bagaimana melaksanakan ini.
Karena itu, saya mengimplementasikan solusi yang sangat sederhana yang hanya mendukung akses ke aplikasi, saluran, dan versi. Bahkan, pengguna yang diundang tidak dapat mengakses statistik.
Kemudian, saya menunggu Martin untuk meriview ini. Saya menunggu dan menunggu, tapi tidak ada yang terjadi. 3 bulan kemudian, saya memutuskan untuk kembali ke proyek ini dan memperbaiki semua konflik merge. Saya juga memutuskan untuk melakukan tes, yang ternyata menjadi ide yang sangat baik. Untuk tidak terkejut, solusi sederhana tersebut gagal sepenuhnya. Pada saat itu, saya memutuskan untuk memperbaiki semua bug dan menulis tes E2E yang sangat ekstensif. Saya harus bekerja dengan code yang sangat rusak dan banyak keputusan buruk yang dibuat oleh saya sendiri di masa lalu, tapi setelah 2 minggu yang sangat sulit, saya akhirnya berhasil membuatnya berfungsi.
Namun, itu tidak berarti bahwa sistem tersebut sempurna. Pemilik organisasi masih memiliki akses yang lebih banyak daripada pengguna yang diundang, bahkan yang memiliki akses tertinggi. Pengalaman pengguna juga sangat kurang. Pengguna yang diundang tidak dapat melihat statistik aplikasi, mengelola tagihan, dan CLI hanya dapat mengunggah saja.
Meskipun ada banyak tantangan, Martin telah meriview PR, dan 1 minggu kemudian, sistem tersebut diterapkan ke produksi.
Sistem Organisasi v2
Meskipun sistem organisasi menghadapi banyak tantangan, sistem tersebut berfungsi dengan baik. Pengguna menggunakan sistem tersebut dan itu benar-benar memajukan proyek seluruhnya. Namun, saya masih harus:
- mengatasi kekacauan yang terjadi pada sistem keamanan tingkat baris
- menambahkan dukungan untuk seluruh CLI
- memastikan bahwa pengguna admin memiliki akses yang sama dengan pemilik
Setelah banyak diskusi dengan Martin, kami memutuskan bahwa cara terbaik untuk melanjutkan adalah dengan menulis ulang seluruh aturan keamanan dan memindahkan kepemilikan sumber daya ke organisasi dan bukan pengguna. Hal ini akan memungkinkan integrasi yang lebih mudah dengan sistem organisasi baru, dan juga akan menghilangkan banyak legacy code.
Mengarang RLS baru code sangat melelahkan, tetapi setelah seminggu dan setengah, migrasi seluruhnya sudah siap.
Kali ini, kami memutuskan untuk tidak menulis E2E test, yang berarti kami harus menguji secara manual. Setelah 3 panggilan yang sangat ekstensif bersama, Martin dan saya akhirnya memutuskan untuk memasukkan ke produksi dan berharap akan berjalan dengan baik π
Tidakβ¦ Terungkap bahwa saya mengganggu registrasi pengguna, dan pengguna baru tidak dapat membuat akun π
Setelah panggilan panik yang cepat, saya dengan cepat memasukkan perubahan ke prod dan pergi tidur. Sayangnya, perubahan saya hanya menciptakan masalah yang lebih banyak π°
Setelah saya bangun, saya menemukan bahwa pengguna memiliki banyak organisasi kosong. Ini tidak seharusnya terjadi karena hanya 1 organisasi yang boleh dimiliki per pengguna. Membutuhkan waktu beberapa jam untuk memikirkan cara menghapus semua organisasi duplikat kosong, tapi selain itu, perubahan berjalan cukup lancar.
Sistem Organisasi v3
Bahkan hal ini tidak cukup. Ada masih satu komponen besar yang hilang - tagihan.
Hingga saat ini, hanya pemilik yang dapat mengelola tagihan. Hal ini telah menciptakan beberapa masalah menarik di mana pengguna membeli suatu paket berpikir bahwa dia sedang membelinya untuk organisasi.
Migrasinya cukup lancar. Membutuhkan waktu sekitar seminggu untuk selesai, tetapi jika dibandingkan dengan V1 dan V2, itu tidak terlalu sulit.
Organisasi v4 - masa depan
Sekarang saya pikir sudah saatnya untuk fokus pada hal lain untuk sementara waktu π
It was not easy but I learned a lot and capgo has received a very nice and important feature I still have to deprecate the legacy functions, improve the webapp user experience, monitor for bugs, but there should not be any major changes to this system.
Terima kasih atas bacaan Anda π
Teruskan dari Sistem Organisasi Baru
Jika Anda menggunakan Sistem Organisasi Baru untuk merencanakan dashboard dan API operasi, hubungkannya dengan API Ringkasan untuk detail implementasi di API Ringkasan, Penyampaian untuk detail implementasi di Penyampaian, API Kunci untuk detail implementasi di API Kunci, Perangkat untuk detail implementasi di Perangkat, dan Paket untuk detail implementasi di Paket.