使用 Fastify 框架以及 TypeScript 語言來開發 Web 服務的起手式 2022 年 11 月 24 日 Magic Len JavaScript Fastify是一個運行在Node.js上的Web框架,注重開發體驗和低開支(overhead),提供完整的Web框架特性,但也保有良好的效能,效能要比Express框架還好上不少。Fastify支援TypeScript語言,筆者建議使用TypeScript來開發Fastify應用程式。然而,要建立出一個完整TypeScript專案是一件繁瑣的事情,我們會需要安裝多種套件及工具並撰寫設定檔和程式碼... 繼續閱讀
如何寫程式處理中華民國的身份證字號? 2022 年 11 月 22 日 Magic Len 研究分享、 Rust、 JavaScript 中華民國的「身份證字號」,正式名稱為「國民身分證統一編號」,是由一個代表出生地的大寫英文字母加上九個數字所組成。雖然《戶籍法》第五十七條第一項規定「年滿十四歲者,應申請初領國民身分證;未滿十四歲者,得申請發給」,但國民就算沒有國民身份證,在出生之後報戶口就會有身份證字號了。當然,台灣不是只有本地國民而已,也存在著他國國籍的人,這類人所使用的相關編號,為了能夠方便在現有的系統中使用,已於西元2021... 繼續閱讀
如何統一「NODE_ENV」環境變數在不同作業系統下的設定方式? 2022 年 11 月 17 日 Magic Len JavaScript 「NODE_ENV」是使用Node.js常去設定的環境變數,不過它其實並不是Node.js本身會去使用到的環境變數,而是這個生態系約定俗成的用法。在Linux、macOS等Unix-like的作業系統環境下,要設定程式的環境變數的值,只要在執行指令的前面加上「變數=值」並用空格隔開即可,但在如Windows等其它作業系統,指令就不支援這樣的語法。 繼續閱讀
建立 TypeScript 專案的起手式 2022 年 11 月 10 日 Magic Len JavaScript JavaScript有著資源豐富的生態圈,但同時也令人在面對這一堆套件、工具以及設定時眼花撩亂、不知所措。TypeScript能用比較嚴謹的方式來開發JavaScript程式,可以大大地提升程式碼的可維護性,也可以增加多人協作時的效率。筆者甚至覺得我們都應該用TypeScript來編寫JavaScript程式會比較好。然而,要建立出一個完整TypeScript專案是一件繁瑣的事情,我們會需要安裝多... 繼續閱讀
Visual Studio Code 免費開源且跨平台的萬用程式碼編輯器 2022 年 11 月 8 日 Magic Len 程式設計、 軟體介紹 Visual Studio Code(常簡稱為VS Code)是微軟公司基於Electron開發的跨平台程式碼編輯器,擁有豐富的擴充套件生態系,免費卻又十分強大,效能也還過得去,是現在最廣為使用的整合開發環境(IDE)。 繼續閱讀
寫程式算階乘,關於階乘的三兩事 2022 年 10 月 27 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 JavaScript 正整數的階乘(Factorial)是小於或等於該數的所有正整數的乘積,若正整數為N,用N!來表示N的階乘。至於0!是階乘的特例,它被定義為1。階乘的運算具有遞迴(recursion)概念,常作為學習程式邏輯的材料,而這篇文章將會說明階乘相關的程式計算。 繼續閱讀
如何在執行git commit前自動進行檢查?Git Hooks的基本用法 2022 年 10 月 13 日 Magic Len 程式設計 Git Hooks可以在執行各個動作的前後自動去觸發某個腳本來做前置處理或是後置處理,這個功能很常被用來在commit前自動檢查程式碼的排版或是寫法上的問題,確保commit過的程式碼排版和風格是一致的。Git Hooks有分為在客戶端(client-side)觸發的Hook,以及在伺服器端(server-side)觸發的Hook,這篇文章只會介紹在客戶端觸發的Hook。 繼續閱讀
在 Linux 作業系統上使用 musl libc 來編譯出靜態可攜的程式,擺脫對於 glibc 的依賴 2022 年 9 月 27 日 Magic Len C & C++、 研究分享 musl libc是C語言的一種標準函式庫,程式碼乾淨且高效,針對靜態連接(static linking)設計,適合被用來製作可攜的程式,且也很容易進行交叉編譯(cross compile),編譯出運行在不同系統環境的程式。GCC(GNU Compiler Collection)是GNU的C/C++編譯器套裝,大部分的Linux發行版使用的C標準函式庫是glibc,其所提供的GCC預設也是基於gl... 繼續閱讀
如何寫程式畫出正六邊形的蜂巢狀網格? 2022 年 8 月 23 日 Magic Len 研究分享、 演算法 所謂的密鋪(tessellation)是用一種或多種平面形狀去填滿一個更大的平面。用正六邊形(regular hexagon)來密鋪成網格(grid),會比用矩形密鋪還來得更複雜,造成更藝術的視覺效果。那麼要如何寫程式來畫出這個複雜的正六邊形網格呢? 繼續閱讀
如何寫程式畫出正多邊形? 2022 年 8 月 18 日 Magic Len 程式設計、 研究分享、 演算法 N邊形,有N個頂點、N個邊。每個邊都是由兩個頂點連線組成,因此只要找到多邊形的各頂點座標,就可以輕易地連線畫出多邊形了!而所謂的正多邊形,它的邊都是等長的,且任意相鄰兩邊之間所形成的夾角也都是相等的。 繼續閱讀