zoukankan      html  css  js  c++  java
  • 程序的形式,应该仅仅反映它所要解决的问题。

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

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

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

    应该怎么写呢?

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

    print "yes"

    else

    print "no"

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

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

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

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

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

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

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

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

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

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

    太对了。

  • 相关阅读:
    利用ArcToolBox ModelBuider进行数据处理
    【转】C#中通过API调用获取文件图标
    【转】利用C#实现标注式消息提示窗口
    【转】在C#2005中创建快捷方式
    爱一个人好难
    【转】C#获取文件与文件夹默认图标
    【转】远程教育理论中几个基本概念的探讨2
    【转】C#中Bitmap类实现对图像操作的一些方法
    【转】C#启动外部程序
    WshShortcut 对象说明
  • 原文地址:https://www.cnblogs.com/likeyiyy/p/3289335.html
Copyright © 2011-2022 走看看