可视化驱动――Beijing openparty 竹露端阳后记

来源:互联网 发布:番茄 知乎 编辑:程序博客网 时间:2024/04/28 06:02

经过四月的休整,openparty乘着端午节的喜庆,提前为大家准备了丰盛的大餐,地点依然是我们不见不散的老地方,ThoughtWorks北京。

自从上次活动盛大创新院正式成为openparty赞助方之一后,我们每次的话题优胜者(得票最多)都会得到由他们提供的锦书一部。给我们带来Swing Dancezengjazz斩获了该奖的处女奖,在此祝贺他。而其他贡献者,为了表示鼓励和感谢,参加活动也可能有其它意想不到的收获哦。

       这次的活动,依旧是帅锅靓妹排成排,新人如春笋般冒出来,这让本来就患有姓名盲综合症的我情何以堪,下次一定要找个本本记下来(当然还有美女的电话,捏哈哈)。在此不再贴出他们的照片(不然怕是要抢了flicker的生意啦),可以稍后移驾活动相册。

       本次活动话题依然包罗万象,有wenfeixiang女士带来的非技术话题“西藏十日游”、James带来的“沙发客”、hongjun的“BDD行为驱动”等等,也有Scott Fleckenstein的“ZMQ”和汪昊的“数据可视化”等高端话题。

Session1我选择了Scott Fleckenstein的“ZeroMQ”,因为最近正在做一些web消息服务器的选型,而基于rubyZMQ让人眼前一亮。ZMQ是一个建立在socket协议之上的轻量级异步消息队列。

       消息队列的模式非常适合并发协作,ZMQ使用了自己的方式,突破传统一对一的通讯协议,以更灵活的方式实现了高性能通讯处理。

       ZMQsocket类型分为四种:

1.        REQ/REP       传统的C/S通讯模式

2.        PUB/SUB       消息队列模式

3.        PUSH/PULL   流模式

4.        XREQ/XREP  高级定制化负载均衡模式

天然的一对N支持、基于更快的MessagePack封装协议、支持Transient (短暂) Durable (持久)两种连接方式ZMQ在分布式、集群应用中大放异彩,而ruby的客户端实现代码更是简单的让人无法相信:

Server


       Client



如此简单的代码就可以使用ZMQ搭建REQ/REP模式的HelloWorld工程。

之后的Session2,是汪昊带来的“数据可视化”,话题中他讲了很多基于科学分析、数学计算的工具和用途,也为大家演示了直观的效果。其实,数据可视化的真正威力就是在直观――将要表达的数据压缩到人类思维可接受的数据量――这一根本的目标。

对于数据可视化,汪昊提到了2点最基本的过程:采样、展示。

采样依据应建立在系统所要关注的主要维度,使模型中的主要数据远高于其他次要维度――增加信噪比。

展示则是需要使用更合理的图形、颜色、符号,让只存在于二维上的像素点(就是你的屏幕啦),更清晰的展示给人类大脑。

从系统性思维中我们知道,对于一个复杂系统,所包含的维度已远远超出了人脑思维的运算能力,所以,需要一定的模型来去繁从简描述系统的主要维度――所有数据可视化是建立在近似基础上的――这一目标的推动力,激励了人们对数据可视化的研究――计算机本职工作便在于此,它驱动了计算机世界。

Session3则是hongjunBDD行为驱动。对于行为驱动,我们可以理解为从客户角度出发,使用通用语言,并结合TDD测试驱动,让整个需求贯穿软件开发到交付的整个过程――是的,也可以称为业务可视化。

实现BDD最核心的方法是建立描述客户需求的通用语言,并将该语言与开发的代码绑定映射,比如使用“I want”“then”“and通用语言指导整个软件设计开发过程,并作为最终交付/验证依据。

使用BDD的根本原因依然是在Session2中提到的可视化驱动原理,不单是数据,开发过程也是具有复杂的维,那么我们要跟踪和优化整个系统,也需要可视化,而BDD提供的流程可视化,可以让参与开发的每一个人都有能力看到和把控开发过程,以满足高质量的代码交付要求。

可视化驱动了世界,也驱动了我们的热情,被浸染在有这样光荣使命的计算机世界中的各位,是不是也需要openparty这个可视化的平台,来展示每个人心里的那份特别?

本次活动照片已上传至:

http://www.flickr.com/photos/41954905@N06/sets/72157626832125508/

如果你需要原片或者不希望出现在照片中,请及时与我联系,zhmocean@鸡毛,谢谢!