从python之禅看复杂与抽象

《python之禅》中有一句话:

Simple is better than complex.
Complex is better than complicated.

直接的翻译帮助不大:简单比复杂好,复杂比难懂的复杂好。
我们尝试分析它的内在含义。
第一句的意思相对好理解:如果能够让结构简单一些,就尽量简单一些。

为什么?

因为简单的结构鲁棒性更强。
简单的结构适用性更广,在情况发生变化时,受到的影响也更小。
结构越复杂,说明考虑的具体情况越多,于是也就越难以应对外部情况的改变。
从英文角度来看,两个词都是同一个词根,ple和plex的意思相同,都是折叠的意思。字面分析,simple就是折一次,complex就是都折起来。这就是简单与复杂的区别。能少折几次,就少折几次。

第二句想表达的意思有两层:

  1. 复杂性是不可避免的。简单的结构可以解决很多非常本质的问题,但最终我们仍然必须解决具体问题。在掌握了第一句原则的基础上,处理复杂性就是编程的必备功课。complex在英文的使用中就是代表不可避免的复杂。
  2. 复杂性怎样处理。复杂性应当被封装起来,封装的复杂性应当有一个明确的接口。complicated的词根与complex也是一样,的plic与plex,从字面看差不多,全折起来代表复杂。但complicated是一个动词被动式作为形容词,给人一种被弄复杂了、故弄玄虚、故意把问题复杂化的感觉。

怎样把复杂的事物弄得更复杂?

通过把事物纠缠在一起而做到,这就是complicated。

总结一下

第二句的意思,在处理不可避免的复杂结构时,应当将复杂的模块封装起来,提供清晰明确的接口。

让能够简单的事物尽量简单,让不可避免复杂事物尽量减少纠缠,是一种功力的体现。应该说,很大程度上是一种超于编程之外的功力。

真想学习编程,功夫在编程之外

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圣手书生肖让

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值