最好的代码注释是代码本身,当需要给代码加文本注释时,应先检查一下代码本身是否清晰合理的表达了代码的意图。合理的方法名称,有助于增强代码的表达力。
看一个名称不合理的方法:
/// <summary> /// 检查商品的收款账户信息 /// </summary> /// <param name="shoppingCart"></param> private void CheckPayClientAppId(ShoppingCartVM shoppingCart) { List<string> payClientAppIdList = new List<string>(); List<string> merchantIdList = new List<string>(); foreach (ShopGoodsVM item in shoppingCart.ShopList) { foreach (ShoppingGoodsVM parentGoods in item.GoodsList) { if (payClientAppIdList.Count == 0) { payClientAppIdList.Add(parentGoods.PayClientAppID); } else if (!payClientAppIdList.Contains(parentGoods.PayClientAppID)) { throw new Exception(Common.ExceptionCode.DifferentReceiveMoneyAccountErrorCode, "一个订单里只能包含相同收款账户的商品", TeldExceptionLevel.Warning); } if (parentGoods.MerchantId == null) { parentGoods.MerchantId = string.Empty; } if (merchantIdList.Count == 0) { merchantIdList.Add(parentGoods.MerchantId); } else if (!merchantIdList.Contains(parentGoods.MerchantId)) { if (string.IsNullOrEmpty(parentGoods.MerchantId) || string.IsNullOrEmpty(merchantIdList[0])) { throw new Exception(Common.ExceptionCode.EmptyMerchantAccountErrorCode, "不支持可清算和不可清算店铺商品共同下单,请重新选择~", TeldExceptionLevel.Warning); } else { throw new Exception(Common.ExceptionCode.DifferentMerchantAccountErrorCode, "不支持非同一结算主体店铺商品共同下单,请重新选择~", TeldExceptionLevel.Warning); } } } } }View Code
这个方法的英文名含义是检查支付配置Id,中文注释是检查商品收款账户信息,存在两个问题:
1、中文名称和英文含义不符
2、没有表达出这个方法的目的,检查支付配置Id、商品收款账户信息,都只是达成目的的手段,而不是目的本身
起始这个方法的目的是检查商品是否可以一起下单结算,做如下改动会更合理一些
/// <summary>
/// 检查商品是否可以一起下单结算
/// </summary>
/// <param name="shoppingCart"></param>
private void CheckIsGoodsCanInOnOrder(ShoppingCartVM shoppingCart)
标签:重构,payClientAppIdList,List,parentGoods,名称,new,合理,MerchantId,merchantIdList From: https://www.cnblogs.com/lianjinzhe/p/16906384.html