渔村经济学和编程

渔村经济学和编程

从前在一个小渔村上住着两个人:张三 和 李四。

张三 和 李四 为了生存,每天能填饱肚子不被饿死,一直过着上午到海边打鱼,下午去树林里抓兔子的狩猎生活。

张三 是个捕鱼的好手,一个上午就能抓到 3 条鱼。但是 张三 在抓兔子方面却没有什么建树……整个下午如果能抓到 1 只兔子,对张三来说那真的是老天的恩赐了。

李四 则正好相反!李四 整个上午也就只能捉到 1 条鱼,但是在下午,李四 却可以毫不费力的逮着 3 只兔子。

好了,张三 擅长捕鱼,李四 擅长抓兔。

现在这座小渔村每天的经济产值是:张三 捕到的 3 条鱼 + 1 只兔子 + 李四 捕到的 1 条鱼 + 3 只兔子。

也就是:4 条鱼 + 4 只兔子。

张三、李四 两个人就这么生活了很久很久,但是生活水平一直也没什么提高……

一天傍晚俩人坐在火堆旁吃晚饭(烤鱼还有烤兔子),一边吃一边聊,张三 突然灵光一现!

张三 说:既然咱俩各自擅长的事情不一样,那不如咱们就专门干自己擅长的事情。比如我专门去捕鱼,你专门去抓兔子。

李四 问:那我要是想吃鱼咋办啊?

张三 说:你用兔子跟我换鱼就可以了……

张三 接着说:我要是想吃兔子了,我就用鱼找你换。

李四 同意了 张三 的这个提议,俩人决定从明天起就开始这么干!

从这一天开始,张三 专门负责捕鱼,李四 专门负责 抓兔子。

一天下来,张三 捕到了 6 条鱼,而李四捕到了 6 只兔子。

晚上,张三 和 李四 同坐在火堆旁,互相交换了 2 条鱼和 2 只兔子。

现在 张三 可以比以前多吃一只 兔子,因为要自己亲手抓兔子,只能抓到一只。而 李四 也一样,可以多吃一条鱼。

现在这座小渔村每天的经济产值是:张三 捕到的 6 条鱼 + 李四 抓到的 6 只兔子。

也就是: 6 条鱼 + 6 只兔子

两个人的水平有了显著的提高!

看这个小渔村上的两个人生活的不错,引来了邻居小渔村上的几个人,他们是:王五、赵六、刘七。

王五 这个人比较厉害,一天能猎杀一头野猪。但野猪也很厉害,所以王五经常受伤。

赵六 能爬到很高很高的树上取鸟蛋,每天都能弄到 3 个鸟蛋。取鸟蛋要做好防坠落的措施,并且还要提防大鸟还巢,因为大鸟的爪子十分锋利。

刘七 看似稍微柔弱一些,只能采点野果,好在每天能采到很多野果,且不用冒着 王五 和 赵六 那么大的风险。

每天每个人都干着自己最擅长的事情,然后和其他人进行交换。可没过几天就出了一堆麻烦……

张三 作为全村捕鱼第一能手,天天吃鱼总有个腻的时候。这天 张三 看见 赵六 手里的 3 个鸟蛋口水直流,于是想用手里的 6 条鱼换 赵六 的鸟蛋。

可 赵六 还想拿着 鸟蛋 找 王五 换点野猪肉呢,不是野猪肉坚决不给鸟蛋。

张三 无奈,只好去找 王五,看看能不能用自己手里的鱼换野猪肉。

见了 王五,王五 说自己不想吃鱼!自己多年吃野猪肉,最近老是便秘,想从 刘七 那弄点果子通通便。

张三 继续无奈,只好继续去找 刘七,可 刘七 这个家伙竟然是个素食主义者。

为了鸟蛋,张三 拼了!,好说歹说 刘七 终于同意 用鱼来换野果。

张三 喜出望外,赶紧拿着野果去找 王五,换来了斑马肉之后 又赶紧飞奔着去找 赵六……

张三 捧着来之不易的 3 个鸟蛋,心情无比激动……这是他一辈子吃过的最好吃的东西。

不就想吃个鸟蛋么?费这么大周折!

于是小渔村上的几个人一起开了个会,大家一致认为以物易物实在太麻烦了!

如果把自己手里的东西换成大家都喜欢的贝壳,然后再拿着贝壳去换别人手里的东西,这样就方便多了。

最后贝壳成了可以交换任物品的通用物品,也就是货币。

从此,小渔村上的交换更方便,更频繁,每个人的生活水平也越来越高。

启示

小渔村的故事还有很多很多,但今天就先讲到这里。这是经济学中的一个小故事,而这个小故事能给我们这些程序员什么启示呢?

当读完第一段的时候,我们是不是可以联想到没有分层的代码,各个类相互引用,或者在一个函数里做了很多事情的情况呢?

当读完第二段和第三段的时候,我们看到分工协作会产生效率,我们是不是可以联想到代码的分层结构,函数的单一职责?代码分层和函数的单一职责,会大大的加快开发效率。

我们把计算密集型和 IO 密集型的代码分开,部署到不同硬件配置的服务器上,中间利用消息通信。这样不就可以提高整个软件的运行效率了么?

当读完第四段、第五段和第六段的时候,我们看到通过一种通用的物品来“屏蔽”每个物品之间的复杂关系,

我们是不是可以联想到设计模式中的“门面模式(Facade Pattern)”或者“调停者模式(Mediator Pattern)”呢?

将原本混乱的调用关系交给一个单独的类来处理。

如果你已是技术老鸟,为了解决各个业务服务器之间混乱的 RPC 调用,而采用消息队(Message Queue)技术。而这消息队列技术不就有点像故事中的贝壳么?

各个业务服务器都遵从相同的总线标准。

最后

我想说的是:其实学科与学科之间并没有明确的藩篱。

在某个学科中遇到的难题,可能在其他学科也遇到过,而且人家早已有成熟的解决方案。

跨出去,会带来意想不到的收获!

关注微信公众号

myXlive

转载于:https://my.oschina.net/hjj2017/blog/1550854

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值