帰宅後科学者

オタクですが何か?

IT

使用 create-react-library 快速開發獨立 component library

想要開發獨立的 React component library 卻不知從何下手?在工作專案中開發了一堆 component 卻怎樣拆也拆不開?聽說有 create-react-library 這個神奇工具可以快速地解決這些麻煩,立馬來試試。 安裝 yarn global add create-react-library 使用 create-re…

更安全的 JavaScript functional programming - Immutable.js

之前的 JavaScript 中的 Functional programmimg 文章中提到有關在 JS 中的 Functional Programming (FP),也提到 ES6 中有 let 與 const 可以用來宣告變數。如果要完全依照 FP 的原則來開發 JS 專案的話,基本上要把 let 給捨棄掉,但只用 const 的話真的就…

JavaScript 中的 Functional programmimg

Functional Programming (FP) 這個概念已經行之有年了,熱門的純 FP language 有 Haskell 為代表,許多語言也宣稱自己有 FP 也就是非純 FP language,包括 Erlang 、 Clojure 、F# 、 Common Lisp 等,可以一邊享受 OOP 抽象化的強大,也可以享受 FP 的簡潔…

React Native 開發 APP 不用甩手機,在 Emacs 輕鬆 Reload

雖然 React Native 提供非常方便的 reload 功能,讓你不需要重新安裝 APP 就能即時更新,但仍然有許多人使用 React Native 開發 APP 時遇到最煩的一個步驟就是「每次 reload 都要甩手機」,甩甩手機跑出選單後按 reload 來載入 bundle 更新畫面。好好一隻手…

Emacs 入坑引導 - 打造自己的 Ruby IDE - Part 2

Emacs 入坑引導 - 打造自己的 Ruby IDE - Part 2 前言 我在 Part 1 簡單介紹了 Emacs 入門的基礎知識,包括基本按鍵操作、套件安裝及視窗管理等,熟練 Emacs 需要長期使用經驗的累積,大腦才會慢慢適應,Coding 的速度才會跟上思考。在 Part 2 我將繼續介紹…

TypeScript Design Pattern 系列 - Decorator Pattern

Decorator Pattern (修飾模式)是一種可以讓你有彈性的動態地擴充 class 的 design pattern ,一般我們要將一個 class 往下分的更細的話往往都要另外在建立更多的 class ,但如果要在往下分的種類太多,或有些子 class 有重疊的性質的話,此時用 Decorator …

在 Ruby 中用 eval() 呼叫 eval()

許多有直譯器的語言都有 eval() 這個函數或者方法可以用,像是 Python 、 Common Lisp 、 Elixir 等,因為要進行直譯程式碼的話就必須有 REPL (Read–eval–print loop) 的功能,也就是先讀取(read)一段程式碼字串,在對這段字串做求值(eval)來得到執行結果,…

TypeScript Design Pattern 系列 - Abstract Factory Pattern

Abstract Factory Pattern (抽象工廠模式)是在 Factory Method Pattern 再往上抽象化一層的 design pattern ,亦即將工廠再進行一次抽象,進而產生出相同介面的不同工廠,來生產出不同的物件。 例如在之前的文章中提到的武器工廠的例子,雖然我們可以透過…

Emacs 入坑引導 - 打造自己的 Ruby IDE - Part 1

前言 工欲善其事,必先利其器,出色的工匠都有自己熟練的工具;傑出的戰士都有自己拿手的兵器;優秀的碼農都有自己慣用的 Editor。世間 Editor 千百種,Atom、VSCode、Sublime、Notepad++(?)... 等皆是現代碼農之所好。但萬變不離其宗,每個 Editor 都有相似…

TypeScript Design Pattern 系列 - Factory Method Pattern

Factory Method Pattern (工廠方法模式)顧名思義是一種在 OOP 實現了所謂的工廠運作概念的一種 design pattern 。 工廠是一種用來建立 object 的實體,與直接使用 new 產生 object 不同的是工廠方法是一種抽象的產生 object 的建構方法。例如有一家武器工…

TypeScript Design Pattern 系列 - Singleton Pattern

Singleton Pattern (單例模式) 是 OOP 經常被使用的 design pattern 。我們一般所設計的 class 通常都允許產生多個 instance ,但經常有一些情況是希望某個 class 在整個程式運行過程中只允許存在一個 instance ,而且可以在任何地方被存取。 用現實世界舉例…

使用 asdf 統一管理程式語言的版本

當我們要安裝語言工具到電腦上,通常有幾種方法: 編譯原始碼 直接下載 binary 透過 apt 等套件管理工具安裝 透過 nvm 、 rvm 等版本管理工具安裝 但如果我想安裝多個語言,又想輕鬆地切換版本,也想要統一管理所有語言的版本的話,這時候 asdf 就是一個好選…