acm-header
登录

ACM通信

BLOG@CACM

干净的代码是不够的;它必须是透明的,太

为什么清晰的代码对每个项目都很重要

叶戈尔·Bugayenko

想象一个闪闪发光的干净厨房。柜台闪闪发光,地板闪闪发光。所有的餐叉和盘子都在原处,平底锅都擦得干干净净,垃圾桶里连一粒面包屑都没有。一个幻想。在现实世界中,厨房很快就会变脏。代码也会变得一团糟,尤其是在不称职的人手中。

许多顶尖的程序员强调干净的代码。将有才华、有奉献精神的程序员与拿薪水的人区分开来的一个快速方法是,看看他们的代码有多干净(或不干净)。然而,同样重要的是清晰的代码。

想象你自己在那个闪闪发光的厨房里。这是梦想的组成部分。冰箱里摆满了新鲜可口的食材。你有一个特定的食谱要做,所以你拿出烹饪书。只有一个问题,这是用中文写的,你看不懂!

虽然厨房很漂亮,而且储备充足,但如果你不能按照食谱做,你就很难做出一道菜来。在最好的情况下,您可能能够使用谷歌Translate来解决问题。然而,误解或解释某事的几率会非常高。

在编写代码时,清晰性同样重要。

干净的代码提供了一个坚实的基础,但对于异常的代码来说,这是不够的。删除编码反模式和类似的东西是很好的,但是在一天结束的时候,如果您不能理解闪闪发光的干净代码,仍然很难使用它。也许您可以弄清楚代码的含义,但您可能会误解某些东西。

干净的代码有些不常见。许多不太优秀的程序员只是简单地把代码混在一起,只关心它是否能起作用。清晰且易于理解的干净代码更为罕见。即使是有才华的程序员也不会花很多时间考虑他们的代码是否清晰。

一个有才华的程序员甚至可能觉得没有必要写清晰的代码。毕竟,编写代码的人往往理解代码。但是,当其他人出现时,比如一个有才华的初级程序员,他们可能不得不花几个小时仅仅试图弄清楚代码的含义。

真正杰出的程序员会考虑其他程序员是否能理解他们的代码。他或她会努力编写漂亮、清晰的代码,让其他人能够轻松使用。

那么,如何编写清晰的代码呢?在编写代码时考虑其他透视图。你能把这个代码传递给第三方吗?他们能容易地理解它吗?

然后,更重要的是,测试你是否成功。把代码交给别人,让他们检查一下,看看是否清楚。记住“清晰”,而不是“干净”。你的类可能很漂亮,你的代码构造可能很惊人。但这是“干净”的代码。更重要的是其他人是否可以使用这些代码。

所以请别人在30分钟内调试代码中的问题。如果他们不能,您的代码可能很难理解。如果你的程序员同伴不得不一个接一个地问问题,这表明他们并没有自己找到答案,这可能是因为你的代码很难理解。

干净的代码通常会给人留下深刻的第一印象。一旦程序员使用清晰的代码,他们就会欣喜若狂。最终,清晰的代码易于理解、修改和维护。如果您接管了软件编程,难道您不希望代码具备上述所有条件吗?当然!

顺便说一下,您可以更进一步,使您的代码真正开放。不要要求人们简单地报告错误。让他们检查清楚。当他们提供反馈时,您将更多地了解其他人如何看待和解释您的代码。这样,您就可以编写越来越清晰的代码。

在餐馆里,脏盘子和蟑螂肯定会让顾客打包走人。谁想要一杯脏水?谁都不能说,我们要清楚地知道。在编写优秀的代码时,你可以从干净的代码开始,但要确保它是透明的。这将导致高可维护性,并使人们更容易与您一起工作。

叶戈尔·Bugayenko是软件工程和管理平台Zerocracy的创始人兼首席执行官。


评论


杰罗尔德海曼

俄罗斯人,

我完全同意。我一直在这样的理念下工作,即我不会永远做这份工作,并在编写代码时考虑到维护者。这意味着要有大量注释,使注释与代码保持同步,以及自描述的变量名。
这是我希望在维护代码时看到的。在极少数情况下,我很幸运地收到了符合设计规范的文档化代码。
我只是希望更多的软件工程师写出清晰的代码,而不是保证工作安全的代码。


显示1评论

登录为完全访问
»忘记密码? *创建ACM Web帐户
Baidu
map