我的web系統設計規範

來源:互聯網
上載者:User

標籤:error   control   線上   ram   資料   替換   判斷   iframe   線程   

 以下是我自己在工作中總結的,僅供參考。


·應對所有使用者輸入進行trim()去除兩頭空格,若是需要空格的應用 轉義代替,不應在js裡trim(),而應該在資料庫端或後端控制,且只在一處攔截控制,更改策略時只改一處代碼。
·不應使用frameset框架組,應使用iframe代替frameset,因為frameset頁面無法執行js,若想在frameset頁面彈出內容是無法實現的。
·項目中應避免同時使用int和long,統一使用一種類型,因為他們之間相互轉換非常不方便,容易導致錯誤。
·每個頁面都應包含一個全域控制的js檔案。
·前端設計應考慮一個擴充js庫,對js原生對象的方法和屬性及事件使用prototype進行擴充,以便隨處直接調用,應避免寫成第三方函數,應擴充的方法包括String的replaceAll()、hashmap類型等。
·同樣功能的方法只定義一次,應杜絕重複定義,這樣會造成代碼混亂,維護麻煩。
·前端不應使用js內建的alert函數進行提示彈出,因為alert在不同的瀏覽器下顯示樣式不統一,且會阻塞線程,不適合存在計時器程式的頁面使用。應使用第三方HTML控制項。
·通過get方式傳參,若傳入boolean類型的值,是無法直接進行==判斷的,因為get傳的是字串。
·js判斷boolean類型盡量使用==true/false具體值進行判斷,避免使用if(!boolean)這樣的用法,因為undefined、false、null都可能滿足條件。
·如果項目用到ajax,應配置全域ajax事件處理,如jquery的ajaxSetup,利用before及complate回呼函數實現網速監測,利用error函數實現預設錯誤處理。
·若需要設計多級關聯表(多張表存在級聯關係),子表、孫表最好都加上頂層表的id,這樣在刪除時直接根據id刪除比資料庫自己的串聯刪除或通過程式串聯刪除效能高。
·資料庫表添加欄位時必須考慮該欄位是否應建立索引,測試庫資料量小不易發現問題,線上庫資料量大時查詢效率慢是致命的。
·對於功能較多,使用了前端資源緩衝,bug風險較大的系統應該設計動態請求js代碼並執行的功能,用於在緊急時刻臨時性解決前端bug.動態請求一個action,action直接輸出js代碼.
·定義公用全形半形字元替換函數
·編碼實現必須嚴格按照規範、按照約束,所有的處理邏輯必須寫注釋,有的地方該舉例的應舉例,該表明資料結構的要表明資料結構,該寫原因的要寫原因。
·對每個功能點進行編碼,並在相關代碼檔案及位置添加編碼注釋,用於通過IDE快速定位功能所涉代碼,便於功能維護。
·對每一次使用者登入都記錄日期時間,對所有操作記錄日誌。
·前端像向後台資料庫儲存資料應避免將"null"、"undefined"、"NaN"等JS產生的贓資料儲存進庫裡,否則會影響資料分析與計算。
·集合資料去重複,前端可用obj[key]=value,後台可用hashmap,它們都利用key不重複的機制進行排除重複,這樣比寫迴圈效率高且不容易出錯。
·設計時應考慮系統升級時給線上使用者造成的影響,應留有在升級時對使用者彈出提示的通道功能,即即時推送功能。
·如果使用MVC或多層設計設計模式,傳遞參數並擷取傳回值應嚴格按照方法調用、參數返回規範進行,不應採用如在M傳給V參數對象,V的方法無傳回值,V修改參數對象,M再直接讀取參數對象裡的值,應使用M傳給V參數對象,V處理並建立傳回值變數,V的方法返回該變數。為什麼這麼做?因為如果以後要對各層進行剝離,使用遠程調用,那麼M層就無法引用V裡的參數對象了,他們跨機器、跨系統、跨記憶體了,引用無效。
·網頁表單設計時,輸入框應有兩個屬性,一個原值,一個最新值,用於儲存時判斷哪些值發生了改變,應僅對發生改變的欄位進行更新,減少網路資料轉送量,減少資料庫操作量。
·若頁面不想緩衝,可在<head>標籤內添加
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
·js檔案頭部應定義編碼方式,utf-8。
·資料庫表設計,業務功能儲存時,如果存在外鍵欄位,引用時最好不要直接引用id,應在對方表裡建立具有唯一性的欄位,並引用那個欄位。這樣做為了後期資料庫升遷時,避免處理id帶來的麻煩,也可在資料庫發生嚴重故障時能便於資料對應及恢複。
.驗證碼使用後立即銷毀,否則,使用者可以通過非法手段重複提交資料。

我的web系統設計規範

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.