我是这么利用数据:天下武功,无坚不摧,唯快不破

算不上一个真正的武侠迷,上学的时候在课堂上背着老师看过几本《武侠故事》,由于后来电脑游戏吸引 力更大,所以。。。

不过同座位老是提起这么一句很“武侠”的话:天下武功,无坚不摧,唯快不破,至今深有感 触。

以前以为,快就是咏春拳那种,打的快,使对方乱了手脚无法及时还击,直到了解了爱因斯坦说过的:当 速度快过光速,时间将会停止,甚至倒流。

这些扯淡的说法总在学生年代给我带来幻想,以为自己掌握了无敌的技能,可以仗剑走天涯。参加工作后 ,我便无一例外的把他们运用到了我的软件里,今天和大家分享我在认识软件上的一点小小经验。

回到武功这个话题,怎么理解“唯快不破”呢,我们一起来想象一下:双方面对面站立,准备 搏斗,甲方出拳,常规情况下乙方可以选择的自然是防御或者躲闪,但是如果乙方足够快,就可以在甲方出拳 的那一刹那,绕到他身后给他后脑一拳,于是,甲方倒地,乙方获胜。

这便是时间停止的概念!电影镜头里的慢动作看过吧,仿佛就是甲在慢动作,乙却很流畅出招,胜负自然 不言而喻(这里需要想象力哦!)不过,没有人可以做到这 么快!可喜的是:CPU可以!它每秒上亿的逻辑运 算能力,导致了我们人类在电脑面前就是慢动作,理解了这点,我发现一个软件在和人交互的过程中可以无数 次 叫停时间,完成无限多的准备工作,然后再让时间继续。

叫停了时间干什么呢?给点例子吧

1、比如注册时验证用户信息。用户在输入用户名时,我们便可以对这个用户名进行实时存在性验证,无需 打扰他的其他动作,验证的结果就可以在几乎察觉不到的 时间内反馈出来。理论上我们可以在用户提交的时 候再生硬的弹出一个“用户名已经存在!”这样的窗口来阻止用户,但是这显然不如这种同步进行 ,仿佛以超越时 间概念的方式进行来的顺畅。

2、比如Excel软件里,你输入一些数据,关于这些数据的汇总信息(求和、平均、最大值之类)会同步的 显示出来,它没有打断你的操作,而是在你的操作同一时间就产生了结果。理论上它是需要花一些时间的,但 是这个时间太短了,你察觉不出来,它就给出了结果。

3、还有很多

有人会说其实这就是个异步操作,或者说计算机本来就那么快而已,这没什么了不得。

其实故事没那么简单,关键的问题是:从一开始,你怎么思考问题?让我们回到问题的最初,你需要从软 件来自哪里、为何产生等等问题上重新思考!多年扯淡的经验告诉我:有许多问题都要回到最初再好好想一想 ,那些在你脑子里,习以为常的概念,反而是最有价值突破,而又最难突破的!

好好想一想,你认为软件是什么?很多人理解的软件就是人的逻辑的固化,按照预定义的方式快速的无人 干预的进行。这种思考方式致命的弱点就是:强硬的把人的弱点加到了软件身上!认为人存在的限制也是软件 的限制,这就好比软件是一只雄鹰,你却绑了它的翅膀,让它练习走正步!

到底软件是什么?软件的快,在一定程度上量变引起了质变!我认为理想中的软件至少是超越了时间的一 个概念,就像前面提到的,它可以在任何一点上叫停时间,完成它想要完成的一切,然后再让时间继续。

软件如果没有了时间,拿什么来衡量它的进度呢?答案就是——数据。积累了多少数据,软件 就经历了多少,它可以思考的范围就扩大到了多少,不要捆住你的软件,不要用人的逻辑限定它,让它在数据 的天空里翱翔!这对我们写出优秀的软件意义非凡,想象一下:

1、每一步都是软件的十字路口:业务逻辑中的每一步都有new information,也就是新的元素加入进来,而 这个元素是否和已经存在的数据发生了某些逻辑上的关系,是否意味着我们可以采取某些必要的措施,或者 已经导致了某些一定会发生的结果,如果是,何不立即就让他们发生。

2、每一个细微的瞬间都是软件的十字路口:时间的每一秒流逝、每一位用户加入、每一次操作的成功或失 败都意味着新的逻辑产生,软件可以捕获它们,分析它们,在已经存在的数据里是否有着一些本该要发生的事 ,却没有发生,如果是,何不让他们立即就发生。

3、每一个维度都是软件的十字路口:人可能没那么周全的组织能力,但软件可以在一瞬间搜罗所有的数据 ,而不必错过每一个可能重要的环节,利用这些种类丰富的数据,甚至它们本身就已经是逻辑的一部分,而不 必人为指定。

来吧,软件不是平坦的路,它是绚丽的烟花,这颗刚刚升空,下一颗早已就绪,上一颗却在绽放!

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/project/

时间: 2024-10-21 19:45:11

我是这么利用数据:天下武功,无坚不摧,唯快不破的相关文章

让你的网站打开的更快 - 天下武功,唯快不破

不知道从什么时候开始,不管是写独立博客,还是网络应用,甚至写托管博客的人都会朝着"大"网站看齐,去追求网站的响应速度,通俗点说,就是白屏时间,因为据各种报告说,网站打开速度更快一些,带来的用户体验就更好一些,从而带来更多的附加利益.但是对于用户来说,快,并不是简简单单请求数目尽可能少,和服务器吞吐能力尽可能大.那么,怎么快? 谈到速度(参考物和例子稍后一起提),我们首先能想到的事物有: 服务器机器性能 服务器机房带宽资源 服务器软件性能 DNS查询速度 页面资源压缩(服务端+客户端)

