代码审核之 重新造轮子


今天在看代码修改记录的时候发现有这么一处改动, 虽然这个改动已经很久了,但是我觉得有必要拿出来大家讨论一下:

re-inventing-the-wheel-coding-review-linq 代码审核之 重新造轮子 I.T. 代码审核 程序设计

re-inventing-the-wheel-coding-review-linq

2007年 .NET 3.5 之后推出LINQ,其实整个函数只是在做一件事,就是返回类成员 layoutList 中是 LayoutDevice (后面改成LayoutAnt )的列表.但实际上这通过 C#LINQ只需要用 OfType<LayOutDevice> 或者 OfType<LayOutAnt> 即可(暂且不说改动包括重构类型)

左边的版本实际上是OK的,这就是学校的标教科书版本,无可厚非,但右边的这个版本就大有问题,因为参数含有引用 ref, 也就是说每次都把外面传进的变量给清空了,这种函数拿来单元测试并不友好.

如果一定要重新造轮子,两个版本都有小问题,一个是 private 方法不好单元测试,另一个是都使用了成员变量 layoutList, 最好是改成 public static 公有静态方法,传入 layoutList, 然后像第一种方式返回新的List.这样的话,这个公有静态方法就是不会更改 (immutable), 较容易被单元测试.

英文: [Code Review] – Reinventing the Wheel

GD Star Rating
loading...
本文一共 287 个汉字, 你数一下对不对.
代码审核之 重新造轮子. (AMP 移动加速版本)
上一篇: 如何在 SteemIt MarkDown 编辑器里添加数学公式?
下一篇: SteemIt 通过回溯算法确定更好的点赞策略 (高级版)

扫描二维码,分享本文到微信朋友圈
ba1c05bd21ddf9903929dfd2d1e2060a 代码审核之 重新造轮子 I.T. 代码审核 程序设计

评论