Web開(kāi)發(fā)者不可不知的15條編碼原則

2015-05-13 14:41:45來(lái)源:WEB開(kāi)發(fā)者作者:

HTML已經(jīng)走過(guò)了近20的發(fā)展歷程。從HTML4到XHTML,再到最近十分火熱的HTML5,它幾乎見(jiàn)證了整個(gè)互聯(lián)網(wǎng)的發(fā)展。但是,即便到現(xiàn)在,有很多基礎(chǔ)的概念和原則依然需要開(kāi)發(fā)者高度注意。下面,向大家介紹這些應(yīng)該遵循的開(kāi)發(fā)原則。

HTML已經(jīng)走過(guò)了近20的發(fā)展歷程。從HTML4到XHTML,再到最近十分火熱的HTML5,它幾乎見(jiàn)證了整個(gè)互聯(lián)網(wǎng)的發(fā)展。但是,即便到現(xiàn)在,有很多基礎(chǔ)的概念和原則依然需要開(kāi)發(fā)者高度注意。下面,向大家介紹這些應(yīng)該遵循的開(kāi)發(fā)原則。

\

1、善用DIV來(lái)布局

當(dāng)開(kāi)發(fā)一個(gè)Web頁(yè)面時(shí),要考慮第一件事就是區(qū)分頁(yè)面重點(diǎn)。將這些內(nèi)容用DIV標(biāo)簽包含起來(lái),頁(yè)面的代碼會(huì)呈現(xiàn)出整潔、縮進(jìn)良好的風(fēng)格。

<div id="header"></div>  
<div id="body-container">  
        <div id="content"> <!-- Content -- > </div>    
        <div id="right-side-bar"> <!-- Right Side Bar Content Area -- ></div>  
</div>    
<div id="footer"></div>

2、將HTML標(biāo)簽和CSS樣式表分割開(kāi)來(lái)

好的頁(yè)面應(yīng)該將HTML標(biāo)簽和CSS樣式表分割開(kāi)來(lái)。這是每一個(gè)Web開(kāi)發(fā)者在首次接觸Web開(kāi)發(fā)時(shí)就應(yīng)該知道的一條原則。然而,直到今天,仍然有很多開(kāi)發(fā)者沒(méi)有嚴(yán)格遵循這一原則。

不要在HTML標(biāo)簽里內(nèi)嵌樣式表代碼。開(kāi)發(fā)者應(yīng)該養(yǎng)成習(xí)慣,單獨(dú)建立文件,用以存放CSS樣式表。而這也將方便其他開(kāi)發(fā)者在修改你的代碼時(shí),能迅速完成工作。

<p style="color: #CCC; font-size:16px; font-family: arial">
    An example to illustrate inline style in html</p>

3、優(yōu)化CSS代碼

現(xiàn)如今,為網(wǎng)站添加多個(gè)CSS文件的做法已經(jīng)很普遍。但是,當(dāng)網(wǎng)站包含的CSS文件過(guò)多時(shí),會(huì)降低網(wǎng)站的響應(yīng)速度。解決辦法是:精簡(jiǎn)代碼并對(duì)多個(gè)CSS文件進(jìn)行優(yōu)化,將其合并成一個(gè)文件。這個(gè)辦法能顯著提升網(wǎng)站的加載速度。此外,有很多工具可以用來(lái)優(yōu)化CSS文件,例如CSS Optimizer、Clean CSS等。

對(duì)于CSS這塊,我們還推薦過(guò)你應(yīng)該知道的9個(gè)優(yōu)秀的CSS框架,可以了解一下CSS框架的種類和相關(guān)用法。

4、優(yōu)化Javascript文件,并將其放到頁(yè)面底部

和CSS一樣,為頁(yè)面添加多個(gè)Javascript文件也是很普遍的做法。但這同樣會(huì)降低網(wǎng)站的響應(yīng)速度。為此,開(kāi)發(fā)者應(yīng)該精簡(jiǎn)、優(yōu)化這些Javascript文件。

但有一點(diǎn)和CSS不同,瀏覽器通常不支持并行加載。這也就是說(shuō),當(dāng)瀏覽器加載Javascript文件時(shí),將不再同時(shí)加載其它內(nèi)容。而這就導(dǎo)致了網(wǎng)頁(yè)的加載速度好像變慢了。

一個(gè)好的解決辦法是:將Javascript文件的加載順序放在最后。為了實(shí)現(xiàn)這一目標(biāo),開(kāi)發(fā)者可以把Javascript代碼放在HTML文檔的底部,而最好的位置是放在接近</body>標(biāo)簽的地方。

5、善用標(biāo)題元素

<h1> 到 <h6>這些元素用來(lái)突出頁(yè)面的重點(diǎn)內(nèi)容。這有助于用戶更加關(guān)注頁(yè)面的重點(diǎn)部分。對(duì)于博客,我(指本文作者)推薦使用<h1>標(biāo)簽來(lái)突出博客標(biāo)題。因?yàn),博客?biāo)題幾乎是頁(yè)面中最重要的部分。

<h1>This is the topmost heading</h1>
<h2>This is a sub-heading underneath the topmost heading.</h2>
<h3>This is a sub-heading underneath the h2 heading.</h3>

6、在合適的地方使用合適的HTML標(biāo)簽

HTML標(biāo)簽是構(gòu)造規(guī)范內(nèi)容結(jié)構(gòu)的關(guān)鍵。例如,<em>標(biāo)簽用來(lái)強(qiáng)調(diào)重點(diǎn)內(nèi)容。<p>標(biāo)簽適用于突出文章段落。如果想要在段落間加空行,就不要使用<br />標(biāo)簽。

