Vai direttamente al contenuto principale
A storia

Un nuovo sistema di organizzazione

La storia di come il team capgo ha aggiunto un sistema di organizzazione

WcaleNieWolny

WcaleNieWolny

Content Marketer

context: Pagina/Area: Sito web di marketing Capgo. Ruolo: Etichetta breve o elemento di navigazione. Visto in: pagina blog/[slug].astro. Chiave messaggio `content_marketer` (Content Marketer).

Un nuovo sistema di organizzazione

Introduzione Ciao, sono WcaleNieWolny - Ingegnere software capo di Capgo.

Negli ultimi 8 mesi, ho sviluppato il sistema di organizzazione, e a partire dal 14 aprile sono felice di annunciare che il sistema è stato completato 🎉 🎊

Finally, after 8 months, every single part of Capgo is accessible to org members. This includes:

  • applicazioni
  • statistiche
  • facturazione
  • full CLI support
  • e tanto altro!

Non è stato facile arrivare a questo punto; ci sono stati 3 revisioni principali del sistema.

Organizzazioni v1

Il punto di partenza era difficile… Inizialmente, ho iniziato a lavorare su questo 2 settimane dopo aver aderito al progetto. All'epoca, avevo scarsa conoscenza del codice o di qualsiasi idea più ampia su come implementarlo.

Questa ha portato all'implementazione della soluzione più hacky che supportava solo l'accesso agli app, ai canali e alle versioni. Non consentiva nemmeno all'utente invitato di accedere alle statistiche.

E poi ho aspettato che Martin revisionasse questo. Ho aspettato e aspettato, ma nulla è realmente accaduto. 3 mesi dopo, ho deciso di tornare a questo e risolvere tutti i conflitti di merge. Ho anche deciso di testare, che si è rivelata una grande idea. Non sorprende, la soluzione hacky è fallita completamente. In quel momento, ho deciso di risolvere tutti i bug e scrivere un test E2E estensivo. Ho dovuto lavorare con code molto rotto e molte cattive decisioni fatte dal passato me, ma dopo 2 settimane difficili, sono finalmente riuscito a farlo funzionare.

Questo non significa, tuttavia, che fosse perfetto. L'owner dell'organizzazione aveva ancora molto più accesso di quanto non avesse anche l'utente invitato più alto. L'esperienza utente era anche molto scarsa. L'utente invitato non poteva nemmeno vedere le statistiche delle applicazioni, gestire la fatturazione e il CLI era limitato all'upload.

Nonostante tutte queste sfide, Martin aveva revisionato il PR, e una settimana dopo, è stato spinto in prod.

Organizzazioni v2

L'organizzazione del sistema stava funzionando piuttosto bene nonostante tutte le sfide. Gli utenti lo stavano utilizzando e ha veramente spinto l'intero progetto in avanti. Tuttavia, ho ancora dovuto:

  • risolvere il disastro creato in livello di sicurezza a riga
  • aggiungere il supporto per l'intero CLI
  • assicurarsi che gli utenti amministrativi abbiano lo stesso accesso dell'owner

Dopo molte discussioni con Martin, abbiamo deciso che il modo migliore per procedere era ri scrivere le regole di sicurezza intere e spostare la proprietà di tutti i risorse alle organizzazioni e non agli utenti. Ciò avrebbe permesso un'integrazione più facile con il nuovo sistema di organizzazioni, e avrebbe anche eliminato molte legacy code.

Scrivere i nuovi RLS code è stato molto tedioso, ma dopo una settimana e mezza, la migrazione completa era pronta.

Questa volta, tuttavia, abbiamo deciso di non scrivere il test E2E, il che ha significato che dovevamo testarlo manualmente. Dopo 3 chiamate molto estensive insieme, Martin e io abbiamo finalmente deciso di pubblicare in produzione e sperare che andasse bene 🤖

Non è andato bene... Si è scoperto che avevo rotto l'iscrizione degli utenti, e gli utenti nuovi non potevano creare un account 😪

Dopo un rapido chiamata di panico, ho velocemente spinto alcune modifiche in prod e sono andato a letto. Purtroppo, le mie modifiche hanno creato solo più problemi 😪

Dopo che mi sono svegliato, ho scoperto che gli utenti avevano molte organizzazioni vuote. Ciò non doveva succedere poiché solo 1 organizzazione dovrebbe essere consentita per utente. È stato necessario un po' di brainstorming per eliminare tutte le org duplicate vuote, ma oltre a questo, le modifiche sono andate piuttosto liscio.

Organizzazioni v3

Anche questo non era sufficiente. C'era ancora un componente enorme mancante - fatturazione.

So fino ad ora solo il proprietario poteva gestire la fatturazione. Ciò ha creato alcune interessanti questioni in cui un utente ha acquistato un piano pensando di comprarlo per l'organizzazione.

La migrazione è stata piuttosto liscia. È stato necessario una settimana di lavoro, ma rispetto a V1 e V2 non era davvero così difficile.

Gli Organizzazioni v4 - il futuro

Dopo tutto questo duro lavoro penso che sia ora di concentrarsi su qualcos'altro per ora.

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.


Ringrazio per aver letto.

Continua da A un nuovo sistema di organizzazione.

Se stai utilizzando Un nuovo sistema di organizzazione A to plan dashboard and API operations, connect it with API Overview for the implementation detail in API Overview, Introduzione per i dettagli di implementazione in Introduzione, API Chiavi per i dettagli di implementazione in API Chiavi, Dispositivi per i dettagli di implementazione in Dispositivi, e Pacchetti per i dettagli di implementazione in Pacchetti.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo invece di aspettare giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Sostegno umano da Martin

Inizia subito

Ultimi articoli dal nostro Blog

Capgo vi offre le migliori informazioni che hai bisogno per creare un'app mobile davvero professionale.