或許我不該在這裡提起軟體肥胖的話題,畢竟胖才是美已經成了軟體界普遍的審美觀。「不重則不威」,許多顧客買了我們的軟體之後,拿到好幾片滿滿的光碟,才會覺得這個軟體很有價值。如果只給一個不到1 MB的檔案,顧客還會質疑這小玩意值不值得這價錢? 上回談到的框架、生產力觀念、彈性,是軟體肥胖的大環境問題,這回則補充哪些程式設計常見的思考模式與做法,也會間接造成軟體體積的負擔。
● 為了提高相容性:有些套裝軟體由於使用族群太廣,所以必須考量使用者的各種需求而提高相容性,可能的作法有:能夠打開20年前的廢棄檔案格式,可以開啟競爭對手不斷推出的新格式,可以支援各種古代電腦周邊設備、奇特的鍵盤配置,或是提供失能人士無障礙的操作介面(Accessibility)。
透過提高相容性來滿足大家的需求,似乎很可取,但也無法避免軟體複雜度和體積暴增的後遺症。關於這一點,還是要考慮到80/20法則,太離譜的相容性支援,做成插件(plug-in),不要直接整合進系統中,會是比較好的做法。
● 舊的設計不好,不能拿掉,只會加上新的:很多時候,當我們發現開發出來的軟體設計上有問題時,程式碼已經盤根錯節無法修改,一旦修改便會造成既有使用者不相容的困擾。例如,許多程式語言原本不支援Unicode,為了要支援Unicode,又不想全面修改String型別(因為既有的開發者會反彈),於是會提供新的Unicode型別。
全文>>