跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 抽象漏洞定律 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
抽象漏洞定律
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''抽象漏洞定律'''(_ The Law of Leaky Abstractions _)是一个有關係程式的定律。上早是由 Joel Spolsky 佇其部落格內底提出,其定義來做「所有非常無證自明的抽象概念,攏有某一種程度的落勾」(原文:_ All non-trivial abstractions , to some degree , are leaky _)。 抽象漏洞定律說明是按怎所有的程式攏有 Bug,同時嘛說明矣,電腦語言的進步,雖然會當減少程式製作的時間,但是相對來講,程式設計師煞愛付出閣較濟學習的時間。 抽象漏洞定律說明了軟體本質上的缺陷,毋過嘛提供一个思考欲按怎避免問題發生的方向。 ==舉例== 佇咧 Joel Spolsky 的部落格內底,舉幾个趣味的例,解說講按怎抽象會漏洞定律。 ===ASP . NET=== ASP . NET 宣稱其建立一个抽象介面,透過這種抽象介面,程式設計師會當干焦點選幾个選單,抑是點擊幾个使用者介面上的揤鈕,就「假做」寫規个網站所需要的程式矣。佇這个抽象介面的背後,ASP . NET 扞程式實體化的工課。 比一个例,程式設計師會當做一个利用連結來上傳表格的網頁 ( 對 HTML 來看嘛就是利用 < A > 來上傳 < FORM >,一般標準的 HTML,干焦會當用啦「提交」這个開關來上傳表格,袂當用 < A > 來上傳 < FORM > 的 ),ASP . NET 內部為著欲完成這个功能,著愛藉助 JavaScript 來完成,毋過這點是袂予程式設計師知影的。雖然的確大的降低程式製作的時間,但是萬一網頁使用者關起來矣 JavaScript 的功能,網頁就會出問題。 若程式設計師無受過有夠額的訓練,無了解 ASP . NET 內部運作的原理,抑是無了解 HTML,無了解 JavaScript,就無可能揣著這个問題的原因。所以講,這乎 ASP . NET 宣稱完美的抽象介面,是有足大的空隙的。 ===物件導向語言=== 另外嘛會使對物件導向語言來看 ( C + + 抑是講 JAVA ),何為著抽象漏洞定律就是抽象介面佮實體化執行的分離。 一个物件使用另外一个物件的服務,只需要知影伊所提供的抽象介面是按怎,無需要了解內部的執行方法。佇這个內部的執行,可能閣透過另外一个物件的抽象介面,使用另外一个物件所提供的服務。佇這條供應鏈頂懸,只要任何一个執行出問題,就會當予伊下游所有的抽象介面產生漏洞。 反過來講,若是規條供應鏈的執行攏無問題,理論上,就無落勾的問題矣。毋過,電腦佇硬體上的物理限制,比如講:記持體用盡量,電力喪失,網路斷線等等,欲保持百分之一百的零缺失,是完全無可能的代誌。 ==參考文獻== * Joel Spolsky 的文章 [[分類: 待校正]]
返回到「
抽象漏洞定律
」。