编码规范之命名

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 聚集

                                          编程常用缩写
序号英文词缩写词意义
AAccumulatorAcc累加器
 ActionAct动作,活动
 ActiveAct活跃的
 AdditionAdd添加
 AddressAddr地址
 AlarmAlm报警
 AllAll所有
 AllocateAlloc分配
 AmplitudeAmp幅值
 Analog InputAI模拟输入
 Analog OutputAO模拟输出
 Anolog I/OAIO模拟I/O
 ApparentApp表面上的
 ArgumentArg变元
 ArrangeArrng排列
 ArrayArray阵列
 AssembleAsm组装
 AttributeAttrib属性
BBarBar条,带
 BitBit比特
 BlockBlk
 BufferBuf缓冲区
 ButtonBtn按钮
 BypassBypass旁路,跳过
CCalculateCalc计算
 CalibrationCal校准
 ChangeChg改变
 ChannelCh通道
 CheckChk检查
 ClearClr清除
 Clear ScreenCls清屏
 ClockClk时钟
 ColumnCol
 CommandCmd命令
 CommunicationComm通信
 CompareCmp比较
 CompleteComp完成
 ConfigurationCfg配置
 ConnectCon连接
 ConstructCons构建
 ContextCtx上下文
 ControlCtrl控制
 Control WordCW控制字
 ConvertConv转换
 CopyCp复制
 CountCnt计数
 CounterCtr计数器
 CurrentCur当前,电流
 CursorCsr光标
DDateDate日期
 DayDay
 Day-of-weekDOW一周中的一天
 DebounceDebounce消抖
 DecimalDec十进制的
 DecodeDecode解码
 DecreaseDec减少
 DefineDef定义
 DegreeDeg
 DelayDly延迟
 DeleteDel删除
 DescriptorDesc描述符
 DestinationDst目的地
 DeviceDev装置
 DigitDig数字
 DisableDis禁用
 DiscoveryDisc发现
 Discrete I/ODIO离散输入输出
 Discrete InputDI离散输入
 Discrete Output(s)DO离散输出(s)
 DisplayDisp显示
 DivisionDiv除法
 Divisor/DivisionDiv除数/分
 DownDown
 DummyDummy虚构的
 DynamicDyn动态
EEdgeEdge
 EffectiveEff有效
 ElectricElec
 EmptyEmpty
 EnableEn使能
 EngineEng引擎
 Engineering UnitsEU工程单位
 EnterEnter进入
 EntriesEntries条目
 EquivalentEquiv等效
 Error(s)Err错误
 EthernetEth以太网
 Event(s)Event事件
 ExceptionExc例外
 ExitExit出口
 ExpirationExp到期
 ExponentExp指数
 ExtensionExt延伸
FFieldFld场,领域
 FlagFlag标志
 FlushFlush刷新
 FormatFormat格式
 FractionFract分数
 FreeFree自由
 FrequencyFreq频率
 FullFull完整的,满的
 Function(s)Fnct函数,功能
GGainGain增益
 GenerateGen生成
 GetGet得到
 Group(s)Grp
HHandlerHandler处理程序
 HarmonicHarm谐波
 HexadecimalHex十六进制
 HighHi
 High Priority TaskHPT高优先级的任务
 HistoryHist历史
 HitHit
 Hour(s)Hr小时
II.D.Id身份识别
 IdleIdle闲置
 ImpulseImp脉冲
 IndexIx索引
 InitializationInit初始化
 InitializeInit初始化
 Input(s)In输入
 InstructionInstr指令
 InterruptInt中断
 Interrupt Service RoutineISR中断服务程序
 InvertInv使转化
KKeyKey关键
 KeyboardKey
LLengthLen长度
 LimitLim极限
 ListList列表
 LockLock
 LowLo
 Low Priority TaskLTP低优先级任务
 LowerLe较低的
 LowestLo最低的
MMagnitudeMag大小
 MailboxMbox邮箱
 MakeMk
 MantissaMan尾数
 ManualMan手册
 ManufactureMfg制造
 MaskMsk面具
 MaximumMax最大
 MeasureMeas测量
 MessageMsg消息
 MinimumMin最小
 ModeMode模式
 MonthMonth
 MoveMov移动
 MultiplexMux多路的
 MultiplicationMul乘法
NNegativeNeg
 NestingNesting嵌套
 NeutralNeut中性
 NewNew新的
 NextNext下一个
 Number ofNum
OOffsetOffset偏移
 OldOld
 Operation SystemOS操作系统
 OptimizeOpt优化
 OriginalOrig原型
 OutputOut输出
 OverflowOvf溢出
PPackagePkg包裹
 ParameterParam参数
 PassPass通过
 PerformancePerf性能
 PeriodPer周期
 PhasePh相位
 PointerPtr指针
 PortPort端口
 PositionPos位置
 PositivePos正的
 PowerPwr功率
 PreviousPrev以前的
 PrinterPrt打印机
 PriorityPrio优先
 processProc过程
 ProductProd产品,乘积
 ProtocolProt协议
 PutPut
 QualityQlty质量
 QuarterQuar季度,1/4
QQueueQ队列
RRawRaw未加工的
 ReactiveReact反应
 ReadRd
 ReadyRdy准备好了
 Real-TimeRT实时
 RecallRcl回忆
 ReceiveRx接收
 RectangleRect矩形
 ReferenceRef参考
 RegisterReg登记
 RepeatRpt重复
 RequestReq请求
 ReserveResv储存
 ResetReset复位
 ResponseResp响应
 ResumeResume摘要
 ReturnRtn返回
 ReverseRevs反向,相反
 RingRing成环形
 RowRow
 RunningRunning运行
SSampleSmp样品
 ScaleScale比例
 Scale FactorSF比例因子
 ScalingScaling缩放比例
 ScanScan扫描
 ScheduleSched计划表
 SchedulerSched调度程序
 ScreenScr屏幕
 Second(s)Sec
 Segment(s)Seg
 SelectSel选择
 SemaphoreSem发信号
 SequenceSeq序列
 ServerSvr服务器
 SetSet
 SettingSetting设置
 Seven-segmentsSS七段
 SignalSig信号
 SizeSize大小
 SourseSrc
 StackStk堆栈
 StandardStd标准
 StartStart起点
 Statistic(s)Stat统计
 StatusStat状态
 StopStop停止
 StringStr字符串
 SubtractionSub减法
 SuspendSuspend暂停
 SwitchSw开关
 SynchronizeSynch使同步
 SystemSyst系统
 TableTbl
TTaskTask任务
 ThresholdTh门槛
 TickTick标记
 TimeTime时间
 TimeoutTO超时
 TimerTmr定时器
 Time-stampTS时间戳
 ToggleTgl切换
 TotalTot
 TriggerTrig触发
UUnlockUnlock解锁
 UpUp
 UpdateUpdate更新
 UtilityUtil实用,功用
VValueVal
 VariableVar变量
 VectorVect矢量
 VersionVer版本
 VisibleVis可见
 VoltageVol电压
WWatchdogWdog看门狗
 WriteWr
YYearYear
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值