<em>emphasized text</em>
<strong>strongly emphasized text</strong>

對(duì)于一組相關(guān)的元素,建議使用<ul>、<ol>或 <dl>標(biāo)簽。但是,不要錯(cuò)誤的使用<blockquote>標(biāo)簽,因?yàn)樗臼怯脕?lái)定義塊應(yīng)用的。

7、避免濫用<div>標(biāo)簽

并不是所有塊元素都應(yīng)該用<div>標(biāo)簽來(lái)創(chuàng)建。例如,可以在內(nèi)聯(lián)元素的屬性里添加display:block,將其以塊元素的方式顯示。

8、使用列表創(chuàng)建導(dǎo)航

使用<ul>列表標(biāo)簽,再配以相應(yīng)的CSS樣式,可以創(chuàng)建美觀的導(dǎo)航菜單。

9、別忘了封閉標(biāo)簽

現(xiàn)在,每當(dāng)我回憶起在大學(xué)里學(xué)到的關(guān)于Web開(kāi)發(fā)的第一堂課時(shí),教授提到的HTML結(jié)構(gòu)的重要性總是浮現(xiàn)在我的腦海。根據(jù)W3C標(biāo)準(zhǔn),標(biāo)簽應(yīng)該被封閉。那是因?yàn),在一些瀏覽器下,如果沒(méi)有按照標(biāo)準(zhǔn)來(lái)將標(biāo)簽封閉,會(huì)出現(xiàn)顯示不正常的問(wèn)題。而這一情況在IE6、7和8里尤為明顯。

10、標(biāo)簽小寫語(yǔ)法

標(biāo)簽采用小寫語(yǔ)法是一項(xiàng)行業(yè)標(biāo)準(zhǔn)。雖然大寫語(yǔ)法并不影響頁(yè)面的顯示效果,但是,代碼的可讀性很差。下面這段代碼可讀性就非常差:

<DIV>
<IMG SRC="images/demo_image.jpg" alt="demo image"/>
<A HREF="#" TITLE="click here">Click Here</A>
<P>some sample text</P>
</DIV>

11、為圖片標(biāo)簽添加alt屬性

在<img>標(biāo)簽里,alt屬性通常非常有用。因?yàn)樗阉饕嫱ǔo(wú)法直接抓取圖片文件。但是,如果開(kāi)發(fā)者在alt屬性里添加了圖片的描述內(nèi)容,將會(huì)方便搜索引擎的抓取。

<!-- has an alt attribute, which will validate, but alt value is meaningless -- >
<img id="logo" src="images/bgr_logo.png" alt="brg_logo.png" />

<!-- The correct way -- > 
<img id="logo" src="images/bgr_logo.png" alt="Anson Cheung - Web Development" />

12、在表格里使用<label> 和 <fieldset>

為了提高代碼質(zhì)量,并讓用戶容易理解表格內(nèi)容,我們應(yīng)該用<label> 和 <fieldset>標(biāo)簽創(chuàng)建表格元素。

<fieldset>
    <legend>Personal Particular</legend>
    <label for="name">Name</label><input type="text" id="name" name="name" />
    <label for="email">E-mail</label><input type="text" id="email" name="email" />
    <label for="subject">Subject</label><input type="text" id="subject" name="subject" />
    <label for="message" >Message Body</label>
  <textarea rows="10" cols="20" id="message" name="message" ></textarea>
</fieldset>

13、將瀏覽器兼容代碼標(biāo)明信息并相互分開(kāi)

對(duì)一名Web開(kāi)發(fā)者來(lái)說(shuō),跨瀏覽器兼容是一個(gè)被重點(diǎn)關(guān)注的問(wèn)題。通常,開(kāi)發(fā)者會(huì)針對(duì)不同的瀏覽器來(lái)編碼,也即是CSS hack。但是,如果開(kāi)發(fā)者在編碼時(shí),能注明代碼為哪一個(gè)版本的瀏覽器所寫,會(huì)為以后的維護(hù)工作帶來(lái)極大方便。下面就是一個(gè)很好的示例:

<!--[if IE 7]>
<link rel="stylesheet" href="css/ie-7.css" media="all">
<![endif]-->
<!--[if IE 6]>
<link rel="stylesheet" href="css/ie-6.css" media="all">
<script type="text/javascript" src="js/DD_belatedPNG_0.0.8a-min.js"></script>
<script type="text/javascript">
        DD_belatedPNG.fix('#logo');
</script>
<![endif]-->

14、避免過(guò)度注釋

作為一名開(kāi)發(fā)者,在代碼中添加注釋是一個(gè)好習(xí)慣,能方便理解并易于維護(hù)。這在其它編程語(yǔ)言如PHP、JAVA 和 C#里很普遍。但是,HTML/XHTML是文本標(biāo)記語(yǔ)言,非常容易理解。因此,無(wú)需為每行代碼都添加注釋。

15、測(cè)試代碼

推薦開(kāi)發(fā)者使用W3C文本標(biāo)記驗(yàn)證服務(wù)來(lái)測(cè)試代碼。它是一個(gè)高效的測(cè)試工具,能幫助你發(fā)現(xiàn)頁(yè)面中存在的錯(cuò)誤。而且,它還能從頁(yè)面錯(cuò)誤出發(fā),幫你定位到相應(yīng)的代碼。這一點(diǎn)通常在編碼完成后很難做到。但開(kāi)發(fā)者需要注意的是,驗(yàn)證通過(guò)的代碼并非就是性能優(yōu)異的代碼。