Rust程式的效能測試(Benchmark) 2019 年 9 月 7 日 Magic Len 研究分享、 Rust 開發一個會被重複使用的Rust套件(crate)時,想辦法讓這個套件的執行效能達到最佳化,是一件蠻重要的事情,但是要用什麼樣的方式來驗證程式的執行效能呢? 繼續閱讀
如何在C/C++程式語言中使用Rust的函式庫? 2019 年 9 月 5 日 Magic Len C & C++、 研究分享、 Rust 本站先前有介紹過在Rust程式語言中使用C/C++的函式庫的方式,而在這篇文章中會來談談反過來的作法,也就是在C/C++程式語言中使用Rust的函式庫。 繼續閱讀
如何用Webpack來打包JavaScript、SCSS/CSS、HTML網頁和任意檔案? 2019 年 8 月 20 日 Magic Len 研究分享、 JavaScript Webpack是JavaScript的模組建置工具,運行在Node.js上,它可以將零散的JavaScript檔案用各式工具優化並打包起來,加快網頁的載入時間。Webpack也並不限於用在JavaScript上,舉凡網頁有用到的靜態資源(如JS、CSS、圖片檔等),甚至是HTML網頁,Webpack都有辦法打包。 繼續閱讀
Rust程式語言的幽靈資料(PhantomData)是什麼?它可以解決什麼樣的問題? 2019 年 7 月 29 日 Magic Len 研究分享、 Rust Rust程式語言有提供泛型和生命周期機制,在定義列舉或是結構體的時候,可以利用泛型來指定結構體的欄位型別,使我們在程式撰寫階段不必明確地限制住這個結構體到底能儲存哪些型別的資料。如果要進一步的限制泛型型別參數所代表的型別範圍,可以替泛型型別參數加上特性的限制,使其所對應的型別必須要有實作指定的特性。但是,當特性有使用到泛型生命周期參數的話,就可能會遇到一些問題了。 繼續閱讀
Rocket入門指南 第十一章:測試 2019 年 7 月 25 日 Magic Len 研究分享、 Rust Rocket框架提供的測試架構十分簡單,只要產生出想要測試的Rocket實體,再將它提供給「local」模組下的「Client」結構體使用,Rocket應用程式就能搖身一變,可以直接用寫程式的方式來發送請求和接收回應。 繼續閱讀
Rocket入門指南 第十章:資料庫的存取 2019 年 7 月 23 日 Magic Len 研究分享、 Rust Web框架常會搭配資料庫一起使用,Rocket框架當然也有一定程度的資料庫支援。雖然我們可以直接使用Rocket框架提供的應用程式狀態機制來註冊任意套件提供的資料庫實體,但是在程式撰寫上會比較麻煩一點,像是資料庫的位址、帳密等資訊,我們可能就必須要寫死在程式碼內,或是自己再另外開發出可以讓Rocket框架從外部讀取資料庫設定值的功能。Rocket官方提供的「rocket_db_pools」套件,能... 繼續閱讀
Rocket入門指南 第九章:進階處理HTTP回應(Response)的方式 2019 年 7 月 21 日 Magic Len 研究分享、 Rust 在這個章節中,會繼續介紹Rocket對不同資料格式提供的回應支援,包括JSON和MessagePack格式的回應,以及Handlebars和Tera這兩個HTML模板引擎。此外還會介紹Rocket框架本身提供的「快閃訊息」(Flash Message)機制。 繼續閱讀
Rocket入門指南 第八章:中介軟體(Middleware)與整流片(Fairing) 2019 年 7 月 19 日 Magic Len 研究分享、 Rust 大多數的Web框架都會提供中介軟體(Middleware)機制,使用固定的額外程式來處理每次的HTTP請求或是HTTP回應。Rocket框架對於中介軟體的支援是依靠「整流片」(Fairing)來完成的,我們可以替任意的型別實作「fairing::Fairing」特性,使其能作為「掛鉤」(hook)來監聽Rocket框架收到HTTP請求時的事件,或是要送出HTTP回應時的事件。 繼續閱讀
Rocket入門指南 第七章:狀態(State) 2019 年 7 月 17 日 Magic Len 研究分享、 Rust Rocket框架提供了維持狀態(State)的機制,將狀態分為「應用程式狀態」和「請求狀態」兩種。前者可以將任何型別當作狀態來使用,而且可以自由、便利地使這些狀態「載入」到任意路由處理程序中;而後者則是因一個HTTP請求可能會由多個路由處理程序嘗試匹配而誕生出來的快取機制。 繼續閱讀
Rocket入門指南 第六章:進階處理HTTP請求(Request)的方式 2019 年 7 月 15 日 Magic Len 研究分享、 Rust 在這個章節中,將會介紹Rocket框架處理JSON和MessagePack請求的方式,以及Rocket框架內建的處理UUID的做法,還有提供靜態檔案(如圖片檔、CSS、JS等等的靜態資源檔)的更好方式。 繼續閱讀