分類: Programming

Layered Configuration 多層級自訂組態

讓使用者可以在 system、user、local 等不同層級自訂組態的設計很常見,例如 Git 就是將組態分為 3 個層級(後者可以覆寫前者)- system (/etc/gitconfig)、global (~/.gitconfig) 及 local (.git/config)。

在 Python 中 ConfigParser 提供相關的支援,只要搭配 readfp()read(filenames) 就可以實作出類似的機制。

繼續閱讀 “Layered Configuration 多層級自訂組態"

好用的 wxPython 界面設計工具 — wxFormBuilder

在測試過程中,我們常常透過終端機執行指令,來完成一些事情。這些常用的指令,久了可能會忘,我們可以提供一個整合的介面,方便大家使用。

另外,現有自動化測試已經包含了一連串的 test case。有時我們不需要跑一整套,只需要跑部分的 test case。這時如果有一個介面可以方便提供勾選,指定要執行的 test case,會方便很多。除此之外,測試結果可以直接匯總後顯示在 UI 介面上,會比較直覺。基於這樣的需求,我們可以透過 wxPython 做一個有 UI 介面的測試工具包,幫助工作效率提升。

我們選擇使用 wxFormBuilder 來輔助我們設計 wxPython 程式的介面。

繼續閱讀 “好用的 wxPython 界面設計工具 — wxFormBuilder"

在 Samsung 裝置使用 Android UiAutomator 的 setText(string) 會出現 string 內的字元錯位

使用在台灣販售的 Samsung 手機(搭載「三星 中文輸入法」)搭配 Android UiAutomator 都會遇到一個問題: setText(String) 時會有字串錯位問題。

原因:Samsung 手機自己的 Samsung 中文輸入法鍵盤在使用 Android UiAutomator setText(String) 時會有字串錯位問題。

繼續閱讀 “在 Samsung 裝置使用 Android UiAutomator 的 setText(string) 會出現 string 內的字元錯位"

Windows 下使用最新的 JDK 1.7.0_51 以上版本連接 Jenkins 出現 SecurityException 安全異常的解決方法

在 Windows 內使用 1.7.0_51 以上的 JDK 版本執行 Jenkins slave node 時會遇到安全異常(SecurityException),完整 Error message 如下:

java . lang . SecurityException : Missing required Permissions manifest
attribute in main jar : http : //*****:**/jnlpJars/remoting.jar
at com . sun . deploy . security . DeployManifestChecker . verifyMainJar ( Unknown Source )
at com . sun . deploy . security . DeployManifestChecker . verifyMainJar ( Unknown Source )
at com . sun . javaws . Launcher . doLaunchApp ( Unknown Source )
at com . sun . javaws . Launcher . run ( Unknown Source )
at java . lang . Thread . run ( Unknown Source )
  繼續閱讀 “Windows 下使用最新的 JDK 1.7.0_51 以上版本連接 Jenkins 出現 SecurityException 安全異常的解決方法"

如何寫好程式碼

參考網址:最棒的程式碼,不是程式碼

會寫程式跟會寫 " 好 " 的程式是不一樣的 ,所以我們除了要透過多看別人的程式碼後不斷改進 ,不斷學習。

然後當自己的撰寫程式碼時,可讀性很重要,要讓自己看的懂,也要讓別人看得懂。

 

參考網址:實戰敏捷開發 Practices of an Agile Developer (4) 程式篇

這篇文章主要是在講幾個可以提升程式可讀性的重點。

我曾經在某個版上看到有個研究所的學生寫了一段程式碼,說這是他研究後最有效率的寫法,但是大家都看不太懂。

所以當寫一段很厲害但是沒人看得懂的程式時,這樣之後要修改 bug 或是新增功能時,只會讓下一個人花很多時間在瞭解程式碼,如果當一開始寫的時候就以可以讓人家容易明白為目標,那之後就可以輕鬆許多。

馴服複雜代碼

馴服複雜代碼

內文提到程式複雜度可能會使 bug 密度增高,且讓解 bug 的難度增加。
欲降低程式複雜度的原則是把握「清晰思考」和「清晰表達」。
善用模組化設計,可隔離、獨立一段程式碼的邏輯,讓它變得好測、好驗證。
如此程式碼也變得易讀、易維護。

我們也可把握以上原則,讓我們的測試程式清晰而優雅。