《雅码轩: Java哲思》001 词义优化

雅码轩专栏, 干货, 无废话!

词义优化

1. 见名知意

  • 减少无意义变量名 , 例如value, map,list等这种变量名
  • 减少一词多义与多词义一词的情况.
× 糟糕代码

	// 支付
    @Override
    public void pay(Map dto){
    	var value = dto.getValue();
    	var map = dto.getMap();
    	// ...
    }

	// 评论
    @Override
    public void comment(Map dto) {
    	var value = dto.getValue();
    	var list= dto.getList();
    	// ...
    }
    

此代码问题犯了变量名无意义的问题和一词多义的问题, value这个变量在多个函数中出现, 无法第一时间推断他的含义, 则对于跟代码的人来说, 可读性不佳. 变量名混淆.

√ 优雅代码

	// 支付
    @Override
    public void pay(PayDTO dto){
     	// 订单id
    	var orderId = dto.getOrderId();
    	// 表单数据
    	var formData = dto.FormData();
    	// ...
    }

	// 评论
    @Override
    public void comment(CommentDTO dto) {
    	// 用户id
    	var userId = dto.getUserId();
    	// 帖子ids
    	var postIds = dto.PostIds();
    	// ...
    }
    

变量名见名知意, 无阅读压力


2. 变量名共识

任何业务模块中, 同一个实体应采用相同变量名, 形同共识.

× 糟糕代码

	// 风控模块: 分析风控
    @Override
    public void analyze(){
        // 查询所有风控信息
    	List<RiskVO> risks = findRisks();
    	// ...
    }
    
    // 模块隔离  /
    
	// 用户模块: 上报风控
    @Override
    public void addRisk(AddRiskDTO dto) {
    	// 我的历史风控信息
    	List<RiskVO> histories = findRisksByUserId(dto.getUserId());
    	// ...
    }
    

此代码中, 风控这个实体, 一会儿叫risks , 一会儿又叫histories , 变量名没有形成共识.

√ 优雅代码

	// 风控模块: 分析风控
    @Override
    public void analyze(){
        // 查询所有风控信息
    	List<RiskVO> risks = findRisks();
    	// ...
    }
    
    // 模块隔离  /
    
	// 用户模块: 上报风控
    @Override
    public void addRisk(AddRiskDTO dto) {
    	// 我的历史风控信息
    	List<RiskVO> myRisks = findRisksByUserId(dto.getUserId());
    	// ...
    }
    

在不同业务模块中, 变量名形成共识, 都叫risks , 可以在前面增加定语, 例如:
我的风险信息: myRisks
失效风控信息: invalidRisks
严重风险信息: crucialRisks

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值