Grover 提供科技產品月租服務,並將其服務開發工作分配給多個團隊。近期,部分團隊在採用 Prisma 後,生產力獲得了顯著提升。請繼續閱讀,瞭解 Prisma 如何造福 Grover,以及您如何從中受益。
煥新我的設備
Grover 提供科技產品月租服務。消費者無需總是花全價購買最新的手機、平板與電腦,Grover 讓用戶能以租賃方式取得設備,並在有新品推出時隨時進行更換。這不僅打破了擁有權與使用權之間的隔閡,也是一種更永續、更具循環性的科技產品使用方式。
已有超過 80 萬人選擇透過 Grover 讓舊科技設備不再被束之高閣。隨著他們近期募得 6,000 萬歐元的 B 輪融資,預計其消費性電子產品的訂閱數量將大幅成長。
跨團隊拆分服務
隨著組織擴張,擁有多個開發團隊、各個團隊負責特定服務或產品領域的情況相當普遍。當團隊拆分並擁有各自的技術堆疊與偏好時,數據與知識可能會變得封閉,溝通也可能面臨挑戰。
Grover 是一個很好的範例,他們成功平衡了團隊的獨立性、自主權與整體協作:他們能夠在多個獨立開發團隊的運作下快速前進,每個團隊使用不同的技術堆疊,同時又能將服務凝聚成一個整體。
Grover 之所以能成功做到這一點,主要歸功於他們整合數據的方式,以及透過聯合 GraphQL API (Federated GraphQL APIs) 實現的數據存取。越來越多情況下,Prisma 正成為新開發專案 (greenfield) 與既有專案 (brownfield) 達成此項成功的關鍵元件。
讓我們進一步檢視這種架構:Grover 的所有服務皆透過聯合 GraphQL API 進行公開,這意味著每個團隊只要輸出的格式能被 GraphQL 消耗,就能選擇自己偏好的技術堆疊進行工作。
具體而言,在 Apollo Federation 架構下,Grover 目前擁有 14 個由多個開發團隊各自開發與維護的獨立服務(且數量持續增加中)。
各團隊使用的語言包含 TypeScript、Ruby 與 Python。部分團隊使用 TypeGraphQL,而其他團隊則使用 Nexus。

鼓勵實驗與嘗試
Grover 鼓勵並獎勵創新實驗,同時也推動團隊間的知識分享。透過跨團隊協作,Grover 的開發者們分享重要經驗,並積極推廣能讓彼此工作更輕鬆的技術。
我們採訪了 Grover 的軟體工程師 Ricardo Almeida,他分享了自己與 Prisma 的結緣經過,以及他是如何受到團隊鼓勵採用 Prisma 的。他在 2020 年開始嘗試 Prisma 並迅速取得成果。Ricardo 對 Prisma 的興趣很快在團隊中(並在生產環境中實作)及 Grover 其他部門間傳開,導致 Prisma 在新專案中的採用率持續有機增長。
「Prisma 的學習曲線很低。因為它結合了 TypeScript 的端到端型別安全 (end-to-end type-safety),生產力變得更高了。」
這種引入創新技術的自由,以及被允許嘗試各種語言與函式庫的環境,確保了 Grover 能夠滿足客戶需求並縮短產品上市時間。
使用 Prisma 取得成功
Prisma 提供三項核心產品,幫助開發者快速開發並確保程式碼安全。
-
Prisma Client - 用於 TypeScript 和 Node 的型別安全資料庫存取客戶端。
Prisma Client 透過在執行查詢時提供型別安全,增強了 Grover 對資料庫存取的信心。
-
Prisma Migrate - 用於流暢資料庫遷移的工具
對於 Grover 而言,資料庫內省 (introspection) 與遷移過程變得平滑簡單,特別是在需要在生產環境中變更資料庫結構時。
-
Prisma Studio - 適用於瀏覽器與桌面的現代化資料庫圖形介面 (GUI)
Grover 的開發者受惠於這款功能豐富的資料庫介面,讓他們能輕鬆查看並編輯資料。
對 Ricardo 來說,Prisma 的這三項核心產品相輔相成,在撰寫程式碼時提供了極佳的開發者體驗,並節省了大量時間。
「Prisma 提供了一種更標準化的方式來存取資料庫、執行遷移以及查看資料,而且開箱即用。Prisma 提供單一且標準的方式來建立查詢,我們不必再擔心資料分組的問題、不需要為 Join 而煩惱,也不需要費心將不同的函式庫拼湊在一起。」
透過 Prisma,開發者可以開箱即用型別安全的資料庫存取客戶端。
資料庫模型使用 Prisma Schema Language 編寫,TypeScript 型別則會從中自動產生。
以 Prisma 建模的資料庫易於讀取與寫入。
只需一個指令,Prisma 模型即可提供型別安全的資料庫存取客戶端。
Prisma 在 Grover 的多元技術堆疊中逐漸普及
Grover 對實驗的鼓勵意味著公司內部的各個團隊擁有不同的技術堆疊。對大多數團隊而言,他們或多或少都混合使用了 TypeScript 與 GraphQL,但具體細節各不相同。
自從 Ricardo 在 Grover 開始使用 Prisma 以來,他一直與其他團隊舉辦學習交流會,讓開發者們能親眼看到 Prisma 所提供的型別安全優勢,以及能讓資料庫作業變得更簡單的全面性工具。
當 Grover 的開發者親眼見識到 Prisma 產品的實際運作時,通常就是轉變發生的時刻。
諸如資料庫內省 (introspection) 等功能,讓人能一窺 Prisma 強大的能力。透過內省,開發者可以從現有的資料庫開始,僅需一個指令即可導出 Prisma 模型。這節省了開發者原本需要花費數小時重建模型的時間,讓他們能立即進入開發狀態。
Prisma Migrate 提供了另一項強大的功能。透過 Migrate,只需幾個指令就能調整資料庫以對齊 Prisma 模型的狀態。Migrate 可以整合在 CI/CD 流程中,以便輕鬆將遷移變更部署至生產環境。
由於只要能安裝 node module 的環境都能使用 Prisma,它與 Grover 內部的各種技術堆疊完美契合。

結論
雖然仍有部分團隊持觀望態度,但 Ricardo 預計在不久的將來,Prisma 的採用率將會持續提升。
「我非常有興趣看到其他團隊遷移到 Prisma,因為我只看得到使用它所帶來的好處。」
Prisma 讓 Ricardo、他的團隊以及 Grover 的許多其他團隊在處理資料庫時變得更有效率。
若想進一步了解 Prisma 如何幫助您的團隊提高生產力,歡迎加入 Prisma Slack 社群。
不要錯過下一篇貼文!
訂閱 Prisma 電子報