写出一手烂代码的19条准则

机器之心报道
参与:思

要是想写个烂代码 , 我们只需遵守这十九条准则?

写出一手烂代码的19条准则

文章插图
 
「代码写得好」是对机器学习研究者及开发者最好的赞扬 。其第一层意思是说 , 你的模型非常好 , 有自己的理解与修正;第二层意思是说代码的结构、命名规则、编写逻辑都非常优秀 。
我们曾经将写代码比喻成写文章:不仅需要有一个主旨 , 告诉别人代码的作用是什么 , 同时还应该在精炼与易读之间做权衡 。代码过于精炼 , 整体逻辑难以跟随 , 代码过于易读 , 整体就显得比较臃肿 。
写出一手烂代码的19条准则

文章插图
 
在精简与易读之间做权衡 , 第一种方法根据列表推导式能获得更精简的代码 , 但第二种方法更易读 。
如果说到什么是好代码 , 我们肯定都能说出一堆规则 , 例如使用一致的格式和缩进、使用清晰的变量名和方法名、在必要时提供文档与注释、不要过度精简代码等等 。
但是对于什么是烂代码 , 你有比较清晰的认识吗?
在 GitHub 上有一个新项目 , 它描述了「最佳垃圾代码」的十九条关键准则 。从变量命名到注释编写 。这些准则将指导你写出最亮眼的烂代码 。
为了保持与原 GitHub 项目一致的风格 , 下文没有进行转换 。读者们可以以相反的角度来理解所有观点 , 这样就能完美避免写出垃圾代码 。
项目地址:
https://github.com/trekhleb/state-of-the-art-shitcode
当然 , 以下十九条垃圾代码书写准则并没有面面俱到 , 如果读者们发现有一些难以忍受的烂代码习惯 , 也可以留言发表你的看法 。
第一条:打字越少越好
如果我们键入的东西越少 , 那么就有越多的时间去思考代码逻辑等问题 。如下所示 , 「Good」表示遵循该规则的示例 , Bad 表示没遵循该规则的示例 。
写出一手烂代码的19条准则

文章插图
 
第二条:变量/函数混合命名风格
我们需要混合命名方法与变量 , 这样才能体现命名的多样性 。
写出一手烂代码的19条准则

文章插图
 
第三条:不要写注释
反正代码都看得懂 , 为什么要写注释?或者说 , 反正没人看我的代码 , 为什么要写注释?
写出一手烂代码的19条准则

文章插图
 
第四条:使用母语写注释
如果你违反了第三条规则 , 那么至少写注释需要用你的母语或者其它语言 。如果你的母语是英语 , 那么你也算违反了这条规则 。既然编程语言绝大多数都是用英文 , 那么为什么不用其它语言注释一下?
写出一手烂代码的19条准则

文章插图
 
第五条:尽可能混合不同的格式
同样 , 为了代码的多样性 , 我们需要尽可能混合不同的格式 , 例如单引号或双引号 。如果它们的语义相同 , 那就应该混用 。
写出一手烂代码的19条准则

文章插图
 
第六条:尽可能把代码写成一行
如果一系列参数与方法都是一起实现的 , 那么代码也要写在一起 。
写出一手烂代码的19条准则

文章插图
 
第七条:发现错误要保持静默
当你发现某些错误时 , 其他人不需要了解它 , 因此不需要打印出日志或 Traceback 。
写出一手烂代码的19条准则

文章插图
 
第八条:广泛使用全局变量
使用全局变量 , 是面向「全球化」不可或缺的部分 。
写出一手烂代码的19条准则

文章插图
 
【写出一手烂代码的19条准则】第九条:构建备用变量
以防万一 , 我们需要创建一些备用变量 , 在需要时随时调用它们 。
写出一手烂代码的19条准则

文章插图


推荐阅读