程序的形式,应该仅仅反映它所要解决的问题。

本文探讨了程序设计的本质——让代码纯粹反映所解决问题的核心。通过对比简单的字符搜索与复杂的大数据处理场景,作者强调了MapReduce等高级架构如何帮助程序员聚焦于业务逻辑本身,而非陷入底层实现细节。

阮一峰翻译的《lisp为什么这么先进》最后一段话非常有感触。

程序的形式,应该仅仅反映它所要解决的问题。代码中其他任何外加的形式,都是一个信号,(至少对我来说)表明我对问题的抽象还不够深。

我是这样来理解的,假如我想在一堆数据里检索某一个字符是否存在。

应该怎么写呢?

if(search(string,text)==ture)

print "yes"

else

print "no"

可是马上问题升级了,这个对象在内存中吗?

假如在磁盘的文件系统中,我是否应该先fopen一下。

可是这一堆数据我分开存放了,不是存放在一个文件中。

再假如,我是在一个数据中心,这一堆数据,其实是放在不同的机器上。

这些机器使用不同的处理器,不同的操作系统。fuucck。

我该怎么办?用网络通信吗(感谢网络其实已经屏蔽了相当多的东西。)?把数据复制过来,然后检索,还是远程过程调用,指示这台机器进行检索,然后将结果返回。

假如你最后解决问题了,你会发现代码会越来越庞大,而这些庞大的代码其实在做无关的事情,这些代码没有直接反映我想要解决的问题,仅仅是搭建了我想要解决问题所不得不搭建的平台。

但是mapreduce解决了这一切,有了mapreduce架构,你仍然可以写只和问题相关的代码。

数据放在一个分布式文件系统中,job将启动不同的task来做这件事情,它控制任务的自动负载均衡。

程序的形式,应该仅仅反映它所要解决的问题。代码中其他任何外加的形式,都是一个信号,(至少对我来说)表明我对问题的抽象还不够深。

太对了。

转载于:https://www.cnblogs.com/likeyiyy/p/3289335.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值