孤尽班第12天 -- 编码规约

代码中该用Tab还是空格?真的很无聊,没啥可说的。

帕金森琐碎定理:那些个没用的,但每个人都能说上几句的,总是会消耗会议的大部分时间,而真正需要讨论的重要议题却得不到深入的交流。

(小声bb:这个在新来的员工身上体现最明显。新来的员工正在业务熟悉中,所知不多,但又需要表现,给组员和领导留下印象。所以,在会议上,只要遇上他/她熟悉的话题,自然要好好展示一下。如果这个话题切中正题,这位新员工拔得一筹,即便没切中正题,至少也刷了波存在感,让人觉得他/她还是很有激情的。)

但是,从大局来看,需要讨论的问题总是得不到充分的交流,而时间却在一分一秒地流逝。

编码规约存在的意义:

  • 减少代码的维护成本
  • 改善可读性
  • 提高团队开发的合作效率
  • 锻炼出更加严谨的思维
  • 身心愉快

代码格式与命名风格

两个要求

命名体现代码元素特征

  • 抽象类命名使用Abstract或Base开头
  • 异常类命名使用Exception结尾
  • 测试类命名以它要测试的类名开始,以Test结尾
  • 类型与中括号紧挨相连来定义数组
  • 枚举类名带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开

命名最好“望文生义”

  • 某些不规范的缩写会导致理解成本增加,比如condition缩写成condi
  • 主流的编程语言基本上以英语为基础,此处望文生义的“文”指的是英文
  • 某业务代码中,曾经出现过DaZePromotion

常量定义与设计规约

不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。

统一常量一定是需要统一的管理,统一的维护,统一的使用

【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。

  • 跨应用共享常量:放置在SDK中
  • 应用内共享常量:放置在一方库中
  • 子工程内部共享常量:即在当前子工程的constant目录下
  • 包内共享常量:即在当前包下单独的constant目录下
  • 类内共享常量:直接在类内部private static final定义

(小声bb:我平时的做法是对于那些在全局代码中只会出现一次的string值就不用常量定义了,但只要会被用到两次以上的,都会用创建一个常量来表示这个string值)

常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长,比如:

最大库存数量命名:MAX_STOCK_COUNT

缓存失效时间命名:CACHE_EXPIRED_TIME

用户注册错误:USER_REGISTER_ERROR

注释规约

注释作用:

  • 提高代码可读性
  • 使程序条例清晰
  • 方便后期代码维护
  • 方便程序员间的交流沟通
  • 生成帮助文档
  • 警示作用,防止踩坑

时间紧张,无法出高质量的代码?

应该在下面这些方面提高自己的能力

沟通效率,协作效率,打字速度,环境调试,代码意识,架构意识,代码注释

前后端设计与规约 

前后端联合开发的纠结点:

1. 接口名称和风格

2. 如果空集合,返回null还是空集合

3. json组装格式

4. 后台异常的失败提示

5. 错误信息与用户提示透出

前后端交互的API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体

把errorMesage和抛给用户的提示信息映射起来,不应该把错误信息直接抛给用户。

JAVA与JS对数字类型变量处理方式不同。如果数字太大或者有精度要求,最好使用String类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值