经过四月的休整,
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
:
sock.send_string "Scott"
puts sock.recv_String #=> "Hello, Scott"
如此简单的代码就可以使用
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@
鸡毛,谢谢!