《C++代码整洁之道:C++17 可持续软件开发模式实践》 —3.2 保持简单和直接原则(KISS)
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
- 点赞
- 收藏
- 关注作者
评论(0)