你思考世界的方式是什么?

 

短短几年工作里,我接触到了不少关于“面向XX”和“XX驱动”的思想,每当第一次听到它们时都会令我有种莫名的敬畏。

 

昨天在初探Erlang的时候,它的创始人Joe Armstrong的一句话让我印象深刻:

 

Joe Armstrong 写道[1]
At the highest level of abstraction an architecture is “a way of thinking about the world.”

 

Joe这席话让我延伸理解为,架构与其说是问题的答案,倒不如说是对问题的抽象更贴切。这种抽象,就如同面向对象的世界里一切皆为对象,在面向并发的世界里一切皆为进程。

 

看待问题的方式,往往就已经决定了我们解决问题的方式。我的工作中就有这样的案例。系统需要控制资源的访问,这个问题域会被抽象为,给定的资源允许(或拒绝)被访问的对象和行为是哪些,由此访问控制列表(ACL)成为了这个问题域的解决方案。换个思考方式,同样的问题域我们抽象为,哪些的对象能够对哪些资源执行哪些访问行为,这样一来解决方案就变成“授权规则”。


但所有问题的解决方式不可能只有一种,这已经不争的事实。熟悉设计模式的人都了解,每个模式都有其针对的问题域,和适用的场景。有趣的是,当问题域发生变化时,我们的思考方式却没有做适应性的变化,而且这也是我们在自身上极不容易意识到的。我们不妨谨记, 当解决一个问题开始变得复杂繁琐时,这似乎就是我们该换一种方式去思考的信号啦。问题总会有最简单最直接的答案,只要我们能够感觉到现在的答案不是这样的,则极有可能是我们没有对问题进行合适的抽象(或解释)。

至此,面对自己正在着手或即将着手的问题,最好问一句“你思考世界的方式是什么”。

 

参考资料:

 

[1] 《Making reliable distributed systems in the presence of sodware errors》,Joe Armstrong,2003

       它的中文版名为《面对软件错误构建可靠的分布式系统》,由段先德先生于2007年翻译,访问这里可以获取。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值