一,避免不必要的復雜性。
例如,之前,若創建一個html頁,開頭我們必須寫成像
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
或 <!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">的樣子。
對html 5,<!DOCTYPE html>這樣的格式就行了。
原因是,Doctype是寫給驗證器看的。也就是說,之所以要在文檔一開頭寫那行XHTML 1.0的doctype,是為了告訴驗證器,讓驗證器按照該doctype來驗證我的文檔。但按照HTML 5的另一個設計原理,它必須向前向後兼容,兼容未來的HTML版本——不管是HTML6、HTML7,還是其他什麼——都要與當前的HTML版本,HTML 5,兼容。因此,把一個版本號放在doctype裡面沒有多大的意義,即使對驗器證也一樣。
還有像<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />在html 5裡可以寫成<meta charset="utf-8">
二, 支持已有的內容
例如在html5裡屬性值可以不加引號, 但加引號也對。下面這幾種寫法都是正確的
三, 解決現實的問題
HTML 5的另一個設計原理是解決現實的問題。顯而易見的是,解決各種問題的格式和規范已經比比皆是了,因此在我看來,這個原理其實是要解決理論問題,而非解決現實的問題。這條設計原理是要從理論上承認人們普遍存在的問題,消除敏感問題。
例如:頁面中已經有了一塊內容,我想給整塊內容加個鏈接。這塊內容包括一個標題,一個段落
過去的做法:
現在:
四,求真務實
求真務實對於HTML的含義是:在解決那些令人頭痛的問題之前,先看看人們為應對這些問題都想出了哪些辦法。集中精力去理解這些“民間的”解決方案才是當務之急。
HTML 5中新的語義元素就是遵循求真務實原理的反映。新增的元素不算多,談不上無限的擴展性,但卻不失為一件好事。盡管數量屈指可數,但意義卻非同一般。這些新 元素涉及頭部(header)、腳部(footer)、分區(section)、文章(article)……,相信大家都不會覺得陌生。
例如:以前的文檔:
現在可以改成:
五,平穩退化
有關HTML 5遵循這條原理的例子,就是使用type屬性增強表單。下面列出了可以為type屬性指定的新值,有number、search、range,等等。
最關鍵的問題在於浏覽器在看到這些新type值時會如何處理。現有的浏覽器,不是將來的浏覽器,現有的浏覽器是無法理解這些新type值的。但在它們看到自己不理解的type值時,會將type的值解釋為text。
六,最終用戶優先
這個設計原理本質上是一種解決沖突的機制。
一旦遇到沖突,最終用戶優先,其次是作者,其次是實現者,其次標准制定者,最後才是理論上的完滿
七,只為80%設計
這是一條常見的設計原理,也是一種通用模式,即帕累托原理
帕累托是意大利經濟學家,他提出這個比例,80/20, 說的是世界上20%的人口擁有80%的財富。這個比例又暗合了自然界各個領域的冪律分布現象。總之,無論你是編寫軟件,還是制造什麼東西,都是一樣的,即 20%的努力可以觸及80%的用例。最後20%的用例則需要付出80%甚至更多的努力。因此,有時候據此確定只為80%設計是很合理的,因為我們知道為此 只要付出20%的努力即可。
八,首先為人類設計,其次為機器設計。
希望這些原理對大家的軟件設計有所啟發。