文档列表见: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