Langsung ke konten utama
Cerita

Sistem organisasi yang benar-benar baru

Cerita di balik bagaimana tim capgo menambahkan sistem organisasi

Sistem organisasi baru Capgo ilustrasi blog

Pendahuluan

Halo, saya WcaleNieWolny - lead software engineer Capgo.

Selama 8 bulan terakhir, saya telah mengembangkan sistem organisasi, dan per 14 April, saya senang mengumumkan bahwa sistemnya telah selesai ๐ŸŽ‰ ๐ŸŽŠ

Akhirnya, setelah 8 bulan, setiap bagian dari Capgo dapat diakses oleh anggota organisasi. Ini termasuk:

  • aplikasi
  • statistik
  • billing
  • dukungan penuh CLI
  • dan masih banyak lagi!

Perjalanannya tidak mudah; sudah ada 3 revisi besar pada sistem ini.

Organisasi v1

Awalnya cukup beratโ€ฆ Saya mulai mengerjakan ini 2 minggu setelah bergabung dengan proyek. Saat itu, saya hampir tidak tahu apa-apa tentang codebase atau punya gambaran besar cara mengimplementasikannya.

Hal ini berujung pada implementasi solusi paling hacky yang hanya mendukung akses ke apps, channels, dan versions. Bahkan user yang diundang pun tidak bisa mengakses stats.

Lalu saya menunggu Martin me-review ini. Saya menunggu dan menunggu, tapi tidak ada perkembangan berarti. 3 bulan kemudian, saya memutuskan untuk kembali dan memperbaiki semua merge conflict. Saya juga memutuskan untuk melakukan testing, yang ternyata adalah ide bagus. Tidak mengherankan, solusi hacky tersebut gagal total. Saat itu, saya memutuskan untuk memperbaiki semua bug dan menulis E2E test yang ekstensif. Saya harus bekerja dengan code yang sangat berantakan dan banyak keputusan buruk dari saya di masa lalu, tapi setelah 2 minggu yang berat, akhirnya semuanya berfungsi.

Namun, itu bukan berarti semuanya sempurna. Owner organisasi masih punya akses jauh lebih banyak dibanding user yang diundang dengan akses tertinggi sekalipun. User experience juga masih kurang. User yang diundang bahkan tidak bisa melihat statistik aplikasi, mengelola billing, dan CLI hanya sebatas upload.

Meskipun ada semua tantangan itu, Martin sudah me-review PR-nya, dan seminggu kemudian PR itu di-push ke prod.

Organisasi v2

Sistem organisasi berjalan cukup baik meskipun banyak tantangan. User sudah menggunakannya, dan ini benar-benar mendorong seluruh proyek maju. Namun, saya tetap harus:

  • membereskan kekacauan di keamanan tingkat baris
  • menambahkan dukungan untuk seluruh CLI
  • memastikan user admin punya akses yang sama dengan owner

Setelah banyak diskusi Bersama Martin, kami memutuskan bahwa cara terbaik untuk melangkah maju adalah menulis ulang seluruh aturan keamanan dan memindahkan kepemilikan semua resource ke organisasi, bukan ke user. Ini akan memungkinkan integrasi yang lebih mudah dengan sistem organisasi baru, dan juga akan menghapus banyak code legacy.

Menulis code RLS baru sangat membosankan, tetapi setelah seminggu setengah, seluruh migrasi sudah siap.

Namun kali ini, kami memutuskan untuk tidak menulis test E2E, yang berarti kami harus mengujinya secara manual. Setelah 3 panggilan yang sangat intens, Martin dan saya akhirnya memutuskan untuk push ke production dan berharap semuanya berjalan lancar ๐Ÿ™

Ternyataโ€ฆ Ternyata aku merusak registrasi user, dan user baru tidak bisa membuat akun ๐Ÿ˜…

Setelah panggilan panik singkat, saya dengan cepat push beberapa perubahan ke prod dan pergi tidur. Sayangnya, perubahan saya hanya menciptakan lebih banyak masalah ๐Ÿ˜ฐ

Setelah bangun, saya menemukan banyak organisasi kosong milik pengguna. Ini seharusnya tidak terjadi karena hanya 1 organisasi yang diizinkan per pengguna. Butuh waktu untuk brainstorming cara menghapus semua org duplikat dan kosong, tapi selain itu, perubahan berjalan cukup lancar.

Organizations v3

Bahkan ini masih belum cukup. Masih ada komponen besar yang hilang - billing.

Sampai saat ini hanya owner yang bisa mengelola billing. Ini menciptakan beberapa masalah menarik di mana pengguna membeli plan dengan mengira mereka membelinya untuk organisasi. Kami segera memperbaiki masalah ini secara manual dan pada titik itulah kami memutuskan bahwa masalah ini tidak dapat diterima

Migrasinya cukup mulus. Butuh waktu seminggu, tapi dibanding V1 dan V2, prosesnya tidak sesulit itu ๐Ÿš€

Organizations v4 - masa depan

Setelah semua kerja keras ini, saya rasa sudah waktunya untuk fokus pada hal lain untuk saat ini ๐Ÿ˜Ž

Tidak mudah, tapi saya belajar banyak dan capgo telah menerima fitur yang sangat bagus dan penting Saya masih harus mendeprekasi fungsi legacy, meningkatkan pengalaman pengguna webapp, dan memantau bug, tapi seharusnya tidak akan ada perubahan besar pada sistem ini.


Terima kasih sudah membaca ๐Ÿš€

Lanjut dari A brand new organization system

Jika Anda menggunakan Sistem organisasi yang benar-benar baru untuk merencanakan operasi dashboard dan API, hubungkan dengan Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, Perangkat untuk detail implementasi di Devices, dan Bundle untuk detail implementasi di Bundles.

Live updates untuk aplikasi Capacitor

Saat bug web-layer sudah live, kirim perbaikannya lewat Capgo alih-alih menunggu berhari-hari untuk persetujuan app store. Pengguna mendapat update di background, sementara perubahan native tetap mengikuti jalur review normal.

Terbaru dari Blog kami

Capgo memberikan insight terbaik yang Anda butuhkan untuk membuat aplikasi mobile yang benar-benar profesional.