《C++代码整洁之道:C++17 可持续软件开发模式实践》 —3.2 保持简单和直接原则(KISS)

举报
华章计算机 发表于 2020/02/09 15:51:57 2020/02/09
【摘要】 本节书摘来自华章计算机《C++代码整洁之道:C++17 可持续软件开发模式实践》 一书中第3章,第3.2节,作者是[德]斯蒂芬·罗斯(Stephan Roth),连少华 郭发阳 陈涛 译。

3.2 保持简单和直接原则(KISS)

任何事情都应该尽可能简单,而不是稍微简单一点。

—Albert Einstein, theoretical physicist, 1879—1955

KISS是“Keep it simple,stupid”或“Keep it simple and stupid”的缩写(对于这个缩写有很多其他的意思,这两个是最常用的)。在极限编程中(extreme programming),简称XP,这个原则有一个更有实践意义的名字“Do the simplest thing that could possibly work”(DTSTTCPW),即简单到只要能正常工作就好。KISS原则旨在在软件开发中,把简单当作一个主要的目标,避免做一些没有必要的复杂性的工作。

我认为在软件开发过程中,软件开发者经常会忘记KISS原则,程序员偏向以精心设计的方式编写代码,这样导致的结果是他们往往将问题复杂化。我知道,我们都是技术精湛、积极进取的开发人员,而且我们也了解设计和架构模式、框架、技术、工具以及其他酷炫和奇特的东西,开发很酷的软件不只是我们朝九晚五的一个工作而已—它已经成为了我们的使命,我们因我们的工作而变得更有成就感。

但是你必须记住,任何软件系统都有内在的复杂性,毫无疑问,复杂问题通常需要复杂的代码。内在的复杂性是不可避免的,由于系统需要满足需求,所以这种复杂性客观存在。但是,为这种内在的复杂性添加不必要的复杂性将是致命的。因此,建议不要仅因为你会用,就把一些花哨技巧或一些很酷的设计模式都用在你所使用的编程语言中。另一方面,也不要过分简单,如果在switch-case判断中有十个条件是必需的,那它就应该有十个条件。

保持代码尽可能简单!当然,如果对灵活性和可扩展性有很高的质量要求,则必须增加软件的复杂性以满足这些需求。例如,你可以使用众所周知的策略模式(请参阅第9章“设计模式”),如果需求需要的话,在代码中引入灵活的可变点。但要小心,只添加那些使事情整体变得更简单的复杂性的东西。

 

对于程序员来说,关注简单性可能是最困难的事情之一,并且这是一个终生的学习经验。

—Adrian Bolboaca (@adibolb), April 3, 2014, on Twitter


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。