1. 程式人生 > >編碼規範之命名

編碼規範之命名

1.命名

命名是一個看似簡單卻值得深究的一個過程。變數、函式、檔案等等命名有一些內在的要求:見名知義。一個好的名字可以讓人一眼就知道它是做什麼的,它往往是一個事物的高度概括。如果一個名字取得不好,那麼可能會其他人帶來閱讀上的困難,甚至引起歧義。變數名和檔名一般採用名詞,而函式名一般採用動賓結構。

 

1.1檔案命名

檔案命名一般建議採用名詞,用大駝峰法。一個檔案一般代表著一個類或模組,首先你需要對整個類或模組的定位有一個清晰的瞭解,才能給它取出一個恰當的名字。對於類而言,你需要明確它具有那些屬性和行為;對於模組而言,你需要明確它為了解決什麼問題而產生,起到什麼作用。

檔案開頭一般都需要加註釋,寫清楚作者和編碼時間以及功能說明。

例如:

檔名:ForceDirectedLayout

/**

* Created by zhongzh on 2017/6/19.

*力導向佈局

*/

 

1.2變數命名

變數命名一般建議採用型別字首+有意義的單片語成,用小駝峰法。

區域性變數:

s:表示字串。例如:sName,sHtml;

n:表示數字。例如:nPage,nTotal;

b:表示邏輯。例如:bChecked,bHasLogin;

a:表示陣列。例如:aList,aGroup;

r:表示正則表示式。例如:rDomain,rEmail;

fn:表示函式。例如:fnGetHtml,fnInit,fnGetName,fnSetAge;

f :表示檔案。例如:fInput;

o:表示以上未涉及到的其他物件,例如:oButton,oDate;

g:表示全域性變數,例如:gUserName,gLoginTime;

$:表示Jquery物件。例如:$Content,$Module;這是一種比較廣泛的Jquery物件變數命名規範。

dom:表示Dom物件,例如:domForm,domInput;

臨時變數(作用域小):str,num,bol,obj,fun,arr,cnt等等

迴圈變數:i,j,k

 

1.3函式命名

一個好的函式名一般能通過名字直接獲知該函式實現什麼樣的功能。首先,如果你無法對這個函式給出一個合適的名字,說明你對這段程式碼將要實現的功能理解還不到位,或者說你對需求的理解還不夠充分。其次,如果你的函式名不能正確地反映函式功能,那麼你可能就嗅到了“壞程式碼的味道”(參考《重構》),可能意味著這個函式過大,需要細化為耦合性更小、功能更加獨立的幾個函式。

函式命名一般建議統一使用動詞或者動詞+名詞的形式:init(),getName()

涉及到布林邏輯值的函式建議採用is,has,contains代替動詞開頭:isObject(),hasClass(),containsElements()

常見的一些動詞,可以借鑑和參考:

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 暫停,        launch 啟動/run 執行

compile 編譯/execute 執行,        debug 除錯/trace 跟蹤

observe 觀察/listen 監聽,        build 構建/publish 釋出

input 輸入/output 輸出,        encode 編碼/decode 解碼

encrypt 加密/decrypt 解密,        compress 壓縮/decompress 解壓縮

pack 打包/unpack 解包,        parse 解析/emit 生成

connect 連線/disconnect 斷開,        send 傳送/receive 接收

download 下載/upload 上傳,        refresh 重新整理/synchronize 同步

update 更新/revert 復原,        lock 鎖定/unlock 解鎖

check out 簽出/check in 簽入,        submit 提交/commit 交付

push 推/pull 拉,        expand 展開/collapse 摺疊

begin 起始/end 結束,        start 開始/finish 完成

enter 進入/exit 退出,        abort 放棄/quit 離開

obsolete 廢棄/depreciate 廢舊,        collect 收集/aggregate 聚集

                                          程式設計常用縮寫
序號 英文詞 縮寫詞 意義
A Accumulator Acc 累加器
  Action Act 動作,活動
  Active Act 活躍的
  Addition Add 新增
  Address Addr 地址
  Alarm Alm 報警
  All All 所有
  Allocate Alloc 分配
  Amplitude Amp 幅值
  Analog Input AI 模擬輸入
  Analog Output AO 模擬輸出
  Anolog I/O AIO 模擬I/O
  Apparent App 表面上的
  Argument Arg 變元
  Arrange Arrng 排列
  Array Array 陣列
  Assemble Asm 組裝
  Attribute Attrib 屬性
B Bar Bar 條,帶
  Bit Bit 位元
  Block Blk
  Buffer Buf 緩衝區
  Button Btn 按鈕
  Bypass Bypass 旁路,跳過
C Calculate Calc 計算
  Calibration Cal 校準
  Change Chg 改變
  Channel Ch 通道
  Check Chk 檢查
  Clear Clr 清除
  Clear Screen Cls 清屏
  Clock Clk 時鐘
  Column Col
  Command Cmd 命令
  Communication Comm 通訊
  Compare Cmp 比較
  Complete Comp 完成
  Configuration Cfg 配置
  Connect Con 連線
  Construct Cons 構建
  Context Ctx 上下文
  Control Ctrl 控制
  Control Word CW 控制字
  Convert Conv 轉換
  Copy Cp 複製
  Count Cnt 計數
  Counter Ctr 計數器
  Current Cur 當前,電流
  Cursor Csr 游標
