web前端開發規範

来源:https://www.cnblogs.com/catchFish-ing/archive/2022/04/04/16099522.html
-Advertisement-
Play Games

web前端開發規範 規範概述 一個人走的更快,一群人可以走的更遠,前提是統一的策略,還要不斷地反省和優化。不管有多少人共同參與同一項目,儘可能確保每一行代碼都像是同一個人編寫的 開發目錄規範 開發環境規範 開發編碼規範 一、目錄及文件命名規範 (一)、例靜態專題頁目錄 - src / html 源代 ...


web前端開發規範

規範概述

一個人走的更快,一群人可以走的更遠,前提是統一的策略,還要不斷地反省和優化。不管有多少人共同參與同一項目,儘可能確保每一行代碼都像是同一個人編寫的

  • 開發目錄規範
  • 開發環境規範
  • 開發編碼規範

一、目錄及文件命名規範

(一)、例靜態專題頁目錄

  - src / html 源代碼   
  - img / image / images  圖片資源  
  - js  JavaScript腳本 
  - dep / development / package 第三方依賴包

(二)、例管理端項目目錄

 - project 
    -- static / public 靜態文件
       -- js
       -- css
       -- tpl
       -- index.html
       ...
    -- src 源代碼(邏輯)
      -- common 公共資源
        -- img
        -- css 
        ...
      -- component 組件 
         -- home 
         -- login
         ...
      -- api 介面請求
      --  view / page 模板文件

(三)、命名規範

  • 目錄,文件名稱統一小駝峰命名法。 productDetail.html

二、環境要求

  1. Node.js 8.9 或更高版本,你可以使用 nvm 或 nvm-windows 在一臺電腦中管理多個 Node 版本

  2. 使用VS Code進行代碼編寫

  3. 規定 Tab 大小為 2 個空格,保證在所有環境下獲得一致展現(settings.json文件修改"editor.tabSize": 2)

  4. 安裝插件 Vetur( Vue開發擴展及 Vue 文件代碼格式化)

  5. 使用 Chrome 瀏覽器並安裝 Vue.js devtools 進行調試

三、編碼規範

(一)、HTML / Template 編碼規範

  1. HTML換行縮進:採用 tab空格

  2. 儘量減少標簽層級

  3. 雙標簽必須閉合,單標簽用斜線閉合

  4. 行內元素裡面不可使用塊級元素
  5. <a href="../test">
      <div></div>
    </a>
    

  6. 避免使用已過時標簽,如:font

  7. 對於屬性的定義,使用雙引號,不要使用單引號

  8. 為每個 HTML 頁面根元素添加 lang 屬性
  9.   <html lang="zh-CN">
        <!-- ... -->
      </html>
    

  10. 通過聲明一個明確的字元編碼,讓瀏覽器輕鬆、快速的確定網頁內容渲染方式,通常指定為'UTF-8'
  11. .....

【語義化】儘量遵循 HTML 標準和語義,但是不要以犧牲實用性為代價;任何時候都要儘量使用最少的標簽並保持最小的複雜度


