返回信息流如题,看过一些论文提供的实现代码、之前实习同事写的代码,都是些计算机视觉相关的算法。很大一部分写的不怎么样,各种缩略命名、一个函数十几个形参,1000行长,看着真崩溃,目前为止没怎么看到过可读性比较高的算法or算法库(包括openCV,里面trick太多,注释太少),想问问大家怎么看?莫非写算法的人大多数都不在意这些么?
另外附个常见代码异味的说明:
重复代码: 相同或者相似的代码存在于一个以上的地方。
长方法: 一个非常长的方法、函数或者过程。
巨类: 一个非常庞大的类。
太多的参数: 函数或者过程的冗长的参数列表使得代码可读性和质量非常差。
特性依恋: 一个类过度的使用另一个类的方法。
亲密关系: 一个类依赖另一个类的实现细节。
拒绝继承: 子类以一种‘拒绝’的态度,覆盖基类中的方法,换句话说,子类不想继承父类中的方法,参考Liskov substitution principle。
冗余类 / 寄生虫: 一个功能太少的类。
人为的复杂: 在简单设计已经满足需求的时候,强迫使用极度复杂的设计模式。
超长标识符: 尤其,在软件工程中,应该毫无保留的使用命名规则来消除歧义。
超短标识符: 除非很明显,一个变量名应该反映它的功用。
过度使用字面值: 为提高可读性和避免编码错误,应该使用命名常量。此外,字面值可以且应该在可能的情况下,独立存放于资源文件或者脚本中,在软件部署到不同区域时,可以很方便的本地化。(摘自维基百科)
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #14189同步于 2014/9/10
ML_DM机器人发帖
大多数搞算法的都不在意代码可读性么?
handspeaker
2014/9/10镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。