D Date Date 日期
  Day Day
  Day-of-week DOW 一週中的一天
  Debounce Debounce 消抖
  Decimal Dec 十進位制的
  Decode Decode 解碼
  Decrease Dec 減少
  Define Def 定義
  Degree Deg
  Delay Dly 延遲
  Delete Del 刪除
  Descriptor Desc 描述符
  Destination Dst 目的地
  Device Dev 裝置
  Digit Dig 數字
  Disable Dis 禁用
  Discovery Disc 發現
  Discrete I/O DIO 離散輸入輸出
  Discrete Input DI 離散輸入
  Discrete Output(s) DO 離散輸出(s)
  Display Disp 顯示
  Division Div 除法
  Divisor/Division Div 除數/分
  Down Down
  Dummy Dummy 虛構的
  Dynamic Dyn 動態
E Edge Edge
  Effective Eff 有效
  Electric Elec
  Empty Empty
  Enable En 使能
  Engine Eng 引擎
  Engineering Units EU 工程單位
  Enter Enter 進入
  Entries Entries 條目
  Equivalent Equiv 等效
  Error(s) Err 錯誤
  Ethernet Eth 乙太網
  Event(s) Event 事件
  Exception Exc 例外
  Exit Exit 出口
  Expiration Exp 到期
  Exponent Exp 指數
  Extension Ext 延伸
F Field Fld 場,領域
  Flag Flag 標誌
  Flush Flush 重新整理
  Format Format 格式
  Fraction Fract 分數
  Free Free 自由
  Frequency Freq 頻率
  Full Full 完整的,滿的
  Function(s) Fnct 函式,功能
G Gain Gain 增益
  Generate Gen 生成
  Get Get 得到
  Group(s) Grp
H Handler Handler 處理程式
  Harmonic Harm 諧波
  Hexadecimal Hex 十六進位制
  High Hi
  High Priority Task HPT 高優先順序的任務
  History Hist 歷史
  Hit Hit
  Hour(s) Hr 小時
I I.D. Id 身份識別
  Idle Idle 閒置
  Impulse Imp 脈衝
  Index Ix 索引
  Initialization Init 初始化
  Initialize Init 初始化
  Input(s) In 輸入
  Instruction Instr 指令
  Interrupt Int 中斷
  Interrupt Service Routine ISR 中斷服務程式
  Invert Inv 使轉化
K Key Key 關鍵
  Keyboard Key
L Length Len 長度
  Limit

相關推薦

編碼規範命名

1.命名 命名是一個看似簡單卻值得深究的一個過程。變數、函式、檔案等等命名有一些內在的要求:見名知義。一個好的名字可以讓人一眼就知道它是做什麼的,它往往是一個事物的高度概括。如果一個名字取得不好,那麼可能會其他人帶來閱讀上的困難,甚至引起歧義。變數名和檔名一般採用名詞,而函式名一般採用動賓結構。

編碼習慣命名規範

選擇一個好的命名   命名有兩個目標: 清晰:你要知道該命名與什麼有關精確:你要知道該命名與什麼無關   當一個命名完成上面兩個目標之後,其餘的字元就是多餘的了。下面是我在開發時的一些命名原則:   命名中無需含有表示變數或引數型別的單詞   如果使用如Java之

《從零開始學Swift》學習筆記(Day 57)——Swift編碼規範凝視規範:文件凝視、文檔凝視、代碼凝視、使用地標凝視

