釘釘企業級前端應用的最佳實踐 | ArchSummit

釘釘(DingTalk)是中國領先的智能移動辦公平臺,由阿里巴巴集團開發,免費提供給所有中國企業,用於商務溝通和工作協同,目前註冊用戶超過1億,註冊組織超過750w家。如此規模體量,對我們的技術架構、開發效率、穩定性提出了巨大的考驗。

曾有人說過,前端的框架穩定性是3個月,架構穩定性是6個月,語言穩定性是1年。聽起來可能有點激進,但是,從某種程度上也反應了前端領域所面對的問題域和環境在不斷的變化。桌面前端也未曾避免。

釘釘桌面端也同步經歷了 Angular1.x 的 SPA 1.0 時代到 NW.JS 的2.0時代。今天釘釘進入 3.0 時代——Hybird App 模式,基於 Chromium Embedded Framework (CEF) 的混合 App。網絡,數據交給 Native C++ 處理,交互 UI 密集型,追求高開發效率的場景用前端來承接。

複雜異步數據流之間的競爭和協作一直是企業級應用要面對的第一大問題。區別於普適前端應用的面向接口編程,企業級應用的最大特點是領域模型驅動開發,交織錯亂的現實業務邏輯通過領域模型進行數字化建模,領域模型之間的競爭和協作又可以映射到異步數據流之間的競爭和協作。而釘釘,在面對這個難題時,依託 Rxjs 強大的響應式編程模型,構建通用、場景等不同粒度的業務流模型,再通過 redux-observable對React tree 之外的副作用進行管理,解決這個問題的同時,也沉澱了業務場景,大大提升了架構的擴展性。

企業級應用的穩定性要求堪比金融級。釘釘是業務工作的基礎設施,如果釘釘不穩定,對企業的工作傷害會非常大。同時,在釘釘開發團隊,我們提倡的是 TDD,我們的測試同學只有3個,而迭代速度保持每三週一個版本。那我們該如何保障穩定性呢?從自測驅動開發,到嚴格的 CR 機制,再到分階段監控模型,通過完善我們的質量保障體系,確保釘釘穩定性。

最近兩年,前端領域最火的詞應該是‘小程序’吧?這個中國人原創的技術體系,極大的提升了開發者的體驗和效率,擴展了生態,幫助用戶獲得更好、更安全的產品。釘釘也不例外,確切的說釘釘桌面端也不例外。釘釘是國內少有的擁有小程序桌面端的應用,越來越多的業務使用小程序,這也爲我們帶來了新的課題,現有的 Hybird 應用如何可以快速的賦能小程序動態化?在此基礎上,我們提出了邏輯編排的概念,將其與 UI 進行獨立。

演講提綱:

釘釘桌面整體架構
釘釘桌面前端
整體架構
複雜異步數據之間的競爭和協作—基於Rxjs的數據流模型
穩定性治理—基於分階段監控的330模型
賦能小程序—邏輯編排層的思考和實踐
挑戰和規劃

聽衆受益:

瞭解桌面前端的技術衍變;
瞭解企業應用的複雜性;
瞭解前端在處理複雜應用的方法論和具體實踐

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章