Introduzione
Ecco, sono io Non sono mai libero - Capgo's ingegnere software capo.
Negli ultimi 8 mesi, ho sviluppato il sistema di organizzazione 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 di CLI
- e molto altro!
E non è stato facile arrivare qui; ci sono stati 3 importanti revisioni dei sistemi.
Organizzazioni v1
Il mio inizio è stato difficile… Ho iniziato a lavorare su questo 2 settimane dopo aver aderito al progetto. All'epoca, avevo una conoscenza limitata del codice o di qualsiasi idea più ampia su come implementare questo.
Questa ha portato all'implementazione della 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 revisionasse questo. 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 dal mio passato, 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 anche dell'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
Lo sistema di organizzazione stava funzionando piuttosto bene nonostante tutte le sfide. Gli utenti lo stavano utilizzando e ha veramente spinto l'intero progetto in avanti. Tuttavia, ancora dovevo:
- risolvere il disastro creato in livello di sicurezza per 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 intere regole di sicurezza 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 noioso, 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 è 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 andato a letto. Purtroppo, le mie modifiche hanno creato solo più problemi 😜
Non appena mi sono svegliato, ho scoperto che gli utenti avevano un sacco di organizzazioni vuote. Ciò non doveva succedere, poiché solo 1 organizzazione doveva essere consentita per utente. È stato necessario un po' di tempo di brainstorming per eliminare tutte le org duplicate vuote, ma oltre a ciò, le modifiche sono andate piuttosto lisce.
Organizzazioni v3
Ma anche questo non era sufficiente. C'era ancora un componente enorme mancante - la fatturazione.
Finora solo il proprietario poteva gestire la fatturazione. Ciò ha creato alcuni interessanti problemi dove un utente ha acquistato un piano pensando di comprarlo per l'organizzazione.
Noi abbiamo risolto velocemente il problema manualmente e fu in questo momento che decidemmo 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
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.
Non è stato facile ma ho imparato molto e __CAPGO_KEEP_0__ ha ricevuto una caratteristica molto bella e importante
Il sistema non dovrebbe avere più cambiamenti significativi.
Grazie per aver letto Continua da A brand new organization system. Se stai utilizzando A brand new organization system per pianificare il dashboard e le API operazioni, connettilo con API Panoramica per i dettagli di implementazione in API Panoramica, 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.