“程序中复杂的部分必须以某种简单的方式组织起来。。。这就是编程所要用到的艺术和才能 - 化繁为简。

‘差程序员’是不会化繁为简的。他们总以为编程语言“能跑通”的程序,就已经化解了复杂性,而没考虑降低其他程序员需要面对的复杂性。。。在这些程序员看来,他们写出来的东西是能用的,这就是他们的老板需要的,看来也应该是客户需要的。。。他们把结果交给其它程序员,其他程序员又会在这之上增添复杂性,完成自己的工作。

程序员对化解复杂性考虑得越少,程序就越难懂。。。所以,‘好程序员’应当竭尽全力,把程序写得让其他程序员容易理解。因为他写的东西都很好懂,所以要找出bug是相当容易的。 -- 来自《简约之美:软件设计之道》”

这里提到的化繁为简,我认为就是将复杂的系统以清晰的结构与高可读性的代码呈现出来的过程。作者认为不能仅仅为了完成需求来写代码,这是一种应付老板和客户的行为。他认为写代码的时候还要考虑到代码是否可以让人容易理解,当然也包括是否易修改,易扩展,易维护。

其实这本身就是认知高度和自我要求的问题:你是选择追求卓越,还是选择得过且过?我相信两种态度随着时间的推移,所造成影响的差别应该是非常巨大的;不仅是写代码,做任何事情都是。
展开
2