1. 程式人生 > >Rust 移動端跨平臺複雜圖形渲染專案開發系列總結(目錄)

Rust 移動端跨平臺複雜圖形渲染專案開發系列總結(目錄)

本系列文件記錄了熊皮皮從0學習Rust程式語言,在開發過程中從C++/Java式基於繼承的面向物件程式設計慣性思維到Rust式面向資料程式設計的開發總結,這些內容來自我和團隊使用Rust開發Windows/macOS與移動端iOS/Android等跨平臺共享原始碼的複雜圖形渲染專案的設計、思考與實踐。

面向資料程式設計更接近函數語言程式設計的思維,個人粗淺理解。Rust語法及其帶來的概念如生命週期起初給我和團隊帶來了相當的學習難度,主要原因是業務難度大、(DEMO)開發週期短,還有我們自我束縛在面向物件思維慣性上,導致寫出來的程式碼經常編譯失敗,打擊了士氣,在某些程度上,它“拖慢”了我們的專案進度。

換個角度看,它強迫我一直思考自己的架構設計及記憶體使用是否合理,而我用C/C++/Java等語言在習慣了某些套路後常常忽略思考問題的本質。從個人和團隊成長看,這是有益的,幾番重構,專案架構和程式碼更加直觀,也許這就所謂的“大道至簡”。 好吧,突然暴露了自己是個菜逼,手動攤手.png。

iOS/Android/macOS/Windows等共享原始碼新專案選擇Rust而非C++的簡要原因是,兩者效能相似,Rust有方便好用的依賴管理器、跨平臺編譯極其方便、語義明確、豐富的第三方庫和文件齊全的官方標準庫。

目錄

  1. Rust 2018開發環境配置與開發效率工具集
  2. C++與Rust變數宣告的比較
  3. C++與Rust引用外部符號的比較
  4. C++與Rust資料型別對應關係
  5. C++與Rust操作裸指標的比較

staging:

  1. C++/Java式面向物件在Rust實踐中所遇問題及解決辦法

cold:

  1. gfx-rs/hal開源專案參與開發總結
  2. gfx-rs/hal原始碼分析
  3. Rust日誌輸出實踐總結
  4. Rust錯誤處理實踐總結
  5. CLion 2018 Rust單元測試總結
  6. Rust庫匯出C介面的總結
  7. Rust跨平臺與條件編譯總結
  8. Rust模組系統團隊實踐總結
  9. Rust與C介面(FFI)互動的總結
  10. gfx-rs/wgpu (WebGPU) 專案的學習總結
  11. Rust使用dlopen、dlsym等函式的總結
  12. Rust巨集開發總結
  13. Rust輸出.a/.so包大小瘦身總結
  14. Rust反射實踐總結
  15. Rust OpenGL ES開發所遇問題及解決辦法
  16. 使用Rust重寫圖形渲染專案的經驗總結

招聘

我們在招聘圖形渲染開發工程師崗位,工作地點北京海淀,校招、社招都有名額,社招傾向中、高階開發崗、30-50k,希望你:

  1. 具有一年以上Rust開發經驗的同學,最好也具備紮實的C或C++基礎
  2. 瞭解或熟悉手機端常用圖形庫,如OpenGL ES 3.2/Metal/Vulkan其中之一,最好具備一個以上圖形渲染或基於Shader的影象處理(GPGPU)專案開發經驗
  3. 擁有良好的工程師素養,可編寫高質量、整潔簡單、易維護的程式碼
  4. **校招崗位(18-30k)**只要求計算機基礎紮實,熟練掌握資料結構、作業系統等課程,瞭解或熟悉計算機圖形和SPIR-V規範、有ACM等參賽或知名公司實習經歷更好。

致謝

感謝Rust社群的朋友們在我開發與學習過程中所提供的熱心幫助。
fyfcauc、dajinyu_haiyan、FEIPER、leizh007、JoySeeDog、黑化的齒輪、我是傻逼我自豪(茶包)、λCrLF·º⁷¹º、KiChjang、{ Chaos Bot}Dzmitry Malyshau @mozillaJosh GrovesZakarum Hal Gentzmtak-、DCjanus、Solmyr。