Saltare al contenuto principale
Story

Un nuovo sistema di organizzazione

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

Crediti dell'articolo

Martin Donadieu

Scrittore

Valeria

Recensore

Jordan

Editor

Un nuovo sistema di organizzazione

Introduzione

Ciao, sono WcaleNieWolny - Capgo ingegnere software capo.

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 🎉 🎊

Infine, dopo 8 mesi, ogni singola parte di Capgo è accessibile ai membri dell'organizzazione. Ciò include:

  • applicazioni
  • statistiche
  • facturazione
  • supporto completo CLI
  • e molto altro!

Non è stato facile arrivare fin qui; ci sono stati 3 importanti revisioni dei sistemi.

Organizzazioni v1

Il mio inizio fu difficile… 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 implementare questo.

Questa mi ha portato a implementare la soluzione più hacky che supportava solo l'accesso agli app, ai canali e alle versioni. Non permetteva nemmeno all'utente invitato di accedere alle statistiche.

E poi ho aspettato che Martin mi facesse una revisione. Ho aspettato e aspettato, ma nulla è realmente accaduto. 3 mesi dopo, ho deciso di tornare su questo e risolvere tutti i conflitti di merge. Ho anche deciso di testare, e 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 un code molto rotto e molte cattive decisioni fatte dalla mia precedente versione, ma dopo 2 settimane difficili, sono finalmente riuscito a farlo funzionare.

Questo non significa, tuttavia, che fosse perfetto. L'owner dell'organizzazione aveva ancora molti più accessi di quelli di un utente invitato anche con il livello più alto. L'esperienza dell'utente era anche molto scarsa. L'utente invitato non poteva nemmeno vedere le statistiche dell'applicazione, gestire la facturazione e il CLI era limitato all'upload solo.

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

Organizzazioni v2

The sistema di organizzazione funzionava piuttosto bene nonostante tutte le sfide. Gli utenti lo utilizzavano e ha veramente spinto l'intero progetto avanti. Tuttavia, ancora dovevo:

  • risolvere il disastro creato in livello di sicurezza a riga
  • aggiungere il supporto per l'intero CLI
  • assicurarsi che gli utenti amministrativi abbiano gli stessi accessi del proprietario

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 organizzazione, e avrebbe anche eliminato molti code di legacy.

Scrivere il nuovo RLS code era molto tedioso, ma dopo una settimana e mezza, la migrazione intera era pronta.

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

Non è andata bene… Si scopre che ho 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 andato a letto. Purtroppo, le mie modifiche hanno creato solo più problemi 😩

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

Organizzazioni v3

Nonostante questo non era sufficiente. Mancava ancora un componente enorme: la fatturazione.

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

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

Organizzazioni v4 - il futuro

Dopo tutto questo duro lavoro penso che sia il momento 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.


Grazie per aver letto

Continua con il sistema di organizzazione nuovo di zecca

Se stai utilizzando Un nuovo sistema di organizzazione per pianificare il dashboard e le API operazioni, connettilo con API Overview per i dettagli di implementazione 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 nei dispositivi, e Bundles per i dettagli di implementazione nei Pacchetti.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo invece di attendere 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 dà le migliori informazioni che avete bisogno per creare un'app mobile davvero professionale.