寫死
维库,知识与思想的自由文库
|
寫死 (英文稱 hard code, hard coding) 指的是在軟體實作上,把輸出或輸入的相關參數 (例如:路徑、輸出的形式、格式) 直接寫死在原始碼中,而非在執行時期由外界指定的設定、資源、資料、或者格式做出適當回應。 寫死,一般被認是種Anti-Pattern或者不好的實作,軟體因應輸入資料、或者輸出的格式改變就必需修改原始碼。對客戶而言,改變原始碼之外的小設定也許容易點。 寫死,也並非完全只有缺陷,因應某些封裝需要,或是軟體保護的措施,寫死有時候是必要的手段。除此之外有時候因應某些特殊的需求,製作出簡單的應用程式,應用程式可能只會執行一次,或者永遠只應付一種需求,殺雞焉用牛刀,寫死來縮短開發的時間,也是一種不錯的決策。
[编辑] 實例[编辑] 產品啟動碼(Active Product)指的是某軟體經常檢查它的開發商網站以確認該軟體獨一無二的的產品啟動碼沒有列入黑名單或者該軟體屬盜版軟件。如果該開發商網站變了樣、改了網域名、亦或開發商破產且它的站關了,該軟體將停止工作。 造成這種情況的軟體開發者應該被認為是個嚴重過失,因為網站常常消失、更動。然而,這些考慮常常被忽略,原因歸咎於軟體開發者對網站或公司未來存在的傲慢態度,或者對遙遠未來客戶身上將發生什麼事的消極態度。 [编辑] 固定安裝路徑想像一下某個視窗軟件要求你一定要裝在 C:\Program Files\Appname 下,不裝在該目錄下就無法安裝、或者裝了後不工作,你對這軟體的感覺如何? 這類程式偶而在市場上見到,因為有相當廣大的用戶偏好安裝在預設磁碟以及預設目錄,而軟體測試無法找到這個問題。然而,對程式設計師或開發人員還是建議不要寫死軟體安裝路徑;因為你永遠不知道路徑名用哪國語言寫的,而且不見得每個裝載視窗的機器都有 C: 槽。 [编辑] 啟動碟指的是某軟件在啟動時經常檢查存在軟碟上的某特殊檔案,以確定該軟碟不是盜版。假設該電腦升級到沒有軟碟的新機器,該軟件便無法執行,因為軟碟沒地方插。 這個範例展示寫死的壞處,即使它在當時完全行得通。在80到90年代,無法想像一台計算機沒有軟碟,然而到現在這是挺正常的事。如果某程序在15年前寫死,而且沒有發布任何patch,該程序可能面對很嚴重的問題。又,許多公司不關心它們的程式會不會在15年後被執行,該程式實際上可能是計畫中淘汰的一個類型。 |


