<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><title>MagicLen</title><link>https://magiclen.org/2019/07/feed</link><description>多元化原創文章，內容包羅萬象，有程式語言、網站應用、軟體介紹、硬體介紹、作業系統、旅行遊記、專題採訪、益智問題、文學創作，以及作者們的知識分享和作品分享。</description><language>zh-TW</language><lastBuildDate>Fri, 17 Apr 2026 07:23:10 +0000</lastBuildDate><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>8</sy:updateFrequency><sy:updateBase>1970-01-01T00:00+00:00</sy:updateBase><item><title>如何正確設定Favicon？直接使用這個可以離線運行的Favicon產生器吧！</title><link>https://magiclen.org/favicon-generator</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2019/06/favicon-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2019/06/favicon-220x162.png 1x, https://magiclen.org/wp-content/uploads/2019/06/favicon-440x324.png 2x, https://magiclen.org/wp-content/uploads/2019/06/favicon-660x486.png 3x" alt="">
在設計網頁的時候，總會需要替自己的網頁設計一個適合的Favicon來作為招攬客人的門牌，然而很多人並不知道設計好的Favicon圖片檔案要如何才能正確地套用在自己的網頁上。如果我們向Google搜尋查詢Favicon產生器相關的關鍵字，可以找到很多網頁工具，能夠直接透過網頁瀏覽器將自己做好的Favicon圖片檔案上傳到別人的伺服器上，產生出favicon.ico等Favicon相關的檔案格式。這些...]]></description><category>作品分享</category><category>網路相關</category><category>軟體介紹</category><category>Favicon</category><category>Favicon Generator</category><guid>https://magiclen.org/favicon-generator</guid><pubDate>Wed, 31 Jul 2019 12:00:38 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rust程式語言的幽靈資料(PhantomData)是什麼？它可以解決什麼樣的問題？</title><link>https://magiclen.org/rust-phantomdata</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Rust程式語言有提供泛型和生命周期機制，在定義列舉或是結構體的時候，可以利用泛型來指定結構體的欄位型別，使我們在程式撰寫階段不必明確地限制住這個結構體到底能儲存哪些型別的資料。如果要進一步的限制泛型型別參數所代表的型別範圍，可以替泛型型別參數加上特性的限制，使其所對應的型別必須要有實作指定的特性。但是，當特性有使用到泛型生命周期參數的話，就可能會遇到一些問題了。]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><guid>https://magiclen.org/rust-phantomdata</guid><pubDate>Mon, 29 Jul 2019 12:00:25 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>被Rc或是Arc等智慧型指標包裹的T: AsRef&lt;u8&gt;要怎麼才能當作Reader來用？</title><link>https://magiclen.org/rc-u8-reader</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
在開發Rust程式的時候，會使用到各式各樣別人開發的套件。這些套件雖然很方便，可以替我們節省不少開發時間，但是套件提供的API，卻不一定能夠完全滿足我們的需求。「Reader」的擁有權被取走，就是一個常見的例子。]]></description><category>Rust</category><category>Rust</category><category>rc-u8-reader</category><guid>https://magiclen.org/rc-u8-reader</guid><pubDate>Sat, 27 Jul 2019 20:00:54 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rocket入門指南 第十一章：測試</title><link>https://magiclen.org/rocket-testing</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Rocket框架提供的測試架構十分簡單，只要產生出想要測試的Rocket實體，再將它提供給「local」模組下的「Client」結構體使用，Rocket應用程式就能搖身一變，可以直接用寫程式的方式來發送請求和接收回應。]]></description><category>研究分享</category><category>Rust</category><category>MySQL</category><category>SQL</category><category>資料庫</category><category>Rust</category><category>Rocket</category><category>Rocket入門指南</category><guid>https://magiclen.org/rocket-testing</guid><pubDate>Thu, 25 Jul 2019 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rocket入門指南 第十章：資料庫的存取</title><link>https://magiclen.org/rocket-database</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Web框架常會搭配資料庫一起使用，Rocket框架當然也有一定程度的資料庫支援。雖然我們可以直接使用Rocket框架提供的應用程式狀態機制來註冊任意套件提供的資料庫實體，但是在程式撰寫上會比較麻煩一點，像是資料庫的位址、帳密等資訊，我們可能就必須要寫死在程式碼內，或是自己再另外開發出可以讓Rocket框架從外部讀取資料庫設定值的功能。Rocket官方提供的「rocket_db_pools」套件，能...]]></description><category>研究分享</category><category>Rust</category><category>MySQL</category><category>NoSQL</category><category>SQL</category><category>資料庫</category><category>Rust</category><category>Rocket</category><category>MongoDB</category><category>Rocket入門指南</category><guid>https://magiclen.org/rocket-database</guid><pubDate>Tue, 23 Jul 2019 12:00:53 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rocket入門指南 第九章：進階處理HTTP回應(Response)的方式</title><link>https://magiclen.org/rocket-advanced-http-response</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
在這個章節中，會繼續介紹Rocket對不同資料格式提供的回應支援，包括JSON和MessagePack格式的回應，以及Handlebars和Tera這兩個HTML模板引擎。此外還會介紹Rocket框架本身提供的「快閃訊息」(Flash Message)機制。]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><category>Handlebars</category><category>Rocket</category><category>Rocket入門指南</category><category>Tera</category><guid>https://magiclen.org/rocket-advanced-http-response</guid><pubDate>Sun, 21 Jul 2019 12:00:43 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rocket入門指南 第八章：中介軟體(Middleware)與整流片(Fairing)</title><link>https://magiclen.org/rocket-middleware</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
大多數的Web框架都會提供中介軟體(Middleware)機制，使用固定的額外程式來處理每次的HTTP請求或是HTTP回應。Rocket框架對於中介軟體的支援是依靠「整流片」(Fairing)來完成的，我們可以替任意的型別實作「fairing::Fairing」特性，使其能作為「掛鉤」(hook)來監聽Rocket框架收到HTTP請求時的事件，或是要送出HTTP回應時的事件。]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><category>Rocket</category><category>Rocket入門指南</category><guid>https://magiclen.org/rocket-middleware</guid><pubDate>Fri, 19 Jul 2019 12:00:34 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rocket入門指南 第七章：狀態(State)</title><link>https://magiclen.org/rocket-state</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Rocket框架提供了維持狀態(State)的機制，將狀態分為「應用程式狀態」和「請求狀態」兩種。前者可以將任何型別當作狀態來使用，而且可以自由、便利地使這些狀態「載入」到任意路由處理程序中；而後者則是因一個HTTP請求可能會由多個路由處理程序嘗試匹配而誕生出來的快取機制。]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><category>Rocket</category><category>Rocket入門指南</category><guid>https://magiclen.org/rocket-state</guid><pubDate>Wed, 17 Jul 2019 12:00:21 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rocket入門指南 第六章：進階處理HTTP請求(Request)的方式</title><link>https://magiclen.org/rocket-advanced-http-request</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
在這個章節中，將會介紹Rocket框架處理JSON和MessagePack請求的方式，以及Rocket框架內建的處理UUID的做法，還有提供靜態檔案(如圖片檔、CSS、JS等等的靜態資源檔)的更好方式。]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><category>Rocket</category><category>UUID</category><category>Rocket入門指南</category><category>JSON</category><category>MessagePack</category><guid>https://magiclen.org/rocket-advanced-http-request</guid><pubDate>Mon, 15 Jul 2019 12:00:10 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Rocket入門指南 第五章：錯誤捕獲者(Error Catcher)</title><link>https://magiclen.org/rocket-error-catcher</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
在Web應用程式提供服務時，程式難免會遭遇到一些預期內或是預期外的錯誤，像是客戶端請求的網址沒有路由處理程序能夠處理、請求中的資料格式有誤(例如原本需要輸入數字的地方被輸入成字母文字)、授權逾期，或是資料庫突然連線失敗等，Web應用程式應該都要有能力避免應用程式崩潰(crash)，並且照常發送HTTP回應。而Rocket框架當然預設就有處理這些錯誤的能力，開發者甚至可以利用自訂的錯誤捕獲者(Err...]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><category>Rocket</category><category>Rocket入門指南</category><guid>https://magiclen.org/rocket-error-catcher</guid><pubDate>Sat, 13 Jul 2019 12:00:24 +0800</pubDate><dc:creator>Magic Len</dc:creator></item></channel></rss>