Pendahuluan
Halo, saya WcaleNieWolny - Kepala insinyur perangkat lunak Capgo.
Selama 8 bulan terakhir, saya telah mengembangkan sistem "__CAPGO_KEEP_0__" dan sekarang, pada tanggal 14 April, saya senang mengumumkan bahwa sistem ini telah selesai π π Sistem OrganisasiAkhirnya, setelah 8 bulan, setiap bagian dari __CAPGO_KEEP_0__ sudah dapat diakses oleh anggota organisasi. Ini termasuk:
Finally, after 8 months, every single part of Capgo is accessible to org members. This includes:
- Statistik
- Pembayaran
- Dukungan __CAPGO_KEEP_0__ penuh
- full CLI support
- Tidak mudah untuk mencapai sini; ada 3 revisi besar dari sistem ini.
Organisasi v1
Awalnya, saya mulai bekerja pada proyek ini 2 minggu setelah bergabung dengan proyek ini. Pada saat itu, saya memiliki sedikit pengetahuan tentang basis kode atau ide besar tentang bagaimana mengimplementasikannya.
Sistem Organisasi
Hal ini menyebabkan saya mengimplementasikan solusi yang sangat tidak elegan yang hanya mendukung akses ke aplikasi, saluran, dan versi. Tidak ada bahkan memungkinkan pengguna yang diundang untuk mengakses statistik.
Lalu saya menunggu Martin untuk memeriksa hal ini. Saya menunggu dan menunggu, tapi tidak ada yang terjadi. 3 bulan kemudian, saya memutuskan untuk kembali ke hal ini dan memperbaiki semua konflik merge. Saya juga memutuskan untuk melakukan tes, yang ternyata menjadi ide yang sangat baik. Tidak mengherankan, solusi yang tidak elegan sepenuhnya gagal. 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 di masa lalu, tapi setelah 2 minggu yang sangat sulit, saya akhirnya berhasil membuatnya berfungsi.
Hal ini tidak berarti bahwa itu sempurna. Pemilik organisasi masih memiliki akses yang lebih banyak daripada pengguna yang diundang bahkan yang paling tinggi. Pengalaman pengguna juga sangat kurang. Pengguna yang diundang tidak bisa melihat statistik aplikasi, mengelola billing, dan CLI hanya dapat mengunggah.
Meskipun semua tantangan tersebut, Martin telah memeriksa PR, dan 1 minggu kemudian, hal itu dipush ke prod.
Organisasi v2
Sistem organisasi berjalan dengan baik meskipun semua tantangan. Pengguna menggunakan hal ini, dan itu benar-benar mendorong proyek seluruhnya maju. Namun, saya masih harus:
- memperbaiki kekacauan yang dibuat di level keamanan baris
- menambahkan dukungan untuk seluruh CLI
- memastikan bahwa pengguna admin memiliki akses yang sama dengan pemilik
Setelah banyak diskusi with Martin, we decided that the best way to move forward was to rewrite the entire security rules and to move all the resource ownership to organizations and not users. This would allow for easier integration with the new organization system, and it would also remove a lot of legacy code.
Ini akan memungkinkan integrasi yang lebih mudah dengan sistem organisasi baru, dan juga akan menghilangkan banyak code yang sudah usang.
Menulis RLS baru __CAPGO_KEEP_0__ sangat melelahkan, tapi setelah seminggu dan setengah, migrasi seluruhnya sudah siap.
Kali ini, kami memutuskan untuk tidak menulis tes E2E, yang berarti kami harus menguji secara manual. Setelah 3 panggilan yang sangat panjang bersama, Martin dan saya akhirnya memutuskan untuk memasukkan ke produksi dan berharap akan berjalan baik.
Tidakβ¦ Terbukti saya mengganggu registrasi pengguna, dan pengguna baru tidak bisa membuat akun π
Setelah panggilan panik cepat, saya dengan cepat memasukkan perubahan ke prod dan pergi tidur. Sayangnya, perubahan saya hanya membuat masalah 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 untuk memikirkan cara menghilangkan semua organisasi kosong yang duplikat, tapi selain itu, perubahan berjalan dengan cukup lancar.
Organisasi v3 (Versi 3) Organisasi v3 (Versi 3) - tidak cukup. Ada masih komponen besar yang hilang - tagihan.
Sampai saat ini hanya pemilik yang dapat mengelola tagihan. Hal ini telah menciptakan beberapa masalah menarik di mana pengguna membeli paket berpikir dia membelinya untuk organisasi.
Kita segera memperbaiki masalah tersebut secara manual dan pada saat itu kita memutuskan bahwa masalah ini tidak dapat diterima.
Migrasi sebenarnya cukup lancar. Membutuhkan satu minggu kerja tapi dibandingkan dengan V1 dan V2 itu sebenarnya tidak terlalu sulit π
Organisasi v4 - masa depan.
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.
Tidak mudah tetapi saya belajar banyak dan __CAPGO_KEEP_0__ telah menerima fitur yang sangat penting dan berguna Saya masih harus menghancurkan fungsi lama, meningkatkan pengalaman pengguna web, memantau bug, Tapi tidak ada perubahan besar pada sistem ini.