Saya WcaleNieWolny
Halo, saya WcaleNieWolny - Kepala insinyur perangkat lunak Capgo.
Selama 8 bulan terakhir, saya telah mengembangkan Sistem Organisasi Saya sangat senang mengumumkan bahwa sistem ini telah selesai pada tanggal 14 April.
Akhirnya, setelah 8 bulan, setiap bagian dari Capgo dapat diakses oleh anggota organisasi. Ini termasuk:
- aplikasi
- statistik
- tagihan
- dukungan CLI penuh
- dan banyak lagi!
Tidak mudah untuk mencapai sini; ada 3 revisi besar sistem.
Sistem Organisasi v1
The beginnings were rough… Initially, I started working on this 2 weeks after joining the project. At the time, I had little to no knowledge about the codebase or any bigger idea on how to implement this.
This led to implementing the most hacky solution that only supported accessing the apps, channels, and versions. It did not even allow for the invited user to access stats.
Dan saya menunggu Martin untuk memeriksa ini. Saya menunggu dan menunggu, tapi tidak ada yang terjadi secara signifikan. 3 bulan kemudian, saya memutuskan untuk kembali ke ini dan memperbaiki semua konflik merge. Saya juga memutuskan untuk melakukan tes, yang ternyata menjadi ide yang sangat baik. Tidak mengherankan, solusi hacky 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.
Tidak berarti itu sempurna. Pemilik organisasi masih memiliki akses yang lebih banyak daripada bahkan pengguna yang diundang dengan hak tertinggi. Pengalaman pengguna juga sangat kurang. Pengguna yang diundang tidak bisa melihat statistik aplikasi, mengelola billing, dan CLI hanya dapat mengunggah saja.
Meskipun ada banyak tantangan, Martin telah memeriksa PR tersebut, dan setelah seminggu, itu dipush ke produksi.
Organisasi v2
Sistem organisasi berfungsi dengan baik meskipun semua tantangan itu. Pengguna menggunakan sistem ini, dan itu benar-benar mendorong proyek ini 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.
Menulis RLS baru code sangat melelahkan, tetapi setelah seminggu dan setengah, migrasi seluruhnya sudah siap.
Kali ini, kami memutuskan tidak menulis tes E2E, sehingga 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.
Saya tidak sengaja... Ternyata saya mengganggu proses pendaftaran pengguna, sehingga pengguna baru tidak bisa membuat akun 😅
Setelah panggilan panik cepat, saya dengan cepat memasukkan perubahan ke prod dan tidur. Sayangnya, perubahan saya hanya membuat masalah lebih banyak.
Saya bangun, saya menemukan bahwa pengguna memiliki banyak organisasi kosong. Ini tidak seharusnya terjadi karena hanya 1 organisasi yang boleh dimiliki per pengguna. Saya membutuhkan waktu untuk memikirkan cara menghapus semua organisasi duplikat kosong, tetapi selain itu, perubahan berjalan cukup lancar.
Organisasi v3
Masih tidak cukup. Ada komponen besar yang masih hilang - tagihan.
So far only the owner could manage the billing. This has created some interesting issues where a user purchased a plan thinking he was buying it for the organization. We quickly fixed the issue manually and it was at this point that we decided that this issue was unacceptable
Pemindahan data ini cukup lancar. Ini membutuhkan waktu seminggu untuk bekerja, tetapi dibandingkan dengan V1 dan V2, ini tidak terlalu sulit.
Organisasi v4 - masa depan
Setelah semua kerja keras ini, saya pikir sudah saatnya untuk fokus pada hal lain untuk sekarang.
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 telah membaca 🚀
Teruskan dari Sistem Organisasi Baru
Teruskan dari Sistem Organisasi Baru Sistem Organisasi Baru Untuk merencanakan dashboard dan operasional API, hubungkannya dengan untuk memantau dashboard dan API operasional, hubungkan dengan untuk detail implementasi di API Ringkasan Introduction untuk detail implementasi di Introduction Kunci API untuk detail implementasi di Kunci API Peralatan untuk detail implementasi di Perangkat. Bundles Untuk detail implementasi di Paket.