iT邦幫忙

DAY 12
7

node.js伺服器實戰系列 第 12

node.js伺服器實戰(12) - 開發效率與品質問題

即使加進router,也只是讓伺服器具備初步的功能,後續還需要加上更多的東西,讓伺服器架構更有彈性,功能也更完整。但是像這樣不斷地改進設計與添加功能,已經讓程式越來越複雜,也越來越難進行基本的功能測試。這時候還是停下腳步,先考慮要怎麼解決這樣的問題。
首先,程式碼的變動與修改就是一個問題:

  1. 需要有比較好的方法來存放
  2. 需要有辦法知道之前做了什麼,才能在走不通的時候,回到舊路子
  3. 也需要有比較好的方法分享程式碼,才能在將來有機會的時候,群策群力

另外,也需要有好的方法來確保程式碼的品質,這樣也能提昇開發的效率。

以我粗淺的開發經驗,可以做的大概有幾個部份:

版本管理

首先是做版本管理,讓程式的原始碼可以有一個比較好的方式來存放及管理。不過目前實驗範例是公開的,所以找一個免費又公開的版本管理服務,會比自己架設伺服器要來的好。目前先考慮使用git/github好了。

自動化

第二個部份是做自動化,許多建構工具都可以做自動化,例如make、或是node.js使用的waf等。但是make在我自己的windows環境中使用的話,非得透過msys或是cygwin這些模擬unix環境的工具。waf則需要寫python...這個我不太熟悉XD

另外的工具是在Java常用到的自動化工具,例如ant、maven等等,不過我比較熟悉的還是ant,所以也許先用ant來評估看看,是否需要使用到自動化工具。另外,如果能直接使用node.js來驅動,也是可以考慮的方式。

單元測試

在之前的開發過程中,已經逐漸把一些功能拆到獨立的函數或是模組中來執行。所以就可以透過單元測試來比較完整的測試這些東西。

單元測試的工具,最有名的還是Java環境中的JUnit。至於在node.js環境中,不知道有怎樣的單元測試工具可以使用...需要先找一找。

整合測試

每次測試做好的功能,都要打開瀏覽器,而且不同的測試都還需要重啟伺服器來做,這樣測試很沒效率。最好也能有一些方法可以用更好的方式來做整合測試,而且必須能用自動化的方式來驅動。

測試覆蓋率

除了單元測試及整合測試,還必須知道這些測試是否有測試到程式中所有的條件分支,以避免測試不夠完整,導致程式會在一些沒有考慮到的狀況中發生問題。另外,這樣也可以知道程式中是否有一些不必要的條件,導致某部份的程式完全用不到。

靜態分析

除了依賴測試,有一些程式撰寫的風格問題、或是程式碼的瑕疵,光是用測試可能也無法發現,這個時候用靜態分析工具來檢查程式也許是個好主意。目前這個程式並沒有使用特定的程式碼風格,所以不一定需要做這樣的檢查,但是如果有好的撰寫風格,用這樣的工具來維持風格的一致性也是不錯的做法。Javascript是非常自由的語言,但是也因為這樣在寫程式的時候,一不注意就有可能會發生一些問題,這些也希望靜態分析工具可以幫忙。我想除了自動化跟測試,也可以找一找有沒有比較好的靜態分析工具可以使用。

相關文章


上一篇
node.js伺服器實戰(11) - 加入router機制
下一篇
node.js伺服器實戰(13) - 版本管理
系列文
node.js伺服器實戰33

尚未有邦友留言

立即登入留言