数据挖掘与Taco Bell编程
程序员Ted Dziuba提出了一种他命名为“Taco Bell编程”的方案用于替代传统编程。Taco Bell链使用大概八种不同的元素来创建多种菜单项。Diziuba希望通过组合使用大概八种不同的shell脚本命令来创建多种应用程序。
这里有一个Dziuba提供的例子:
这是一个具体的例子:假设你需要下载几百万个网页并存储到硬盘中以便于后期处理。你应该怎么作?最直接的办法就是用Clojure写一个分布式网络爬虫并在EC2上运行,用类似SQS或ZeroMQ的消息队列来分别处理。
那么Taco Bell的做法呢?使用xargs和wget。在特殊情况下,比如你占满了网络连接资源的话,你可以添加一些拆分和同步。一个“分布式的网络爬虫”真的仅仅需要大概10行的shell脚本代码。
Dziuba提供了另外一个例子。与使用Hadoop来处理你所获得的信息不同,你可以使用:
find crawl_dir/ -type f -print0 | xargs -n1 -0 -P32 ./process
“这是处理大量数据问题的一种可行方法,至少对于一次性的工作而言是很好的,” 著名数据专家和读写网的攥稿人Pete Warden对于Dziuba的Taco Bell编程概念如此说,“你可以权衡开发速度与你对代码的管理力、控制力。”
你有类似的编程偏好么?