其实今天本来我是想翻译这一篇的:Code Review Best Practices
作者:https://medium.com/@palantir
如果你熟悉美国公司的话会知道这是个CIA投资的大数据公司,所以没有头像没有作者名字。
不过我很欣喜的看到已经有人干啦,哈哈。[译] 代码审查之最佳实践
于是今天我们换一篇,来看这个:These four “clean code” tips will dramatically improve your engineering team’s productivity
作者:Jonathan Fulton
任何对此文感兴趣的读者请花费50美元/年或5美元/月的价格参加Medium会员计划,否则每月只能查看三篇文章。
一个月一餐盒饭钱,我觉得并不贵,你说呢?
以下为本人对文章的翻译。不对内容负责,也不对任何翻译错误负责,同时不包含任何图片内容,如需查看图片请付费查看原文链接,谢谢。
此处有图,基于本博客译文原则略去。
原始出处:http://www.osnews.com/story/19266/WTFs_m
几年前,在VideoBlocks,我们遇到了一个主要的代码质量问题:大多数文件中的“千层饼”逻辑,大量重复代码,没有测试等等。编写新功能甚至是小错误修复都麻烦得要死。我们的每天都恨不得操程序它祖宗。
今天,我们的代码库的整体质量明显更好,这在很大程度上要归功于为提高代码质量而进行的刻意努力。几年前,当我们发现问题时,我们将Robert Martin的代码整洁之道 作为一个团队必修课,并尽力实施他的建议,甚至将“整洁代码”作为工程团队的核心文化部分。我强烈建议你在开始扩张时同时做到以上两件事。适当地实施“整洁代码”实践将使生产率从长远来看(最低限度)翻倍,并显着提高工程团队的士气。可以选的话谁愿意呆在右边的房间呢?
胖达注:右边的房间请参照图理解。
在我们从“代码整洁之道”和其他来源实施的所有想法中,有五个提供了至少80%的生产力收益和团队幸福感。
胖达注:美国人的数学这么差的么,我数来数去只有四个啊!标题也是四个啊!!简直要被作者逼疯啦!!!
- “如果没有经过测试,它一定不能用”
编写大量测试,特别是单元测试,否则等着后悔吧。 - 选择有意义的名称
对变量,类和函数使用简短且精确的名称。 - 类和函数应该很小并遵守单一责任原则(Single Responsibility Principle, SRP)
函数不应超过4行,并且类不超过100行。是的,你没看错。他们也应该只实现一个功能。 - 函数应该没有副作用
副作用(例如,修改入参的值)是邪恶的。确保不要在代码中发生。Specify this explicitly in the function contracts where possible (e.g., pass in native types or objects that have no setters)
胖达注:这一句很难翻译精确所以直接看原文吧。
让我们逐个详细介绍,以便您了解并开始在工程团队的日常生活中应用它们。
1. “如果没有经过测试,它一定不能用”
每次当我们遇到了应该被(缺失的)测试捕获的错误,我就开始经常向我们的工程师重复这句话。除非你建立一种测试文化,否则你也会一次又一次地证明这句话的正确性。不断的写很多测试,尤其是单元测试。仔细考虑集成测试,并确保有足够的数量来覆盖您的核心业务功能。请记住,如果有一段代码被测试遗漏了,您可能会在没有意识到的情况下将其破坏,直到你的客户发现这有个bug。
重复“如果没有经过测试,它一定是坏的”,一遍又一遍地向你的团队发出消息,直到信息被吸收。不断实践这段内容,无论你是一个刚毕业的全新软件工程师还是一个头发花白的老手。
2. 选择有意义的名称
计算机科学中存在两个难题:缓存失效和命名事物。
您之前可能已经听过这个说法,并且您在工程团队中的日常生活绝对会不断发生。如果您和您的团队不擅长在代码中命名,那么它将成为一个难以维护的噩梦,您将无法完成任何工作。您将失去最优秀的开发人员,您的公司很快就会破产。
但是说真的,朋友,千万别使用像data,foobar或myNumber这样的错误变量名,而且绝对不要让他们像SomethingManager那样命名类。确保你的名字简短而准确,而在两者冲突时精确更重要。通过“按名称查找”IDE快捷方式,可以极大地优化开发人员的效率并轻松查找文件。通过代码审查严格执行良好的命名。
3. 类和函数应该很小并遵守单一责任原则(SRP)
小和SRP就像鸡生蛋蛋生鸡一样,美味的良性循环。让我们从小开始吧。
“小”对函数意味着什么?不超过4行代码。是的,你没看错,4行。你现在可能看不下去了正在点向关闭按钮,但你真的不应该这么着急。它似乎有些随意而且太小了,你可能从来没有编写过这么短的代码。然而,4行函数迫使你思考并为子函数选择许多非常好的名称,并使你的代码自成文档。此外,它们意味着您不能使用那些强制程序员绞尽脑汁才能了解所有代码路径的嵌套IF语句。
猛戳链接查看全部内容:
[译]这四个“整洁代码”技巧将极大地提高您的开发团队的生产力wmdpd.com