IT
想要開發獨立的 React component library 卻不知從何下手?在工作專案中開發了一堆 component 卻怎樣拆也拆不開?聽說有 create-react-library 這個神奇工具可以快速地解決這些麻煩,立馬來試試。 安裝 yarn global add create-react-library 使用 create-re…
之前的 JavaScript 中的 Functional programmimg 文章中提到有關在 JS 中的 Functional Programming (FP),也提到 ES6 中有 let 與 const 可以用來宣告變數。如果要完全依照 FP 的原則來開發 JS 專案的話,基本上要把 let 給捨棄掉,但只用 const 的話真的就…
Functional Programming (FP) 這個概念已經行之有年了,熱門的純 FP language 有 Haskell 為代表,許多語言也宣稱自己有 FP 也就是非純 FP language,包括 Erlang 、 Clojure 、F# 、 Common Lisp 等,可以一邊享受 OOP 抽象化的強大,也可以享受 FP 的簡潔…
雖然 React Native 提供非常方便的 reload 功能,讓你不需要重新安裝 APP 就能即時更新,但仍然有許多人使用 React Native 開發 APP 時遇到最煩的一個步驟就是「每次 reload 都要甩手機」,甩甩手機跑出選單後按 reload 來載入 bundle 更新畫面。好好一隻手…
Emacs 入坑引導 - 打造自己的 Ruby IDE - Part 2 前言 我在 Part 1 簡單介紹了 Emacs 入門的基礎知識,包括基本按鍵操作、套件安裝及視窗管理等,熟練 Emacs 需要長期使用經驗的累積,大腦才會慢慢適應,Coding 的速度才會跟上思考。在 Part 2 我將繼續介紹…
Decorator Pattern (修飾模式)是一種可以讓你有彈性的動態地擴充 class 的 design pattern ,一般我們要將一個 class 往下分的更細的話往往都要另外在建立更多的 class ,但如果要在往下分的種類太多,或有些子 class 有重疊的性質的話,此時用 Decorator …
許多有直譯器的語言都有 eval() 這個函數或者方法可以用,像是 Python 、 Common Lisp 、 Elixir 等,因為要進行直譯程式碼的話就必須有 REPL (Read–eval–print loop) 的功能,也就是先讀取(read)一段程式碼字串,在對這段字串做求值(eval)來得到執行結果,…
Abstract Factory Pattern (抽象工廠模式)是在 Factory Method Pattern 再往上抽象化一層的 design pattern ,亦即將工廠再進行一次抽象,進而產生出相同介面的不同工廠,來生產出不同的物件。 例如在之前的文章中提到的武器工廠的例子,雖然我們可以透過…
前言 工欲善其事,必先利其器,出色的工匠都有自己熟練的工具;傑出的戰士都有自己拿手的兵器;優秀的碼農都有自己慣用的 Editor。世間 Editor 千百種,Atom、VSCode、Sublime、Notepad++(?)... 等皆是現代碼農之所好。但萬變不離其宗,每個 Editor 都有相似…
Factory Method Pattern (工廠方法模式)顧名思義是一種在 OOP 實現了所謂的工廠運作概念的一種 design pattern 。 工廠是一種用來建立 object 的實體,與直接使用 new 產生 object 不同的是工廠方法是一種抽象的產生 object 的建構方法。例如有一家武器工…
Singleton Pattern (單例模式) 是 OOP 經常被使用的 design pattern 。我們一般所設計的 class 通常都允許產生多個 instance ,但經常有一些情況是希望某個 class 在整個程式運行過程中只允許存在一個 instance ,而且可以在任何地方被存取。 用現實世界舉例…
當我們要安裝語言工具到電腦上,通常有幾種方法: 編譯原始碼 直接下載 binary 透過 apt 等套件管理工具安裝 透過 nvm 、 rvm 等版本管理工具安裝 但如果我想安裝多個語言,又想輕鬆地切換版本,也想要統一管理所有語言的版本的話,這時候 asdf 就是一個好選…