Story

全く新しい組織システム

Capgo チームが組織システムを追加した背景について

WcaleNieWolny

WcaleNieWolny

コンテンツマーケター

全く新しい組織システム

はじめに

こんにちは、私はWcaleNieWolny - Capgoのリードソフトウェアエンジニアです。

過去8ヶ月間、組織システムの開発を行ってきました。4月14日現在、このシステムが完成したことを嬉しくお知らせします 🎉 🎊

ついに8ヶ月を経て、Capgoのすべての機能が組織メンバーにアクセス可能になりました。これには以下が含まれます:

  • アプリケーション
  • 統計情報
  • 課金
  • 完全なCLIサポート
  • そしてさらに多くの機能!

ここまでの道のりは簡単ではありませんでした。システムには3つの主要なリビジョンがありました。

組織システム v1

始まりは困難でした…最初は、プロジェクトに参加して2週間後にこの作業を開始しました。 当時、コードベースについてほとんど知識がなく、実装方法についての大きなアイデアもありませんでした。

これにより、アプリケーション、チャンネル、バージョンへのアクセスのみをサポートする、最も場当たり的な解決策を実装することになりました。 招待されたユーザーが統計情報にアクセスすることさえできませんでした。

そしてMartinのレビューを待ちました。待ち続けましたが、何も起こりませんでした。3ヶ月後、この問題に戻ってマージの競合をすべて修正することを決めました。また、テストを行うことも決めました。これは素晴らしいアイデアでした。 予想通り、場当たり的な解決策は完全に失敗しました。その時点で、すべてのバグを修正し、広範なE2Eテストを書くことを決めました。 非常に壊れたコードと過去の自分が行った多くの悪い決定と向き合わなければなりませんでしたが、2週間の苦労の末、ついに機能するようになりました。

しかし、これは完璧だったということではありません。組織のオーナーは、最高権限を持つ招待ユーザーよりもはるかに多くのアクセス権を持っていました。ユーザー体験も不十分でした。招待されたユーザーはアプリケーションの統計を見ることができず、課金を管理することもできず、CLIはアップロードのみに制限されていました。

これらの課題にもかかわらず、MartinがPRをレビューし、1週間後にプロダクションにプッシュされました。

組織システム v2

すべての課題にもかかわらず、組織システムはかなりうまく機能していました。ユーザーはそれを使用し、プロジェクト全体を前進させました。しかし、まだ以下のことを行う必要がありました:

  • 行レベルセキュリティで作られた混乱を修正する
  • CLI全体のサポートを追加する
  • 管理者ユーザーがオーナーと同じアクセス権を持つことを確認する

Martinとの多くの議論の後、最善の方法はセキュリティルール全体を書き直し、すべてのリソースの所有権をユーザーから組織に移行することだと決定しました。 これにより、新しい組織システムとの統合が容易になり、多くのレガシーコードも削除できます。

新しいRLSコードの作成は非常に退屈でしたが、1週間半後、移行全体の準備が整いました。

しかし今回は、E2Eテストを書かないことを決めました。つまり、手動でテストする必要がありました。3回の非常に広範な通話の後、Martinとわたしはついにプロダクションにプッシュし、うまくいくことを祈ることにしました 🙏

うまくいきませんでした…ユーザー登録が壊れ、新規ユーザーがアカウントを作成できなくなっていたことが判明しました 😅

緊急の通話の後、すぐにプロダクションに変更をプッシュして就寝しました。残念ながら、私の変更はさらに多くの問題を引き起こしました 😰

目が覚めた時、ユーザーに多くの空の組織があることを発見しました。これは、ユーザーごとに1つの組織しか許可されないはずなので、起こってはいけないことでした。重複した空の組織をすべて削除するのに時間がかかりましたが、それ以外の変更は比較的スムーズに進みました。

組織システム v3

これでもまだ十分ではありませんでした。まだ大きな要素が欠けていました - 課金です。

これまでオーナーだけが課金を管理できました。これにより、ユーザーが組織のために購入していると思って料金プランを購入するという興味深い問題が発生しました。 私たちはすぐに手動で問題を修正しましたが、この時点でこの問題は受け入れられないと判断しました。

移行は比較的スムーズでした。1週間の作業を要しましたが、V1とV2と比較すると本当に難しくありませんでした 🚀

組織システム v4 - 未来

このすべての努力の後、今は一旦他のことに集中する時期だと思います 😎

簡単ではありませんでしたが、多くのことを学び、Capgoは非常に素晴らしい重要な機能を獲得しました。 まだレガシー機能の廃止、ウェブアプリのユーザー体験の改善、バグの監視を行う必要がありますが、 このシステムに大きな変更は必要ないはずです。


読んでいただきありがとうございます 🚀

CapacitorJSアプリのための即時更新

CapacitorJSアプリに即座に更新、修正、機能をプッシュし、アプリストアの遅延を回避します。Capgoでシームレスな統合、エンドツーエンドの暗号化、リアルタイムの更新を体験してください。

今すぐ始めよう

最新のニュース

Capgoは、真にプロフェッショナルなモバイルアプリを作成するために必要な最高のインサイトを提供します。