TALA 開源釋出:D2 的新正交自動佈局引擎

TL;DR – 發生了什麼以及為什麼重要

TALA(Terrastruct 的自動佈局演算法)已以 MPL-2.0 許可證開源,並包含在 D2 v0.9.0 中(--layout=tala)。它提供了一種正交、白板風格的佈局引擎,產生的架構圖比 D2 以往以 DAG 為中心的引擎更具美學平衡性,同時也支援自訂節點定位,適用於 AI 協助與混合式佈局。


什麼是 TALA?

TALA 是一種專為軟體架構圖設計的新穎自動佈局演算法。與傳統以 DAG 為基礎的引擎(例如 Dagre、ELK)單向擴展不同,TALA 產生的正交佈局更接近手繪白板草圖。該引擎融合了多篇圖形繪製研究論文的技術(原始碼中已引用),並加入原創的啟發式法則,以優化多項美學標準:

  • 對稱性與中位距離
  • 流向與相關節點的群聚
  • 避免標籤衝突的邊線路由
  • 支援使用者指定的節點座標(頂/左)以鎖定圖表的特定部分

如何試用 TALA


博客文章中展示的關鍵功能

1. 比較品質

作者張貼了一批真實世界的 D2 檔案,分別以三種引擎(Dagre、ELK、TALA)渲染。在大多數情況下,TALA 產生的圖表更乾淨、更具對稱性,且更符合手繪架構草圖的視覺風格。唯一注意到的例外是 Go Queue worker 範例,TALA 的佈局顯得比 Dagre/ELK 的從左到右流動更混亂。

2. 用於 AI 生成圖表的自訂定位

TALA 允許使用 topleft 座標明確指定節點位置。這支援一種工作流程:語言模型生成粗略圖表(例如訊號鏈或資料平台),而 TALA 負責邊線路由,同時保留使用者定義的佈局。部落格中包含多個 AI 生成範例(Signal House、Atlas/Data Platform、Night-Shift Mission Control 等),展現此混合方法的應用。

3. 部分定位(混合手動與自動)

第三批範例展示了「部分定位」:部分節點被固定(例如印刷室圖表中的 CMYK 站點),而引擎自動排列其餘節點。這種彈性對於具有固定物理佈局但邏輯元件可變的圖表非常有用。


取捨與效能

"演算法中包含隨機性。它會使用預設的 3 個種子進行多次嘗試,並選擇得分最高的佈局。在相同的種子與相同輸入下,會產生相同的圖表。但假設你只是多加了一個節點,圖表可能看起來完全不同。在 Dagre 和 ELK 中,圖表與先前相比幾乎相同,僅適應新增節點。這有時是可取的。"

  • 隨機性 – TALA 會執行多個帶種子的嘗試,並選擇得分最高的佈局。新增節點可能導致全域重新排列,這雖然有利於美學上的新鮮感,但可能破壞視覺連續性。
  • DAG 處理 – TALA 並未針對深度有向無環圖優化;使用者通常更偏好 Dagre/ELK 用於長條流動的資料流程。
  • 可擴展性 – 執行時間隨圖表大小非線性增長。基準測試可在 d2-benchmarks 倉儲中取得(https://github.com/d2lang/d2-benchmarks)。

Hacker News 上的社群反應

該貼文獲得 278 個讚與 23 則留言。重點包括:

  • 正面評價 – 使用者讚賞其更整潔的輸出,特別是與 D2 預設引擎相比。有留言指出,Go 佇列圖在 TALA 下看起來 更複雜,顯示此引擎並非總是最佳選擇。
  • 成本擔憂 – 有留言提到 TALA 的商業定價超出其「娛樂預算」,但開源釋出已消除此障礙。
  • 整合需求 – 多位參與者詢問 TALA 是否可合併至其他圖形工具(如 Graphviz 或 yEd),反映對更廣泛生態系支援的需求。
  • 使用場景熱情 – 計畫將 TALA 加入自身專案(例如 Daedalus)的開發者對新佈局功能表示高度期待。
  • 工具需求 – 有使用者請求開發 Graphviz 至 TALA 的轉換器,顯示對遷移路徑的興趣。

新使用者實用指南

  1. 從沙盒開始 – 網頁介面完全在瀏覽器端執行,無需安裝即可試用 --layout=tala
  2. 鎖定關鍵節點 – 使用 top/left 鎖定必須保持特定幾何形狀的元件(例如硬體機架、UI 面板)。
  3. 控制隨機性 – 若需在 CI 作業中產生可重現的佈局,可透過 --seed=<int> 傳遞確定性種子。
  4. 測試大型圖表 – 對於超過 200 個節點的圖表,建議與 Dagre/ELK 比較執行時間,以判斷 TALA 的美學優勢是否超過效能成本。
  5. 貢獻程式碼 – 倉儲為開源,歡迎貢獻啟發式法則、效能優化或額外的形狀庫。

結論

TALA 的開源釋出為 D2 生態系增添了一個強大且正交的自動佈局選項,彌補了長期以來針對架構導向圖表繪製的缺口。儘管它在產生平衡、白板風格視覺效果以及支援混合手動/自動定位方面表現出色,使用者仍應注意其隨機性、DAG 性能有限,以及在大型圖表上的較高計算成本。Hacker News 上的社群反饋確認了強烈興趣與對更廣泛整合的需求,顯示 TALA 將迅速成為需要高品質、可程式化圖表的開發者與架構師的標準工具。

Sources

相關

  • Dispatch
  • 專案
  • 專案
  • Dispatch
  • Dispatch