Sep. 09 14:38~15:31
▲寫程式才能變摩登 原始人 開發人員XD
今天在YouTube上看一個影片,聽到一句話讓Teddy笑了出來:「Every modern developer writes test code.」Modern 這個字用的好妙,以前念書的時候提到C++、Java這些語言相比於Fortran、COBOL算是「modern programming langauge」,所以不寫測試的開發人員不就變成「古董級」的開發人員?
這個說法妙的地方在於「古董級開發人員」並非不能存活,畢竟很是很多人在使用Fortran和COBOL,算是老當益壯。只不過他們不是「現代」或「當代」主流的語言罷了。開發人員也是,現代開發人員要寫測試,不然就變成「古董級開發人員」了。
當然只寫測試還不夠,裡想上要做到Kent Beck所說的具備簡單設計(simple design)的能力:
- Passes the tests:通過所有測試,這樣才知道每次修改沒有破壞原本系統的行為。
- Reveals intention:程式要易讀易懂,程式碼本身既可揭露其意圖。最基本但卻不容的的第一步,就是從「取一個好名字」開始。取名字只是第一步,讓函數、物件、元件、架構名符其實,負擔其應有的責任也是很重要的。例如,在MVC中把controller的責任放在View裡面就很容易造成混淆。
- No duplication:程式中相同的概念只用一種方式表達。
- Fewest elements:類別、函數的方法能少就少。不需要的概念不必存活於系統中。最近剛好有一個經驗參加一場refactoring活動,練習的範例是一個採用MVC架構的web-based系統,該系統針對所有的View設計出一個相對應的ViewModel,而且以網頁為主的功能幾乎都有一個相對應的Service類別來處裡「控制邏輯」。實際上大部分的ViewModel和Server都可以將其責任分配到原本的MVC上即可。
如果沒辦法摩登也沒關係,扮演好Fortran、COBOL的角色也是有市場需求與價值。
***
友藏內心獨白:這是選擇題不是是非題。
沒有留言:
張貼留言