代码健康

修复测试沙漏

自动化测试使创建新功能、修复 bug 和重构代码变得更安全、更快。在计划做自动化测试时,我们设想了一个金字塔,它具有小单元测试的强大基础,一些精心设

继续阅读

现在,你该考虑函数式编程了么?

循环是处理集合(collection)的标准方法,比如数组 Array 和列表 List。然而,有些循环重复实现了查相同的模式,导致了代码重复。Highe

继续阅读

代码健康(10):包含尊重的CR,才是有用的CR

虽然代码评审被认为是提高软件项目质量的一个有价值的工具。但是,如果反馈评论被认为描述不清晰,或者是过于苛刻,都可能会产生不良后果,如:慢吞吞

继续阅读

代码健康(9):减少嵌套, 减少复杂性

嵌套过深的代码对可读性有害,而且容易出错。 而通过卫语句来检查某一条件,如果不满足就直接快速失败。 卫语句将计算逻辑与错误逻辑分离。通过消除错误

继续阅读

到底要不要写注释?怎么写?

要写注释,还是不用呢? 当阅读代码时, 没有什么比良好的注释内容更给力的了。 然而, 注释并不总是好事儿。 在哪些情况下,不应该写注释,而是应该重构 假

继续阅读

消除 YAGNI 坏味道

消除 YAGNI 坏味道 软件开发的大部分成本是维护成本。减少维护成本的一个方法是:“只在当你真正需要它时,才去编写它”。也就是所谓的 “你不需要它( You Aren’t Gonna

继续阅读

使用较长的命名,也会降低可读性

小心使用过长的命名 创建长标识符很容易被带飞。虽然较长的命名常常让代码更加具有可读性,但是,如果名字过长,也能降低可读性。在GitHub和其它

继续阅读

通过提交注释和 Issue Report提供上下文。

利用“ commit message ”和“ issue ”提供上下文 阅读其他工程师的代码有时会感觉像是在考古,其中可能充满了难以破译的,奇怪(甚至令人瞠目结舌)的描述。**写代码

继续阅读

不要痴迷于原始类型

不要痴迷于原始类型 编程语言提供基本类型,如 int ,string 和 map ,这些类型在许多场景下都被用到,例如,利用 string 保存人名,或者网页URL等等。 然而

继续阅读

代码健康(2):接口设计,要让其很难被误用

这是《Effective C++》中的第18条原则。 我们都在试图避免代码中的错误。 那么,如何避免调用者以错误的方式调用了你的这些代码呢? 让你接

继续阅读