解释起来非常棘手,因为简单并不意味着每个人都有相同的意思。
例。有些开发人员认为这?:
很简单,但其他开发人员认为if
声明更好。当它下降到这个水平时,您不能取悦所有人。
通常,简单意味着没有复杂性。为了了解简单性,我们需要了解复杂性。
有两种类型的复杂度:
本质复杂性是指由于“简单”的解决方案无法充分解决问题而必须对所有合理的解决方案进行复杂处理(并可能造成混淆)的情况。-维基百科
偶然的复杂性是在计算机程序或其开发过程(计算机编程)中出现的复杂性,它对要解决的问题不是必需的。-维基百科
您可以通过以下问题检查基本的复杂性:
这个解决方案简单吗?我可以在几分钟内向同伴解释一下,他们会明白吗?有没有更简单的解决方案?如果是,那么复杂的解决方案与简单的解决方案之间是否需要权衡?我们可以忍受这些折衷吗?例如,许多程序员犯了一个错误,那就是对所有事物进行微优化,并且他们的解决方案(以及代码)变得过于复杂。
检查您的意外复杂性:
代码简单吗?如果我在三个月后回到这个问题上,我需要花多长时间在脑海中建立背景,以便我做出需要做的改变?我的源代码中的所有内容是否都有明确的目的,并将该目的有效传达给我和其他开发人员?测试我的代码有多难?通常,您的代码越复杂,单元测试就越困难,因此我通常将其用作衡量复杂度的方法。通常,您需要小型,名称明确且重点突出的类和方法。设计模式通常也可以帮助您实现这些目标。
如果您只是因为阅读了它而想要使用设计模式,则可能会带来意外的复杂性。如果您发现自己想放东西是因为您认为“它很聪明”,则可能会带来意外的复杂性。
我希望这会有所帮助,并且不要忘记:简单并不意味着EASY。