2006年3月8日 星期三

X 的設計原則

無意見看到 Wikipedia 對於 X 設計的原則描述,茲引言如下:



1984年,Bob Scheifler和Jim Gettys制訂了X的早期原則:
* 除非沒有它就無法完成一個真正完整的應用程式,否則不用增加新的功能。
* 決定一個系統不是什麼和決定它是什麼同樣重要。與其去適應整個世界的需要,寧可使得系統可以擴展,這樣可以用上層相容的方式來滿足新增需求
* 只有根本沒有實例才會比只有一個實例更糟。
* 如果問題沒有完全弄懂,可能最好根本就不要去解決它
* 如果預期要用百分之90的努力去完成百分之10的工作,應該用更簡單的辦法解決。 (參見更糟就是更好。)
* 盡量避免複雜性。
* 提供機制而不是策略。實踐中把用戶界面策略放在用戶手裡。


第一條原則在設計X11時修改為:「除非制訂有真實的應用程序需要,否則不用增加新功能。」 X基本上一直遵循這些原則。參考實現是從擴展和改進的著手來進行開發,同時和1987年的最初的協議幾乎保持完全相容。



上文提及的更糟就是更好,中文維基百科裡還沒有中譯。當然除了 X 外,也一定會想到 UNIX 的設計哲學:

1. Small is beautiful.
2. Make each program do one thing well.
3. Build a prototype as soon as possible.
4. Choose portability over efficiency.
5. Store data in flat text files.
6. Use software leverage to your advantage.
7. Use shell scripts to increase leverage and portability.
8. Avoid captive user interfaces.
9. Make every program a filter.

基本上,以上提及的設計原則,都離不開「簡單就是美」的哲學。說來慚愧,寫程式多年至今,還未能接觸到大型且複雜的程式,更沒有能力與機會參與設計龐大的軟體架構。只靠賣弄些程式技巧,雖足以過活,但心裡知道,若要實現一些想法,還有一大段功夫要磨練。

好好思索,好好反省,我所寫過的程式是不是稱得上「美」呢? 唉。

沒有留言: