zoukankan      html  css  js  c++  java
  • 编码规范之命名

    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 聚集
     
     
     
  • 相关阅读:
    6 November in 614
    4 November in ss
    标准模板库(STL)
    类模板
    函数模板和模板函数
    关于“宏定义”的作用范围
    运算符重载
    内存分配和释放的函数
    数据库恢复的基础是利用转储的冗余数据
    在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是
  • 原文地址:https://www.cnblogs.com/zhongzihao/p/7050892.html
Copyright © 2011-2022 走看看