2013年11月9日 星期六

選擇 IDE 的評估項目

1. 針對特定語言執行測試的便利性
2. 針對特定語言 Debug 工具的便利性
3. 與現有版本控制工具的支援程度

2013年10月8日 星期二

Firefox 和 Chrome 不支援 IPv6 Link-Local Address + Scope ID 的原因

因為 RFC3986 中對於 % 使用的規定,Firefox 和 Chrome 並不支援 URI 使用 IPv6 Link-Local Address + Scope ID (Firefox 曾經在一些版本中有支援但後來已移除)。
不過因為 RFC6874 的定義,未來大家應該都會支援在 URI 使用 IPv6 Link-Local Address + Scope ID。

Reference:
http://code.google.com/p/chromium/issues/detail?id=70762
http://tools.ietf.org/html/rfc3986
http://tools.ietf.org/html/rfc6874

window.location.hostname 遇到 IPv6 Address 的相容性問題

當我們在瀏覽器輸入 IPv6 的 Address 時前後會帶中括號 [] 將 IPv6 的 Address 包起來,
但相同的 IPv6 URI,當我們用 window.location.hostname 取值時,不同瀏覽器上會回傳不同的字串。

在 IE 和 Firefox 回傳的 IPv6 Address 沒有帶中括號。
但 Chrome 回傳的有。

當我們使用 window.location.href 時,如果 URI 中有包含 IPv6 的 Address 時,則不管什麼瀏覽器都要帶 [] 中括號才能正常的運作。

以後應該會統一,但目前在透過 JavaScript 作頁面轉換處理時要注意。

Reference:
http://lists.w3.org/Archives/Public/public-html/2010Dec/0183.html

2013年9月24日 星期二

程式設計筆記

前陣子讀了 2/3 的 Clean Code 補了不少 coding 的觀念 (Java 的部分我不熟,所以跟 Java 相關的我直接跳過),接連兩天的 Code Review 會議又聽到了一些不錯的觀念,就筆記一下。

A. 盡可能在設計時要考慮到
1. 簡化流程
2. 保持彈性
3. 提高擴充性

B. 提高資料的描述性方便取用
1. 變數名稱
2. 物件封裝

C. 處理最大量資料的效率

D. 變數或函式取名時可以參考其他語言常見或既有的名稱,提高可讀性

2013年8月19日 星期一

2013年8月17日 星期六

使用 encodeURIComponent 將字串傳換為 URI 要將空白換成+


##
For application/x-www-form-urlencoded (POST), spaces are to be replaced by '+', so one may wish to follow a encodeURIComponent replacement with an additional replacement of "%20" with "+".
##

Reference:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
http://www.w3.org/TR/html401/interact/forms.html#form-content-type

2013年8月13日 星期二

Boundary Test (Error Handling)

評估資料來源,是否確定一定不會有例外資料進來,如果不會有,就不用檢查,如果資料來源有可能超乎預期,就要檢查。

也或者說提供別人呼叫的 API 都要檢查進來的資料最保險。

1. Web UI
2. CGI (HTTP 的 Request 不一定來自瀏覽器,也可以擷取封包自己塞資料)
3. API