文件列表見:Rust 移動端跨平臺複雜圖形渲染專案開發系列總結(目錄)
概括:這是我用Rust寫圖形渲染專案的經驗總結,並不是建議大家這麼用,使用哪種程式設計正規化應根據團隊背景及業務需求而定。C++/Java/C#等基於繼承的物件導向做法很容易違反Rust的借用檢查機制,強行堅持這種做法會讓Rust程式碼難以閱讀,也違背了程式碼應該保持簡潔易讀的初衷。雖然Rust支援基於組合的物件導向,也因為借用檢查機制的影響導致程式碼和我們用Java實現的物件導向存在一些差異,讓開發者感覺不自在。
經過幾次重構,目前個人傾向面向資料程式設計、基於組合實現平鋪資料結構及儘可能小的物件導向思路封裝業務需要的資料結構。同時,藉助資料檢視(Data View)方案解決目前借用檢查機制不夠智慧的缺陷。
未完待續
學習資料:
- NLL
- things-rust-doesnt-let-you-do
- free function與mutable data view
- smallcultfollowing.com/babysteps/b…
- smallcultfollowing.com/babysteps/b…
- 自由函式不好組織。mutable data view 的函式依附於 data view struct,可以寫 impl 塊。組織不是指實際上有什麼關聯,是邏輯上的關係。
- 物件導向程式設計的弊端是什麼?
- object-oriented-programming-is-an-expensive-disaster-which-must-end
- ArgumentsAgainstOop
- simple-roguelike Learning about Rust and data-oriented design.
- swarmshooter Experiments with data-oriented programming and highly parallel game systems