唯快不破!看阿里云效平台如何为互联网企业提升研发效能

天下武功,唯快不破!在瞬息万变的DT时代,互联网企业如何提升研发效能,实现快速持续的交付?答案就是阿里云效平台. 云栖大会上,云效平台被强力围观 何谓云效平台? DT时代,企业业务全面互联网化,相应的应用产品也越来越多,而传统研发模式.产品发布流程已成为企业快速升级的绊脚石,提升技术研发能力以及产品迭代能力已刻不容缓. 为解决业务发展快.系统复杂.开发协同难.开发测试比高等问题.2012年3月,阿里巴巴B2B质量保证部孵化出云效平台.它是业内领先的面向企业的一站式研发效能平台,以提升研发效能为目

唯快不破 互联网开发中的制胜法宝

在当下的互联网年代,已不是大鱼吃小鱼的时代,而是快鱼吃慢鱼的时代.正如江湖上的名言"天下武功,唯快不破",在互联网产品的制胜原则也就是一个快字.在各种形态的产品研发中,我们始终贯彻如一的价值观之一就是"快",我们应该如何来理解和诠释"快"?又会从哪些方面来执行贯彻这个原则呢? 快速迭代,快做快发 互联网产品不同于传统软件开发,我们面对的是上亿用户这样一个庞大的使用群体,他们是谁,有什么喜好,有何种习惯,会怎样使用我们的产品,是否喜欢我们的产品--

唯快不破 华为闪存让数据库快9倍

所谓"天下武功,唯快不破."在武侠的世界里,天下没有坚不可摧的武功,但当掌握了速度的优势,让速度达到极致的时候,往往能抵挡复杂的招式,立于武林不败之地.   在数字经济时代,如何在分秒必争的商业环境中把握先机?通过对数据的快速处理分析,无疑能帮助企业迅速发掘商机,因此提高数据处理速度则显得更为迫切.   当前的大数据分析模式可以分为"离线处理"和"实时处理"两种类型,"离线分析"可以对业务数据和想要分析的数据样本进行恰当的分离

我是这么利用数据:1-1+1-1+…=0.5?

说起这个算式,其实是个经典的问题,最近看到一个视频说得出结论:答案是0.5,我觉得挺有意思,上学 时我们都是这么算的: 1.把算式看做 (1-1)+(1-1)+(1-1)- 由于每个部分都是0,结果是0 2.如果是1-(1-1)-(1-1)-.. 由于除第一项之外,其他都是0,结果是1 可以看到,随着视角不同,结果也随之不同,也就是不同人去看这个问题,得到的答案是不一致的,这样 的问题通常颇为有趣,这可以挖出很多好玩的,不过今天我们专注于这个问题本身!今天和大家分享一点关于 这个算式的故事和心得

我是这么利用数据:这是哪家快递?

网络购物现在是越来越流行,而网络购物最重要的基础也许就是物流,就是快递公司了!大家可能或多或 少都收到过快递,作为快递物品,每单都有一个单号,通常我们登陆相应的网站,根据这个单号就可以查询到 运输过程中的中转细节. 不过,选择哪家快递公司进行托运一般是由网络商家指定的,需要知道快递公司信息,然后才能根据单号 查询物流信息.后来,专门做快递查询的网站发现:各个快递公司的单号都有各自的规则,一般具有自己特色 的开头或是固定的模式!这就导致:尽管独立编号,但不同公司不会重号!反过来说,根据快递单号,有

天下武功唯快不破 云时代IT基建谋出路

本文讲的是天下武功唯快不破 云时代IT基建谋出路,云计算大行其道.大数据愈演愈烈的今天,人们对于技术的要求已经从单纯的 "满足需求"提高到"全面优化"的高度.而信息技术也从帮助处理业务上升到提高业务效率减少人工参与的层次.技术的演进并不是漫无目的,而是人们日益高涨的社会生产需求在背后推波助澜,尤其是云计算的铺天盖地和不断深化应用使得技术不断被刷新. 倘若有人问当今的网络哪个方面仍然有待发展?那么答案一定是网络通信和大容量存储技术.尤其是云计算的兴起,弹性资源配置的需

我是这么利用数据:业务闹钟

每天起床都依赖闹钟的我,对闹钟其实又爱又恨. 有一天,我突发奇想,我们的业务不就是类似于时间,一刻不停的往前推进,那些我们要做的事,不就像 闹钟,在关键的时间点(可指定),给予我们提醒,叫停我们去做某些事情(复习下英语语法 :stop to do something) 抱着试一试的态度,我自己写代码开发了一个类似闹钟的页面(当初的页面面目全非了,画示意图咯) 填个时间,写段话,然后到了那个时间,服务器就把这段话发送给你 后来我考虑,怎么发送呢,可选择的有以下几种 1.email 这个比较传统,而

我是这么利用数据:快到碗里来

数据分析的一项基本的前提是:你得有数据可以分析 所以有某些所谓的数据挖掘专家趾高气昂的说:数据挖掘的绝大数工作是在清洗数据! 都是些不食人间烟火的吃货,哪里来的现成的数据让他们清洗,实际的工作中我总是一次次的发现:获得 数据是最难的部分 其实获取数据的方式无非两种 1.从别的什么系统中获取现成的历史数据 2.从自己的系统中让用户录入数据 今天我想分享下我在第2点上的一点小小经验 首先,用户是最TMD烦某某系统的,需要他们付诸大量的配合,最后功劳还是做系统的人的,自己捞不着好 处不说,还为了习惯新