Einführung
Hallo, ich bin WcaleNieWolny - Capgo's Leiter der Softwareentwicklung.
Über die letzten 8 Monate habe ich an der Organisationsstruktur, entwickelt und bin als von April 14 froh, dass die Struktur abgeschlossen ist 🎉 🎊
Schließlich, nach 8 Monaten, ist jeder einzelne Teil von Capgo für Mitglieder der Organisation zugänglich. Dies umfasst:
- Apps
- Statistiken
- Rechnungen
- vollständige CLI-Unterstützung
- und noch viel mehr!
Es war nicht leicht, hier zu gelangen; es gab 3 große Revisionen des Systems.
Organisationen v1
Die Anfänge waren rau… Zunächst begann ich mit der Arbeit an diesem Projekt 2 Wochen nach dem Beitritt zum Projekt. Zu diesem Zeitpunkt hatte ich wenig bis keine Kenntnisse über die Codebasis oder irgendeine größere Idee, wie dies umzusetzen war.
Dies führte dazu, dass die am häufigsten verwendete Lösung implementiert wurde, die nur die Zugriff auf Apps, Kanäle und Versionen unterstützte. Es ermöglichte nicht einmal dem eingeladenen Benutzer, Zugriff auf Statistiken zu erhalten.
Und dann wartete ich auf Martin, um dies zu überprüfen. Ich wartete und wartete, aber nichts wirklich Wichtiges passierte. 3 Monate später entschied ich mich, zurückzukehren und alle Merge-Konflikte zu lösen. Ich entschied mich auch, zu testen, was sich als großartige Idee herausstellte. Zu meiner Überraschung funktionierte die hackige Lösung nicht. In diesem Moment entschied ich mich, alle Bugs zu beheben und eine umfassende E2E-Test zu schreiben. Ich musste mit sehr gebrochenen code und einer Vielzahl schlechter Entscheidungen arbeiten, die ich in der Vergangenheit getroffen hatte, aber nach 2 harten Wochen bekam ich es endlich zum Laufen.
Das bedeutet jedoch nicht, dass es perfekt war. Der Besitzer der Organisation hatte immer noch viel mehr Zugriff als sogar der höchst eingeladene Benutzer. Die Benutzererfahrung war auch sehr mangelhaft. Der eingeladene Benutzer konnte nicht einmal die Anwendungstatistiken sehen, die Abrechnung verwalten und der CLI war auf das Hochladen beschränkt.
Trotz all dieser Herausforderungen hatte Martin das PR-Review durchgeführt und eine Woche später wurde es in die Produktion geschoben.
Organisationen v2
Das Organisationssystem funktionierte recht gut trotz all der Herausforderungen. Die Benutzer nutzten es und es brachte den gesamten Projekt voran. Allerdings musste ich noch:
- den Schlamassel in Zeilenbereichssicherheit
- die Unterstützung für den gesamten CLI
- sicherstellen, dass Administratoren denselben Zugriff haben wie der Besitzer
Nach viele Diskussionen mit Martin haben wir entschieden, dass der beste Weg vorwärts zu gehen darin bestand, die gesamten Sicherheitsregeln neu zu schreiben und alle Ressourcenbesitzrechte auf Organisationen und nicht auf Benutzer zu übertragen. Dies würde eine leichtere Integration mit dem neuen Organisationsystem ermöglichen und würde auch viele legacy code entfernen.
Die Schreibweise der neuen RLS code war sehr zeitaufwändig, aber nach einer Woche und einem halben Tag war die gesamte Migration fertig.
Diesmal haben wir jedoch gegen die Erstellung von E2E-Tests entschieden, was bedeutete, dass wir es manuell testen mussten. Nach 3 sehr ausführlichen Gesprächen zusammen mit Martin und ich entschieden uns schließlich, auf Produktion zu pushen und hoffen, dass es gut laufen würde 🙏
Es ging nicht… Es stellte sich heraus, dass ich die Benutzerregistrierung gebrochen hatte, und neue Benutzer konnten kein Konto erstellen 😅
Nach einem schnellen Panikgespräch drückte ich schnell einige Änderungen in die Produktion und ging zu Bett. Leider schufen meine Änderungen nur noch mehr Probleme 😰
Nachdem ich aufgewacht war, entdeckte ich, dass Benutzer viele leere Organisationen hatten. Dies sollte nicht passieren, da nur 1 Organisation pro Benutzer erlaubt sein sollte. Es dauerte einige Zeit, um alle duplizierten, leeren Orgs zu entfernen, aber abgesehen davon verliefen die Änderungen ziemlich reibungslos.
Organisationen v3
Auch das reichte nicht aus. Es fehlte noch ein riesiger Bestandteil - die Abrechnung.
So weit nur der Besitzer die Abrechnung verwalten konnte. Dies hat einige interessante Probleme geschaffen, bei denen ein Benutzer ein Plan gekauft hat, den er für die Organisation dachte.
Die Migration war ziemlich glatt. Es dauerte eine Woche Arbeit, aber verglichen mit V1 und V2 war es wirklich nicht so schwer 🚀
Organisationen v4 - die Zukunft
Nach all diesem harten Arbeit denke ich, dass es Zeit ist, sich auf etwas anderes zu konzentrieren für jetzt 😎
Es war nicht leicht, aber ich habe viel gelernt und capgo hat eine sehr nette und wichtige Funktion erhalten Ich habe noch immer die veralteten Funktionen deprecieren, die Benutzererfahrung der Webanwendung verbessern und nach Fehlern suchen, aber es sollten keine großen Änderungen an diesem System geben.
Dankeschön für das Lesen 🚀
Fortsetzen von A ein neues Organisationssystem
Wenn Sie " + " verwenden Ein neues Organisationssystem zur Planung von Dashboard und __CAPGO_KEEP_0__-Operationen, verbinden Sie es mit API-Übersicht Für die Implementierungsdetails in der API-Übersicht, for the implementation detail in API Overview, Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel, Geräte für die Implementierungsdetails in Geräte, und Bundles für die Implementierungsdetails in Bundles.