精品 -type mil 顯示 clas ber ansi tex text 原創文章。歡迎轉載。轉載請註明:關東升的博客 前面說到Swift凝視的語法有兩種:單行凝視(//)和多行凝視(/*...*/)。這裏來介紹一下他們的使用規範。 1、文件凝視文件凝視就在每個文

淺談Android編碼規範命名規範

event err class wrap spa for循環 who 全局變量 經典 原文:淺談Android編碼規範及命名規範前言:   目前工作負責兩個醫療APP項目的開發,同時使用LeanCloud進行雲端配合開發,完全單挑。   現大框架已經完成,正在進行細節模

2.我使用的C/C++編寫規範命名約定

test imu dir use 規範 意義 BE 常見 單詞 自用的規範,參考自Google、華為與微軟。? 最重要的一致性規則是命名管理,命名風格直接可以直接確定命名實體是:類型、變量、函數、常量、宏等等,無需查找實體聲明,我們大腦中的模式匹配引擎依賴於這些命名規則。

HTML 編碼規範布林型屬性

布林屬性:     XHTML 規範要求為布林型屬性賦值,到了HTML5,一切化繁為簡。HTML5 規範規定:元素的布林型屬性如果有值,就是 true,如果沒有值,就是 false。因此,在宣告布林型屬性時,不用賦值。   我們可以看到<input

java 編碼規範 1 命名風格

【強制】程式碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束。反例:_name / __name / $Object / name_ / name$ / Object$ 【強制】

C++程式碼規範命名規則

一、命名的兩個基本原則1、含義清晰,不易混淆; 2、不和其它模組、系統API的名稱空間相沖突。二、命名通則1、在所有命名中,都應使用標準的英文單詞或縮寫;不得使用拼音或拼音縮寫,除非該名字描述的是文 特有的內容(如半形、全形、聲母、韻母等);除非必要,不要用數字或較奇怪的字元來定義識別符號。 2、所有命名都應

自己總結的C#編碼規範--2.命名選擇篇

上一篇文章講了識別符號命名的約定,今天講下識別符號命名的選擇。 簡單的講,看到一個識別符號一定要可以見名知意。 名字一定要能夠表達出識別符號的含意 識別符號名字必須要表達出該識別符號的意義,絕對不可以使用無意義的v1,v2…vn之類的命名。 public static void

自己總結的C#編碼規範--1.命名約定篇

命名約定 我們在命名識別符號時(包括引數,常量,變數),應使用單詞的首字母大小寫來區分一個識別符號中的多個單詞,如UserName. PascalCasing PascalCasing包含一到多個單詞,每一個單詞第一個字母大寫,其餘字母均小寫。例如:HelloWorld、SetN

IOS編碼規範命名規範

⼀一.命名規則 命名總則: 1.使⽤用駝峰法命名,命名清晰明瞭,要做到⾃自描述,不能省略,部分cocoa通 ⽤用縮略詞能夠縮寫。 Objective – C不⽀支援名字名稱空間,所以某些命名要加項⺫⽬目字首區別。 需要加字首的地⽅方: 全域性變數,類名,全域性函式,categ

前端開發規範命名規範、html規範、css規範、js規範

在學習程式設計的時候,每次看到那些整齊規範的程式碼,心裡頓時對這個程式設計師表示點點好感,有時,比如看到自己和朋友寫的程式碼時,那閱讀起來就是苦不堪言,所以,一些基本的開發規範是必須的,是為了自己方便閱讀程式碼,也方便他人閱讀修改程式碼。 命名

前端編碼規範JavaScript

  上次淺談了下關於CSS的編碼規範,大部分童鞋持贊同意見,仍存在一些童鞋不太理解這些規範的意義。   如果是個人或者小作坊開發,其實這些所謂的編碼規範也沒啥意思,因為大家寫好的程式碼直接就給扔到網上去了,很少有打包、壓縮、校檢等過程,別人來修改你程式碼的情況也比較少。但是,對於一定規模的團隊來說,這些東西

前端編碼規範CSS

  "字是門面書是屋",我們不會去手寫程式碼,但是敲出來的程式碼要好看、有條理,這還必須得有一點約束~   團隊開發中,每個人的編碼風格都不盡相同,有時候可能存在很大的差異,為了便於壓縮元件對程式碼進行壓縮以及書寫樣式的規範統一和美觀,很有必要大家一起來研究一套基本規範(模板)!   我先拋磚引玉。(禁止

C#編碼規範代碼的增刪改約定

pre 支持 type cal group 一次 情況 delet 約定 C#編碼規範,代碼的增刪改約定: 增加 #region add by Tome 2018-9-20 //原因:描述 int a = GetScale(obj, col); #endregion

Bootstrap CSS 編碼規範Less 和 Sass 中的巢狀

Less 和 Sass 中的巢狀避免不必要的巢狀。這是因為雖然你可以使用巢狀,但是並不意味著應該使用巢狀。只有在必須將樣式限制在父元素內(也就是後代選擇器),並且存在多個需要巢狀的元素的時候,才使用巢狀。// Without nesting.table > thead

python編碼規範命名規範

編碼規範 不要在行尾加分號, 也不要用分號將兩條命令放在同一行. 每行不超過80個字元,Python會將圓括號, 中括號和花括號中的行隱式的連線起來 , 你可以利用這個特點. 如果需要, 你可以

前端開發規範命名規範

HTML: 1.單標記標籤統一加/結尾 2.所有跟資料有關的按鈕都用input 3.定位屬性要寫全,為0不省略 4.給有事件的元素統一加類 5.單獨模組用section包起來,class是模組名 6.導航,footer單獨之外,其餘的儘量用一個大的容

C++編碼規範(2):命名規範

 如果你程式碼中的變數名,函式數,類名都取得很好,不僅是個有意義的詞或短語,而且確切的表達了該變數或函式的功能.那讀起程式碼來就像看文章一樣,絕對是一種享受.當然理想是美好的,現實可是殘酷的.很少有人能做到這樣.一來嘛你英語詞彙量得多,不樣不容易找到那麼多合適並貼切的

編碼規範 ----JAVA註釋規範

一、前言 好的程式碼規範是一個程式設計師的基本修煉,好的程式碼註釋更能體現一個程式設計師的思維邏輯,雖然程式碼是用來給機器執行的,我們只要能寫出能讓編譯器執行的程式碼就行了,但是如果沒有好的編碼規範,到專案後期,加入開發的人員逐漸增多時,每個人的編碼風格都不