網頁程式的設計原理及注意事項
作者:潘國雄
這篇文章不是教你怎麼寫程式,而是先預設你己經是很有經驗的程式設計師,然後討論一些比較抽象的程式設計原理。
會寫程式不稀奇,看得懂別人寫的程式才稀奇,如果對於不會寫程式的人,如何讓你快速了解寫程式的原理,我想,用數學考題來理解,應該還蠻適合的,只是這個題目要求得一個圓滿解答,可能要算一天,或是一個月,甚至一年。
舉例假設有一個學生,寫了100行程式碼求得了一個答案,有一個學生卻要1,000行的程式碼。答案都對,只是以效率的角度來看,當然是用100行寫的程式是比較好的程式。所以程式有好壞之分,卻很難有對錯之分。
一支好的程式,以筆者的經驗,應該有以下元素:
1. 程式碼的簡潔性:程式碼愈短愈好,看不到一句廢話。
2. 程式碼的可閱讀性:邏輯流暢,不因為簡潔而產生邏輯上的盲點。
3. 程式碼的可移植性:好的程式碼,應產生可重複利用的機制,把它元件化。
4. 程式功能的彈性:程式碼的邏輯,要創造最大的彈性,才能把程式的應用範圍擴大。
5. 程式功能的可擴充性:牽一髮而動全身,這樣的程式碼,在日後維護時就慘了。
以上是抽象的概念,在實作上,有以下的方式可以建議:
1. 程式碼要儘量符合資料層、邏輯層、顯示層的規範,這樣會大大的增加程式的可閱讀性,更重要的以後想要寫類以的功能,可以依資料層、邏輯層、顯示層的相似度進行複製,大大的增加現有程式碼的可利用性。
2. 把重複發生的程式碼元件化,用呼叫的方式帶入,這樣可以增加程式碼的簡潔性和可移植性。但要注意的是,過多的呼叫,會降低程式碼的可閱讀性,所以這中間要求得一個平衝。
所謂的呼叫,以數學的邏輯理解,就是公式,在程式上就是函式,每一個設計師都可以把自己寫的函式集中起來,我們稱之為函式庫。程式設計師可以創造自己的函式庫,因為是自己創造的,所以幾乎只有自己才看得懂,這就是問題所在,所以程式計師時常會看不懂其他設計師所寫的程式。所以要讓不同設計師看得懂彼此的程式碼,一定要共用一組函式庫,所以函式庫的管理,對程式設計師很重要,如果一家公司有多位程式設計師,函式庫的管理對一家公司而言,就幾乎是它的命脈了。
3. 網頁程式碼的呼叫,除了使用函式庫的方式,網頁也提供了include的方式,include可以任意建立不同網頁的關聯,非常好用,但是用太多的時候,當關聯到你也看不懂它的關聯時,程式碼的可閱讀性就會變成零。建議只能有一層的呼叫,而且統一寫在程式碼的最前面。因為帶有include的網頁比較難閱讀,在使用上,態度要非常謹慎。
4. 寫程式要有系統介面的概念,把同一個系統功能的程式碼放在一起,儘量不要和其他系統的功能有任何關聯,如果不得已一定要有某種程度的關聨,就要透過介面的原則來處理,什麼是介面呢?就是創造兩個系統之間的資料傳遞流程,這個系統介面一定要用最簡潔和最標準化的程式碼來表示,如此一來,這一群程式碼到底和其他群的程式碼,會產生什麼資料關聯或是運算關聯,就可一目瞭然,如此才能把單一的功能和整個系統的複雜度降至最低。