Web Infra 大咖面對面:聊聊 JS 狀態機 & XState

語言: CN / TW / HK

「大咖面對面」是一個由 ByteDance Web Infra 聯合稀土掘金舉辦的系列活動,每一期都會邀請一兩位業內大咖來做嘉賓。

活動詳情

:question: 什麼是狀態機?狀態機能幫我們做什麼?我們在日常開發過程中又如何應用狀態機呢?

:question: 當開發者談起狀態管理的時候會遇到哪些基本問題?

:question: 這些資訊是如何組織的?這些資料如何隨時間變化?如何對這些資料建模?

:bulb: 專案中做狀態管理,首先要會明確需要處理的所有狀態。XState 基於狀態機和狀態圖模型提供瞭解決問題的思路。

本期 Web Infra 大咖面對面邀請了 XState 的作者「 David Khourshid 來跟大家聊一聊 JS 狀態機 & XState ~

:point_down: 記得掃碼私信小助手“ 狀態機 ”,進狀態機交流群哦~

:information_desk_person: 嘉賓介紹

David Khourshid| XState 作者、Stately 創始人

David 是一位喜歡彈鋼琴的軟體工程師,對前端動畫、狀態機、前沿使用者互動和開源充滿熱情。之前曾在微軟工作,離職後創辦了 Stately。Stately 公司專注於程式設計視覺化,致力於使最複雜的應用程式邏輯視覺化且開發人員和非開發人員都可以使用。

XState 是什麼

XState,是一個用於建立、解釋和執行有限狀態機和狀態圖,以及管理這些狀態機作為參與者呼叫的庫。

它也是一個框架無關的狀態管理庫,使用有限狀態機和狀態圖描述應用程式狀態。它不屬於傳統的“事件-動作”驅動的狀態管理工具,而是更多的以宣告式狀態編排的方式來實現對應用狀態的描述和管理,並且可以使用狀態圖來視覺化應用程式狀態。XState 遵循 SCXML 規範,它的機制定義完善、沒有引入新的正規化。

XState 在維護一些互動比較複雜的應用時可以提高程式碼的可維護性:

  • 擴充套件性良好,如果設計得當,只需要修改 Machine 即可擴充狀態節點。

  • 遷移性良好,狀態機相當於是和應用一定程度解耦的,因此狀態機可以切換應用在不同元件裡。

  • 使用狀態機描述應用,可以更大程度上約束應用,使得應用是可預測、可觀測的。且新同學可以快速根據狀態機的定義快速上手業務相關邏輯。

  • 遷移性良好,狀態機相當於是和應用一定程度解耦的,因此狀態機可以切換應用在不同元件裡。

溫馨提示

:alarm_clock: 直播時間

2022 年 4 月 26 號 20:00 - 21:30 (UTC+8)

:link: 直播地址 :(記得預約哦)

https://live.juejin.cn/4354/XState?source=2

:question: 提交問題

https://wenjuan.feishu.cn/m?t=sSTL17d9tHBi-31f5

- END -