(二)、css / Less / Sass 編碼規範

  1. 類名使用小寫字母,以中劃線分隔

  2. id 採用駝峰式命名

  3. Less / Sass 中的變數、函數、混合等採用駝峰式命名

  4. 所有聲明語句都應當以分號結尾 最後一條聲明語句後面的分號是可選的,但是,如果省略這個分號,你的代碼可能更易出錯,尤其壓縮打包出錯

  5. 選擇器不要超過4層(在Less / Sass中避免嵌套超過4 層)

  6. 縮進使用兩個空格代替 Tab

  7. 為選擇器分組時,將單獨的選擇器單獨放在一行

  8. 每條樣式聲明應該獨占一行

  9. 儘可能不要使用行內(inline)樣式

  10. 組件之間的完全解耦,不會造成命名空間的污染,如:.mod-xxx ul li 的寫法帶來的潛在的嵌套風險。

  11. 選擇器權重(樣式覆蓋)
    • 非通用樣式使用嵌套方式進行編寫,避免影響其他自己不瞭解樣式,造成樣式覆蓋
    • Vue 中樣式謹慎使用 scoped,會影響樣式選擇器性能,請使用第一點進行特有樣式編寫
    • 樣式需要修改時,儘量找到原樣式聲明進行修改

  12. 屬性的書寫順序, 舉個例子
  13. .box {
        /* 定位 */
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        /* 盒模型 */
        width: 50px;
        height: 50px;
        margin: 10px;
        border: 1px solid black;
        / *其他* /
        color: #efefef;
    }
    
    • 定位相關, 常見的有:display position left top float 等
    • 盒模型相關, 常見的有:width height margin padding border 等
    • 其他屬性

    (三)、JavaScript 編碼規範

    1. 常量建議還是使用大寫字元+下劃線命名。 const PRICE_MAX=10000;

    2. 函數按職責命名,一般都是動詞開頭。 function setUserInfo(){}

    3. 變數不要先使用後聲明

    4. 不要在同個作用域下聲明同名變數

    5. 在必要的地方添加非空判斷以提高代碼的穩健性

    6. 使用===代替==,!==代替!=(==會自動進行類型轉換,可能會出現奇怪的結果)

    7. 使用三目運算代替簡單的 if-else
    8. let count = 100;
      count = seat < 5 ? 20 : seat < 10 ? 60 : 90;
      

    9. 正確使用 null
      • 不要用null來判斷函數調用時有無傳參
      • 不要與未初始化的變數做比較

    10. 正確使用 undefined
      • 不要直接使用 undefined 進行變數判斷

      • 使用typeof和字元串 'undefined' 對變數進行判斷

      • 不要給變數賦值 undefined(undefined 本身就表示一個變數未定義)

    11. 普通函數:首字母小寫,駝峰式命名,統一使用動詞或者動詞+名詞形式,如:fnGetVersion()

    12. 對象方法與事件響應函數:對象方法命名使用fn+對象類名+動詞+名詞形式,如:fnAddressGetEmail()

    13. 事件響應函數:fn+觸發事件對象名+事件名或者模塊名,如:fnDivClick()

    【常用的動詞】
    get 獲取/set 設置,
    add 增加/remove 刪除
    create 創建/destory 移除
    start 啟動/stop 停止
    open 打開/close 關閉,
    read 讀取/write 寫入
    load 載入/save 保存,
    create 創建/destroy 銷毀
    begin 開始/end 結束,
    backup 備份/restore 恢復
    import 導入/export 導出,
    split 分割/merge 合併
    inject 註入/extract 提取,
    attach 附著/detach 脫離
    bind 綁定/separate 分離,
    view 查看/browse 瀏覽
    edit 編輯/modify 修改,
    select 選取/mark 標記
    copy 複製/paste 粘貼,
    undo 撤銷/redo 重做
    insert 插入/delete 移除,
    add 加入/append 添加
    clean 清理/clear 清除,
    index 索引/sort 排序
    find 查找/search 搜索,
    increase 增加/decrease 減少
    play 播放/pause 暫停,
    

    (四)、 編寫註釋

    1. 公共組件需要在文件頭部加上註釋說明:
    2. /**
      *文件用途說明
      *作者姓名、聯繫方式(旺旺)
      *製作日期
      **/  
      
    3. 註釋單獨一行,不要在代碼後的同一行內加註釋:
    4. // 個人信息
      

    部分編寫思路參考別的碼友,welcome你的觀光,感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 系統調用 系統調用: 操作系統提供給用戶程式調用的一組“特殊”介面,用戶程式可以通過這組“特殊”介面來獲得操作系統內核提供的服務 為什麼用戶程式不能直接訪問系統內核提供的服務為了更好地保護內核空間,將程式的運行空間分為 內核空間 和 用戶空間(也就是常稱的內核態和用戶態),它們分別運行在不同的級別上 ...
  • Ubuntu系統報錯:The system is running in low-graphics mode 我遇到過兩次這種請況,這次解決了。很nice! 在csdn上搜到的大部分操作是: 滑鼠進入系統 使用快捷鍵 Ctrl+Alt+F1 進入用戶 輸入密碼 然後按照以下代碼進行 cd /etc/X ...
  • 在介紹網路模式之前,關於網路的幾個簡單命令的使用 ifup eth0 //啟動網卡eth0 ifdown eth0 //關閉網卡eth0 /etc/network/interfaces //網路配置文件 /etc/init.d/networking //網路服務位置 /etc/init.d/netw ...
  • 一、Hadoop概述 Hadoop是Apache軟體基金會下一個開源分散式計算平臺,以HDFS(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是資源調度框架,能夠細粒度的管理和調度任務,還能夠支持其他的計算框架,比如sp ...
  • 這兩天都是在跟文件打交道,很有趣,每一步都不會順心如意,但每一步的解決都有所獲益,首先是對文件變化的監測,能找到很多辦法,例如通過ELK家族的Filebeat工具來探測,但是外部工具不好融合進Storm,最好是自己寫Java程式來監測。 引入Java NIO 監控文件 其實jdk7以上版本就有一個比 ...
  • 一、概述 Hadoop是Apache軟體基金會下一個開源分散式計算平臺,以hdfs(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是資源調度框架,能夠細粒度的管理和調度任務,還能夠支持其他的計算框架,比如spark)為核 ...
  • 之前瞭解過postgresql的Bitmap scan,只是粗略地瞭解到是通過標記數據頁面來實現數據檢索的,執行計劃中的的Bitmap scan一些細節並不十分清楚。這裡藉助一個執行計劃來分析bitmap scan以及index only scan,以及兩者的一些區別。這裡有關於Bitmap sca ...
  • 註意 一定要按照步驟激活 第一步:打開註冊機器,然後點擊patch,找到安裝Navicat15目錄下麵的exe文件 第二步:打開Navicat啟動文件,然後點擊註冊按鈕,然後點擊註冊機器的Generate按鈕,把文本中的內容填寫進去,然後點擊註冊,這時候會顯示註冊失敗,然後點擊手動激活 第三步,在註 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...