Saltare al contenuto principale
Storia

Un nuovo sistema di organizzazione

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

WcaleNieWolny

WcaleNieWolny

Responsabile del marketing del contenuto

Un nuovo sistema di organizzazione

Introduzione

Ciao, sono WcaleNieWolny - L'ingegnere software capo di Capgo.

Negli ultimi 8 mesi, ho sviluppato il sistema di organizzazione " sistema di organizzazione"Sono felice di annunciare che il sistema è stato completato il 14 aprile 🎉 🎊

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

  • applicazioni
  • statistiche
  • fatturazione
  • supporto completo di CLI
  • e molto altro ancora!

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

Organizzazioni v1

Le origini erano ruvide… Inizialmente, ho iniziato a lavorare su questo 2 settimane dopo aver aderito al progetto. All'epoca, avevo poca conoscenza del codebase o qualsiasi idea più grande su come implementarlo.

Ciò portò 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, e si è rivelata un'ottima 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 dalla mia vecchia me, ma dopo 2 settimane difficili, sono finalmente riuscito a farlo funzionare.

Ciò 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 piuttosto scarsa. L'utente invitato non poteva nemmeno vedere le statistiche dell'applicazione, 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

Il sistema delle organizzazioni funzionava piuttosto bene nonostante tutte le sfide. Gli utenti lo utilizzavano e ha veramente spinto l'intero progetto in avanti. Tuttavia, ho ancora dovuto:

  • risolvere il disastro creato in livello di sicurezza per riga
  • aggiungere il supporto per l'intero CLI
  • assicurarsi che gli utenti amministrativi abbiano lo stesso accesso 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 organizzazioni, e avrebbe anche eliminato molti 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 ho rotto l'iscrizione degli utenti, e gli utenti nuovi non potevano creare un account 😬

Dopo un rapido chiamata di panico, ho 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 liscie.

Organizzazioni v3

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

Fino ad ora solo il proprietario poteva gestire la fatturazione. Ciò ha creato alcune questioni interessanti dove un utente ha acquistato un piano pensando di comprarlo per l'organizzazione. Abbiamo risolto velocemente il problema manualmente e fu in questo momento che abbiamo deciso che questo problema era inaccettabile

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

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.


Grazie per aver letto 🚀

Continua da A un nuovo sistema di organizzazione

Se stai utilizzando Un nuovo sistema di organizzazione 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 Bundle per i dettagli di implementazione in Bundle.

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.

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile veramente professionale.