WORK STORY / 03

建立多品牌 LIFF 共用架構層

CONTEXT

情境

Clinico 旗下不同品牌都有自己的 LINE OA 與 LIFF 服務。

從產品角度看,它們提供的業務內容不同;但實際開發後我發現,每一套 LIFF 都反覆處理非常相似的工程問題:

  • 初始化 timing
  • Login / Authentication
  • Token 狀態
  • Redirect
  • LINE Browser 判斷
  • 異常流程
  • 頁面狀態切換

如果每個品牌各自實作,短期看起來只是幾套不同專案,但需求迭代幾次之後,同一個問題就會慢慢產生三種不同解法。

DECISION & ACTION

我的判斷與做法

我開始把「品牌提供什麼服務」和「LIFF 本身怎麼運作」拆成兩件事情。

品牌真正不同的業務功能繼續留在自己的 Application 裡;

而初始化、Authentication、Routing、共用頁面行為與狀態處理,則整理成一個共用的 LIFF 架構層。

同時保留可以覆寫與擴充的介面,讓不同品牌可以加入自己的特殊流程,而不需要複製整套基礎架構。

OUTCOME

形成的結果

三套 LINE OA 可以建立在同一套 LIFF 流程模型上。

後續再增加服務時,不需要重新解一次 Login、Token、Redirect 或初始化問題;共通行為只需要維護一份,而品牌仍然保有自己的業務差異。

REFLECTION

留下的思考

這段經驗讓我開始更明確區分:

產品差異,不代表工程基礎也必須跟著分叉。

當一個平台的基本行為本質相同,就應該只有一份真正描述它如何運作的來源。

品牌可以有很多個,但 LIFF 的 Login、Routing、Token 與初始化規則,不需要因此存在很多個版本。