代码编程教学入门 代码怎么编写

一、什么是好代码
抛开性能、并发、一致性等技术因素,好的业务代码应当如一篇显浅易懂的业务叙实文章,满足以下几个基本条件:

  • 词要达意:最基础的变量、函数、类的命名,是否名达其意 。
  • 结构清晰:类的关系结构,函数的调用结构,是否如文章的章节、段落划分层次分明和逻辑清晰 。
  • 紧扣主题:包、类、函数是否内聚,是否破坏了单一和开闭原则 。
因此,好代码如同好文章,它应该是饱含业务语义(词要达意)、具有自明性和可读性(结构清晰),能够显性化表达业务意图(紧扣主题),让人赏心悦目 。
二、从最基本做起
2.1 命名
好的代码,从好的命名开始,做到名副其实 。
变量命名
变量名是名词,要正确和清晰地描述业务语义,如果一个变量需要通过注释补充说明,那可能就是没取好变量名 。
变量命名的关键点:
1、词要达意:避免无业务语义的命名,如:list、val、a…;
2、语境范围:避免小范围词套大范围数据,反之亦然,不使用过于宽泛的名词 。
3、名词复数:统一风格,加s或List尾缀,变量名建议使用s尾缀,函数名建议使用List尾缀 。
4、后置限定词:限定词是对前面变量名的修饰,可以描述名词的作用范围属性,例如:
  • 请求入参:xxxQuery/xxxRequest
  • 返回结果:xxxResponse/xxxResult
  • 传参数据:xxxDTO/xxxVO/xxxInfo
  • 运算结果:xxxTotal(总和)/xxxMax(最大值)/xxxAverage(平均值)
Bad case:
代码编程教学入门 代码怎么编写


Good case:
代码编程教学入门 代码怎么编写


函数命名
函数命名要体现做什么,而不是怎么做,要清楚表达出操作意图和业务语义 。
函数命名的关键点:
  1. 动名词搭配,动词表达操作意图,名词表达业务语义 。
  2. 正反操作使用对仗词,例如:
  • add/remove
  • open/close
  • begin/end
  • insert/delete
  • first/last
  • min/max
Bad Case:
代码编程教学入门 代码怎么编写


Good Case:
代码编程教学入门 代码怎么编写


类命名
类是面向对象中最重要的概念,是一组关联数据的相关操作的封装,通常可以把类分为两种:
  • 实体类:承载业务的核心数据和业务逻辑,命名要充分体现业务语义,比如Order/Buyer/Item 。
  • 辅助类:协调实体类完成业务逻辑,命名通常加后缀体现出其功能性,比如OrderQueryService/OrderRepository 。
函数命名的关键点:
  1. 辅助类尽量避免用 Helper/Util 之类的后缀,因为其含义过于笼统,容易破坏单一职责原则 。
  2. 针对某个实体的辅助操作过多,或单个操作很复杂,可通过 “实体 + 操作类型 + 功能后缀”来命名,同时符合职责单一和接口隔离的原则,比如OrderService:
  • OrderCreateService:订单创建服务 。
  • OrderUpdateService:订单更新服务 。
  • OrderQueryService:订单查询服务 。
包命名
包(package)是一组强关联(内聚)的类的集合,起分类收纳和命名空间的作用 。