经过四月的休整, openparty 乘着端午节的喜庆,提前为大家准备了丰盛的大餐,地点依然是我们不见不散的老地方, ThoughtWorks 北京。
自从上次活动盛大创新院正式成为 openparty 赞助方之一后,我们每次的话题优胜者(得票最多)都会得到由他们提供的锦书一部。给我们带来 Swing Dance 的 zengjazz 斩获了该奖的处女奖,在此祝贺他。而其他贡献者,为了表示鼓励和感谢,参加活动也可能有其它意想不到的收获哦。
这次的活动,依旧是帅锅靓妹排成排,新人如春笋般冒出来,这让本来就患有姓名盲综合症的我情何以堪,下次一定要找个本本记下来(当然还有美女的电话,捏哈哈)。在此不再贴出他们的照片(不然怕是要抢了 flicker 的生意啦),可以稍后移驾活动相册。
本次活动话题依然包罗万象,有 wenfeixiang 女士带来的非技术话题“西藏十日游”、 James 带来的“沙发客”、 hongjun 的“ BDD 行为驱动”等等,也有 Scott Fleckenstein 的“ ZMQ ”和汪昊的“数据可视化”等高端话题。
Session1 我选择了 Scott Fleckenstein 的“ ZeroMQ ”,因为最近正在做一些 web 消息服务器的选型,而基于 ruby 的 ZMQ 让人眼前一亮。 ZMQ 是一个建立在 socket 协议之上的轻量级异步消息队列。
消息队列的模式非常适合并发协作, ZMQ 使用了自己的方式,突破传统一对一的通讯协议,以更灵活的方式实现了高性能通讯处理。
ZMQ 的 socket 类型分为四种:
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 则是 hongjun 的 BDD 行为驱动。对于行为驱动,我们可以理解为从客户角度出发,使用通用语言,并结合 TDD 测试驱动,让整个需求贯穿软件开发到交付的整个过程――是的,也可以称为业务可视化。
实现 BDD 最核心的方法是建立描述客户需求的通用语言,并将该语言与开发的代码绑定映射,比如使用“ I want ”“ then ”“ and ” … 通用语言指导整个软件设计开发过程,并作为最终交付 / 验证依据。
使用 BDD 的根本原因依然是在 Session2 中提到的可视化驱动原理,不单是数据,开发过程也是具有复杂的维,那么我们要跟踪和优化整个系统,也需要可视化,而 BDD 提供的流程可视化,可以让参与开发的每一个人都有能力看到和把控开发过程,以满足高质量的代码交付要求。
可视化驱动了世界,也驱动了我们的热情,被浸染在有这样光荣使命的计算机世界中的各位,是不是也需要 openparty 这个可视化的平台,来展示每个人心里的那份特别?
本次活动照片已上传至:
http://www.flickr.com/photos/41954905@N06/sets/72157626832125508/
如果你需要原片或者不希望出现在照片中,请及时与我联系, zhmocean@ 鸡毛,谢谢!