2006年2月19日 星期日

寫程式的速度

我認為速度跟品質並非完全是反比.

能夠寫的又快又好, 是多數程式設計師的目標.

但如何達到這個目標呢?

要談Software Architecture,Prerefactoring或

Refactoring,Design Pattern等議題,我想有很多.

但是回歸基本面吧!

一個Class,一個method或function,哪怕是一小段

instruction, 要寫的好都需要一些心思.

所謂的好與有品質,我認為不外乎是:

  • 易於維護

  • 具有錯誤控制與容錯的處理

  • 效能好


其中, 易於維護是門大學問.而第二與第三點較具體,

也較容易描述與理解.

以第二點來說,小至配置記憶體,大至開資料庫的

Connection,如果用"義和團式的程式撰寫"思維來

做的話,常常就會遇到莫名奇妙的情形.尤有甚者,

有些人只管當下盡速"完成"程式,因而草率的假設

系統/元件/模組的Input/Output資料一定是合法的,

後果往往不堪設想(諸如資料錯誤,無窮迴圈,記憶體

不足,系統Crash).當遇到這種義和團式的人,往往讓

人很無力.

至於第三點的效能,這就牽扯到演算法與對程式syntax

的理解能力了.努力做出效能良好的軟體,我想是程式設

技人員的職業道德,也是尊重自己職業的表現吧! 但,

比較起來,第二點我認為影響層面遠高於到三點,效能

可以tune,但錯誤造成的影響,往往遠大於效能帶來的

問題.

此外,開始寫程式之前,事先的規劃與設計,還有了解

系統的各項需求與限制,是非常重要的.如果不了解

系統的重點與限制所在,便開始胡亂寫,很可能會造成

重寫,或者是維護性低落的後果.

沒有留言:

張貼留言