什么是完美的代码?

时间:2014-05-03 13:16:17

标签: theory

我听到了很多,而且我没有看到真正的定义。

我知道它不存在,除了理论上可能。但即使在理论上,什么定义为“完美代码”?

3 个答案:

答案 0 :(得分:5)

您可能需要阅读本书:http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

以下是本书的一些引用:

  

Bjarne Stroustrup,C ++的发明者和The C ++ Programming的作者   语言

     

我喜欢我的代码优雅高效。逻辑应该   直接使bug很难隐藏,依赖   最小化以便于维护,错误处理完成   明确的策略,并且性能接近最优,以免   引诱人们通过无原则的优化使代码变得混乱。   干净的代码做得很好。


  

Grady Booch,面向对象分析与设计的作者   应用程序清洁代码简单直接。

     

清洁代码读起来就像写得好的散文。干净的代码永远不会掩盖设计师的意图   而是充满了清晰的抽象和直接的控制线。


  

“大”Dave Thomas,OTI的创始人,Eclipse策略的教父

     

清洁代码可以由其他开发人员读取和增强   原作者。它有单元和验收测试。它有意义   名。它提供了一种方式而不是多种方式来做一件事。   它具有最小的依赖关系,它们是明确定义的,并且   提供清晰且最小的API。代码应该是识字的   根据语言,并非所有必要的信息都可以   仅在代码中清楚地表达了。


  

Michael Feathers,“有效使用遗产代码”一书的作者

     

我可以列出我的所有品质   通知干净的代码,但有一个总体质量导致   对他们所有人。干净的代码总是看起来像是由某人写的   谁在乎。没有什么明显的事情可以让你做得更好。   所有这些都是由代码的作者考虑的,如果   你试着想象一下改进,你会被带回到你所在的地方,   坐在欣赏有人为你留下的代码 - 留下的代码   一个关心工艺的人。


  

Ron Jeffries,极限编程的作者   已安装和极限编程   C#中的冒险

     

近年来,我开始,几乎结束了贝克的   简单代码规则。按优先顺序,简单的代码:

     
      
  • 运行所有测试;

  •   
  • 不包含重复内容;

  •   
  • 表达系统中的所有设计思路;

  •   
  • 最大限度地减少类,方法,函数等实体的数量。

  •   
     

其中,我主要关注的是   复制。当同样的事情一遍又一遍地完成时,它就是一个标志   在我们的脑海中有一个想法没有很好地表现出来   码。我试着弄明白它是什么。然后我试着表达这个想法   更清楚。

     

对我的表达包括有意义的名字,我是   在我安顿下来之前,我可能会多次改变事物的名称。   使用Eclipse等现代编码工具,可以完全重命名   价格便宜,所以不要让我改变。表现力   然而,拥有混乱11的总成本超出了名称。我也看   一个对象或方法是否做了不止一件事。如果它是   一个对象,它可能需要分成两个或多个对象。如果   这是一种方法,我将始终使用Extract Method重构,   导致一种方法更清楚地说明它的作用,以及一些方法   子方法说它是如何完成的。

     

复制和表达力   对于我认为干净的代码和改进,我已经走了很长的路   只考虑这两件事的脏代码可以做出巨大的贡献   区别。然而,还有另一件我知道的事情   做,这有点难以解释。

     

经过多年的努力   工作,在我看来,所有程序都是非常相似的   元素。一个例子是“在集合中找到东西。”无论我们是谁   有一个员工记录数据库,或键和值的哈希映射,   或者是某种类型的物品,我们经常发现自己想要一个   该系列中的特定项目。当我发现这种情况时,我   通常会将特定的实现包装成更抽象的   方法或类。这给了我一些有趣的优势。

     

我现在可以用简单的东西来实现这个功能,比如哈希   map,但是从那时起我对所有对该搜索的引用都有所涉及   小抽象,我可以随时改变实现。一世   可以快速前进,同时保留我以后改变的能力。

     

在   另外,集合抽象经常引起我的注意   什么是“真正”发生的事情,并阻止我走上正轨   当我真正需要的是一个时,实现任意的收集行为   找到我想要的东西很简单。

     

减少重复,   高表现力,早期建立简单的抽象。那是   什么为我制作干净的代码。


  

Ward Cunningham,Wiki的发明者,   Fit的发明者,极限编程的共同发明者。原动力   设计模式背后。 Smalltalk和OO思想领袖。教父   所有关心代码的人。

     

你知道每个人都在处理干净的代码   你阅读的例行程序几乎就是你所期望的。您   当代码也看起来像它时,它可以称之为漂亮的代码   为这个问题制定了语言。

答案 1 :(得分:1)

我的列表没有特别的顺序

  • 它完成了所需要的工作
  • 正确,可预测且安全地执行
  • 其他人很容易理解和维护
  • 有详细记录
  • 如果/何时失败,则会提供有意义的错误消息
  • 它不会试图不必要地聪明

答案 2 :(得分:0)

你说没有完美的代码是正确的。但是每个代码必须用适当的类/变量/函数名称,正确的缩进,正确的注释,正确的算法组织,或者我们可以说正确的算法,以及良好的内存管理。