哈Ha!
您或您的同事多久没有几个短语来描述您自己的代码?
我提请您注意Cedd Burge的文章“如何编写易于描述的代码”的译文,他在其中分享了如何避免这种情况的建议。

当很难用文字来描述代码时,大多数人不得不运用想象力来做到这一点。 因此,浪费了精力并且增加了在解释代码中出错的风险。 不同的人仍然会以自己的方式感知单词,这会在讨论代码时引起混乱。
通常,这样的讨论将为因误解而产生的错误提供沃土,并且由于相同的原因而更正这些错误通常会导致新的错误。 最后,我们得到了一个没人想使用的难以理解的代码。
难以描述的代码示例
您可能会认为代码只是一种书面语言。 如果代码看起来很简单,则可以轻松阅读,描述和理解。 但是,并非总是如此。
下面的一般决定确定一年是否为a年。
(divisibleBy(4) and not divisibleBy(100)) or divisibleBy(400)
这是简单的代码。 它调用函数3次,具有3个运算符(和/或no)和两个嵌套级别。
但是我认为,如果给您一秒钟的时间来用单词描述这种算法,您将遇到困难。
也许“如果一年可以被4整除而不是被100整除,或者被400整除,那么它就是a年”?
问题在于,与代码不同,字面上没有括号。 因此,很难用词来充分地描述条件,并且单词“被400整除”是指“被4整除”还是“未被400整除”。 要变通解决此问题,您可以用手指定方括号,或在条件之间进行较长的停顿,但是出错的可能性仍然很大。
重构描述的代码
我们可以先用语言描述条件,然后再减少条件,使条件尽可能清晰明了。 让我们开始这样:
“ 400年是一个特例。如果年份可以被400整除,那么这是a年。100年也是一个特例。如果年份可以被100整除,那么它不是a年,除非可以被400整除,所以特殊情况的优先级是“ 400年”。如果没有特殊情况,则今年是a年,条件是将其除以4”。
听起来很清晰,但并不简洁,因此我们将文本缩短一些:
“如果年份除以400,则表示it年。 如果将其除以100,则表示这是正常年份,但是如果将其除以4,则表示是a年。”
如果将这些单词转换为代码,则会得到如下所示的内容:
if divisbleBy(400): return LeapYear elif divisbleBy(100) return NormalYear elif divisbleBy(4): return LeapYear else: return NormalYear
结论
几乎所有程序员都很难理解代码。 如果我们编写易于用语言描述的代码,我们将为自己和同事提供帮助。
最重要的是,以这种方式编写代码是最简单的,因为没有白费力气。 “技巧”是首先用单词描述算法,然后再用这些单词来编写代码。
在许多组织中,已经开始在验收测试或用户案例中用文字描述代码,这可以提高生产率。