用Clippy來優化Rust的程式碼 2020 年 1 月 21 日 Magic Len Rust lint最早用於C語言,是一種用來檢查程式碼的工具,現在的主流程式語言幾乎都有lint可以使用,尤其是JavaScript、Python等直譯式程式語言,因為它們的程式碼不會經過編譯,所以特別需要使用lint來檢查原始碼。藉由lint,我們可以寫出疑慮較少、效能更好或是更容易閱讀的程式碼。Rust程式語言雖然是靜態型別的程式語言,而且擁有十分嚴謹的編譯器,官方還是提供了一個lint工具──Clip... 繼續閱讀
用rustfmt讓Rust的程式碼能自動排版 2020 年 1 月 16 日 Magic Len Rust 為了解決不同開發者有各自不同的程式碼風格的問題。像是有些人習慣用一個tab字元進行縮排;有些人則習慣用兩個或四個空格字元來進行縮排。有些人習慣if或for迴圈的大括號要先換行;有些人則習慣和關鍵字寫在同一行。Rust官方提供了rustfmt這個工具來進行官方建議的程式排版方式。 繼續閱讀
如何在Webpack中使用TypeScript? 2020 年 1 月 14 日 Magic Len JavaScript Webpack是JavaScript的模組建置工具,運行在Node.js上,它可以將零散的JavaScript檔案用各式工具優化並打包起來,加快網頁的載入時間。Webpack也並不限於用在JavaScript上,它除了還能打包網頁有用到的靜態資源(如JS、CSS、圖片檔等)外,也還能透過TypeScript的載入器(loader)來編譯並打包TypeScript程式碼。 繼續閱讀
TypeScript 學習之路─第十八章:裝飾器(Decorator) 2020 年 1 月 9 日 Magic Len 研究分享、 JavaScript 裝飾器(Decorator)是一種程式設計模式(Design Pattern),在某些情況下可以用來替代繼承(inheritance),以更靈活、輕量的方式重用程式碼。 繼續閱讀
TypeScript 學習之路─第十七章:命名空間(namespace) 2020 年 1 月 7 日 Magic Len 研究分享、 JavaScript JavaScript如果要替名稱加上命名空間,不外乎就是利用物件或是模組來達成。但在TypeScript中,有「namespace」關鍵字可以讓我們快速地新增命名空間來用。 繼續閱讀
TypeScript 學習之路─第十六章:模組 2020 年 1 月 2 日 Magic Len 研究分享、 JavaScript 我們先前所練習的TypeScript程式幾乎都只是把程式敘述寫在「index.ts」檔案中,雖然我們已經會使用函數、類別來分割不同功能的程式,但當程式愈寫愈多的時候,這樣的作法還是會讓程式變得難以維護。這時就需要用到TypeScript提供的「模組」系統了。 繼續閱讀
TypeScript 學習之路─第十五章:用「async / await」語法擺脫難以閱讀的非同步程式 2019 年 12 月 31 日 Magic Len 研究分享、 JavaScript 上一章介紹的「Promise」雖然可以將非同步程式用看起來像同步程式的方式來撰寫,但寫法還是與實際的同步程式有不小的差異。也因為「Promise」有這樣的問題,所以後來的ES2017引入了「async / await」語法,可以完全地以同步程式的寫法使用非同步程式。 繼續閱讀
TypeScript 學習之路─第十四章:用Promise把非同步程式寫成同步的樣子 2019 年 12 月 26 日 Magic Len 研究分享、 JavaScript 這個章節我們要來探討JavaScript在ES6之後新增的「Promise」。究竟它是如何解決以往用回呼函數來開發JavaScript程式所造成的問題呢? 繼續閱讀
TypeScript 學習之路─第十三章:事件循環(Event Loop)與回呼函數(Callback Function) 2019 年 12 月 24 日 Magic Len 研究分享、 JavaScript 在先前的章節撰寫猜數字程式的時候,我們有先用到「Promise」物件、「async」和「await」關鍵字,如果您不太會JavaScript的話,應該會對這些東西非常不熟悉。這個章節將會開始介紹這些東西的用法與演進關係。 繼續閱讀
TypeScript 學習之路─第十二章:迭代器(Iterator)與產生器(Generator) 2019 年 12 月 19 日 Magic Len 研究分享、 JavaScript 迭代器(Iterator)是一種設計模式(Design Pattern),可以讓程式開發人員依照一定順序來走訪某資料結構中的資料,還可以順便對資料進行一些運算。JavaScript在ES6之後內建了「Symbol.iterator」這個「symbol」型別的值,專門用在前面介紹過的for-of迴圈上。而同樣在ES6之後內建的產生器(Generator)則是用來快速產生迭代器的語法,它還額外提供了能... 繼續閱讀