2005/07/08

Component 設計之道

我認為 component 應該要
1. 精簡獨立:不該有的功能就不要加進來,免得只需要其中一部份功能的人還得把不需要的 library 都放進來,做出來的程式會太肥。就好像生物從單細胞生物演化成分功很細的細胞一樣,才容易把不需要的功能拿掉,而不會牽一髮動全身。
2. 有彈性:component 是要給很多程式共享使用的,不能只為某一支程式量身打造。所以很多參數設定要從上面傳下來,不應該寫死在 component 裡頭。甚至可以在不太增加程式複雜度的情況下,設計成多用途。你不會希望一個 component 只會算 1+2,而不會算 2+1 吧。
3. 穩定易用:讓人家隨便呼叫、亂傳參數也不至於 crash。要在 component 裡加入預防的功能,和自動化的功能。例如一個一定要先呼叫它的 open,再呼叫 close 的 component,跟一個會在 open 裡自動呼叫 close 的 component,我會比較喜歡後者。
4. 跨平台:盡量用標準的函式,少用 OS dependent 的 API。因為你不知道你的 component 何時會被拿到其他平台上使用,到時你還得去做移植的工作,何苦呢?

1 則留言:

Shardad 提到...

我很害怕有隱含意義的function。比方現在是夏天,所以我們呼叫了house.open()時,順便連冷氣都打開了,這個object到冬天就很難用,程式員不知道為什麼回到家以後暖氣都沒什麼作用,一直在解暖氣的問題。這種隱含意義的function,會造成很多後續維護上的困擾。