《从码农到工匠--学习笔记》 命名

***一个名字虽然并不影响程序的运行,但是却对代码的表达力和可读性有着重要的影响。***

有特殊意义却让人第一次见感到奇怪的名字,足以给人留下深刻的印象。

命名的过程本身就是一个抽象和思考的过程,当我们不能找到一个合适名称的时候,往往说明我们对问题的理解还不够透彻,需要重新挖掘问题的本质对问题域进行重新分析和抽象。
**好的命名是写出好代码的基础**。

**代码即文档** 可读性好的代码应该有一定的自明性,不借助注释和文档,代码本身就是显性地表达作者的意图。自明性依赖我们对问题域的理解,以及命名是否合理。
无法想出一个合适的名字时,可以思考:是否一个方法实现太多功能?是否封装的内聚性不够?是否对问题的理解还不够透彻,需要获取更多的信息?

变量名应该时名词,能够正确描述业务,有表达力。
 	int elaspedTimeInDays;// 表示过去的时间
 	部分魔法数,应当设置全局变量 ——>    86400:DECONDS_ER_DAY  10: PAGE_SIZE
 	这样做,使代码具有可搜索性,易于管理。

函数名要具体。体现要做什么,而不是怎么做。

类是一组**数据和操作**的封装。分为实体类和辅助类。
	实体类承载了核心业务数据和核心服务业务逻辑,命名要充分体现业务语意。 Customer、Bank、Employee。
	辅助类是辅助实体类一起完成业务逻辑的。其命名要能通过后缀来实现功能。
		用来为Customer做路由控制的控制类型CustomerController、提供Customer服务的服务类CustomerService、获取数据存储的仓储类CustomerRepository。

包名代表一组有关系的类的集合,起到分类组合和命名空间的作用,应该能反映一组在跟高抽象层次上的联系。如苹果、梨子、橘子应该放到一个水果包中。不能太抽象,也不能太具体。

保持命名的一致性,可以提供代码的可读性,从而简化复杂度,一旦选中,要持续遵循,保证名称始终一致。

使用相同方法名约定
	crud/约定
	新增/create
	添加/add
	删除/remove
	修改/update
	查询(单个)/get
	查询(多个)/list
	分页查询/page
	统计/count

使用对仗词
	add/remove
	increment/decrement 增长/缩减
	open/close
	begin/end
	insert/delete
	show/hide
	create/destory
	lock/unlock
	source/target
	first/last
	min/max
	start/stop
	get/set
	next/previous
	up/down
	old/new

限定词后置原则
	总额、平均值、最大值(Total、Sum、Average、Max、Min)	
	总收入、总支出、平均收入、平均支出(revenueTotal、expenseTotal、revenueAverage、expanseAverage)
	建议Total表示总数,Id表示序号 避免Num
使用共同语业务语言

可以通过中间变量让你代码变得更子明,每一步的结果添加一个中间变量	,把代码展开。

在技术人员之间使用设计模式语言,可以极大提升沟通效率。

注释如果是复述代码的功能,往往意味着坏代码,是为了弥补表达能力的不足。

别给糟糕的代码加注释–重新写吧。

如果编程语言有足够表达力,或者我们擅长用代码显性化表达意图,那么也许根本就不需要注释。因此,在写注释时,你应该自省自己是否在表达能力上存在不足,真正的的高手时尽量不写注释。

注释要能够解释代码背后的意图,而不是都功能的简单重复。
//休息2S,等待管理系统处理结果
Time.Sleep(2000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值