Category Archives: Ruby

如何真正讓 Ruby Constants 常數無法被修改

大概翻了一下 Effective Ruby (中文原文),覺得其中第四個 Be Aware That Constants Are Mutable 有點意思,記錄下來。

在 Ruby 裡面大寫開頭的叫做常數,Ruby 開發者可能知道這個常數是可以被事後修改的,雖然會有警告啦,但是還是被修改到了,那有沒有辦法可以真正無法被修改呢? 原來要用 freeze,而且還需要點技巧。

讓我們看一下代碼:

Continue reading 如何真正讓 Ruby Constants 常數無法被修改

更快更安全: 每個網站都應該升級到 HTTP/2

(本文 crossposting 於 ALPHACamp Blog)

如果說有一項技術可以讓你的網站瀏覽起來更快、更安全、SEO 加分,而且網站工程師不需要改 code 就可以全站使用。更重要的是,還不用額外花錢,天底下有這麼好的事情嗎?

話說 HTTP 通訊協定是全球資訊網(WWW)的基礎,是瀏覽器和網站伺服器之間的通訊協定。而 HTTP/2 是 HTTP/1.1 從 1999 年發布以來,十六年來的最重要的一次升級,這次升級的主要目的,就是為了改善瀏覽器的網頁下載速度(Page Load Time)。

眼見為憑,以下是一些測試網站,比較 HTTP/1.1 和 HTTP/2 的速度差異,這在圖多的情況最為明顯:

Continue reading 更快更安全: 每個網站都應該升級到 HTTP/2

程式設計師升級必練內功:TDD Kata

(本文 crossposting 於 ALPHACamp Blog)

測試驅動開發(Test-Driven Development,簡稱 TDD)是一種程式開發的技巧,簡單來說就是先寫測試程式,然後才實作功能。具體的流程則是透過 Red–Green–Refactor cycle 的循環:

  1. Red – 先寫測試程式,此時因為還沒有實作功能,所以這個測試是會失敗
  2. Green – 快速實作出功能,讓上述的測試通過
  3. Refactor – 重構程式碼,去除多餘重複的代碼,提高程式碼品質,同時維持測試通過

Continue reading 程式設計師升級必練內功:TDD Kata

如何做一位與工程團隊合作良好的產品經理

(本文 crossposting 於 ALPHACamp Blog)

產品經理(Product Manager)是任何新創產品的關鍵角色,他定義了產品的需求規格,找出產品的價值所在。而一個成功的產品代表結合了好的產品需求規格,以及能夠依據這個需求規格實作出來的工程團隊。我們說產品經理負責 Building The Right Product,而工程團隊負責 Building The Product Right,兩者缺一不可。由此可知產品經理與工程團隊之間的關係有多麼重要。

以下是幾點是我認為可以幫助產品經理與工程團隊的合作,一起打造更好的產品:

Continue reading 如何做一位與工程團隊合作良好的產品經理