1、界面和用戶體驗(Interface and User Experience)php
1.1前端
知道各大瀏覽器執行Web標準的狀況,保證你的站點在主要瀏覽器上都能正常運行。你至少要測試如下引擎:Gecko(用於Firefox)、Webkit(用於Safari、Chrome和一些手機瀏覽器)、IE(你能夠利用微軟發佈的Application Compatibility VPC Images進行測試)和Opera。同時,不一樣的操做系統,可能也會影響瀏覽器如何呈現你的網站。程序員
1.2數據庫
除了瀏覽器,網站還有其餘使用方式:手機、屏幕朗讀器、搜索引擎等等。你應該知道在這些狀況下,你的網站的運行情況。MobiForge提供了手機網站開發的一些相關知識。跨域
1.3瀏覽器
知道如何在基本不影響用戶使用的狀況下升級網站。一般來講,你必須有版本控制系統(CVS、Subversion、Git等等)和數據備份機制(backup)。緩存
1.4安全
不要讓用戶看到那些不友好的出錯提示。服務器
1.5cookie
不要直接顯示用戶的Email地址,至少不要用純文本顯示。
1.6
爲你的網站設置一些合理的使用限制,一旦超過門檻值,就自動中止服務。(這也與網站安全相關。)
1.7
知道如何實現網頁的漸進式加強(progressive enhancement)。
1.8
用戶發出POST請求後,老是將其重導向(redirect)至另一個網頁。
1.9
不要忘記網站的可訪問性(accessibility,即殘疾人如何使用網站)。對於美國網站來講,有時這是法定要求。WAI-ARIA有一些這方面很好的參考資料。
2、安全性(Security)
2.1
閱讀《OWASP開發指南》,它提供了全面的網站安全指導。
2.2
瞭解SQL注入(SQL injection)及其預防方法。
2.3
永遠不要信任用戶提交的數據(cookie也是用戶端提交的!)。
2.4
不要明文(plain-text)儲存用戶的密碼,要hash處理後再儲存。
2.5
不要對你的用戶認證系統太自信,它可能很容易就被攻破,而你事先根本沒意識到存在相關漏洞。
2.6
瞭解如何處理信用卡。
2.7
在登陸頁面及其餘處理敏感信息的頁面,使用SSL/HTTPS。
2.8
知道如何對付session劫持(session hijacking)。
2.9
避免"跨站點執行"(cross site scripting,XSS)。
2.10
避免"跨域僞造請求"(cross site request forgeries,XSRF)。
2.11
及時打上補丁,讓你的系統始終跟上最新版本。
2.12
確認你的數據庫鏈接信息的安全性。
2.13
跟蹤攻擊技術的最新發展,以及你使用的平臺的最新安全漏洞。
2.14
閱讀Google的《瀏覽器安全手冊》(Browser Security Handbook)。
2.15
閱讀《網絡軟件的黑客手冊》(The Web Application Hackers Handbook)。
3、性能(Performance)
3.1
只要有可能,就使用緩存(caching)。正確理解和使用HTTP caching與HTML5離線儲存。
3.2
優化圖片。不要把一個20KB的圖片文件,做爲重複出現的網頁背景圖案。
3.3
學習如何用gzip/deflate壓縮內容(deflate方式更可取)。
3.4
將多個樣式表文件或腳本文件,合爲一個文件,這樣能夠減小瀏覽器的http請求數,以及減少gzip壓縮後的文件整體積。
3.5
瀏覽Yahoo的Exceptional Performance網站,裏面有大量提高前端性能的優秀建議,還有他們的YSlow工具。Google的page speed則是另外一個用來分析網頁性能的工具。二者都要求安裝Firebug。
3.6
若是你的網頁用到大量的小體積圖片(好比工具欄),就應該使用CSS Image Sprite,目的是減小http請求數。
3.7
大流量的網站應該考慮將網頁對象分散在多個域名(split components across domains)。
3.8
靜態內容(好比圖片、CSS、JavaScript、以及其餘cookie無關的網頁內容)都應該放在一個不須要使用cookie的獨立域名之上。由於域名之下若是有cookie,那麼客戶端向該域名發出的每次http請求,都會附上cookie內容。這裏的一個好方法就是使用"內容分發網絡"(Content Delivery Network,CDN)。
3.9
將瀏覽器完成網頁渲染所須要的http請求數最小化。
3.10
使用Google的Closure Compiler壓縮JavaScript文件,YUI Compressor亦可。
3.11
確保網站根目錄下有favicon.ico文件,由於即便網頁中根本不包括這個文件,瀏覽器也會自動發出對它的請求。因此若是這個文件不存在,就會產生大量的404錯誤,消耗光你的服務器的帶寬。
4、搜索引擎優化(Search Engine Optimization,SEO)
4.1
使用"搜索引擎友好"的URL形式,好比example.com/pages/45-article-title,而不是example.com/index.php?page=45。
4.2
不要使用"點擊這裏"之類的超級連接,由於這樣等於浪費了一個SEO機會,並且下降了"屏幕朗讀器"(screen reader)的使用效果。
4.3
建立一個XML sitemap文件,它的缺省位置通常是/sitemap.xml(即放在網站根目錄下)。
4.4
當你有多個URL指向同一個內容時,在網頁代碼中使用<link rel="canonical" ... />。
4.5
使用Google的Webmaster Tools和Yahoo的Site Explorer。
4.6
從一開始就使用Google Analytics(或者開源的訪問量分析工具Piwik)。
4.7
知道robots.txt的做用,以及搜索引擎蜘蛛的工做原理。
4.8
將www.example.com的訪問請求導向example.com(使用301 Moved Permanently重定向),或者採用相反的作法,目的是防止Google把它們當作兩個網站,分開計算排名。
4.9
知道存在着惡意或行爲不正當的網絡蜘蛛。
4.10
若是你的網站有非文本的內容(好比視頻、音頻等等),你應該參考Google的sitemap擴展協議。
5、技術(Technology)
5.1
理解HTTP協議,以及諸如GET、POST、sessions、cookies之類的概念,包括"無狀態"(stateless)是什麼意思。
5.2
確保你的XHTML/HTML和CSS符合W3C標準,使得它們可以經過檢驗。這可使你的網頁避免觸發瀏覽器的古怪行爲(quirk),並且使它在"屏幕朗讀器"和手機上也能正常工做。
5.3
理解瀏覽器如何處理JavaScript腳本。
5.4
理解網頁上的JavaScript文件、樣式表文件和其餘資源是如何裝載及運行的,考慮它們對頁面性能有何影響。在某些狀況下,可能應該將腳本文件放置在網頁的尾部。
5.5
理解JavaScript沙箱(Javascript sandbox)的工做原理,尤爲是若是你打算使用iframe。
5.6
知道JavaScript可能沒法使用或被禁用,以及Ajax並非必定會運行。記住,"不容許腳本運行"(NoScript)正在某些用戶中變得流行,手機瀏覽器對腳本的支持千差萬別,而Google索引網頁時不運行大部分的腳本文件。
5.7
瞭解301重定向和302重定向之間的區別(這也是一個SEO相關問題)。
5.8
儘量多得了解你的部署平臺(deployment platform)。
5.9
考慮使用樣式表重置(Reset Style Sheet)。
5.10
考慮使用JavaScript框架(好比jQuery、MooTools、Prototype),它們可使你不用考慮瀏覽器之間的差別。
6、解決bug
6.1
理解程序員20%的時間用於編碼,80%的時間用於維護,根據這一點相應安排時間。
6.2
創建一個有效的錯誤報告機制。
6.3
創建某些途徑或系統,讓用戶能夠與你接觸,向你提出建議和批評。
6.4
爲未來的維護和客服人員撰寫文檔,解釋清楚系統是怎麼運行的。
6.5
常常備份!(而且確保這些備份是有效的。)除了備份機制,你還必須有一個恢復機制。
6.6
使用某種版本控制系統儲存你的文件,好比Subversion或Git。
6.7
不要忘記作單元測試(Unit Testing),Selenium之類的框架會對你有用。