`
zhmocean
  • 浏览: 196258 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

经过四月的休整, 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

       require 'rubygems'
       require 'ffi-rzmq'

       ctx = ZMQ::Context.new
       sock = ctx.sockt ZMQ::REP
       sock.bind("tcp://127.0.0.1:10101")

       loop do
              name = sock.recv_string
              sock.send_string "Hello, #{name}"
       end



        Client

 

       require 'rubygems'
       require 'ffi-rzmq'

       ctx = ZMQ::Context.new
       sock = ctx.sockt ZMQ::REQ
       sock.connect("tcp://127.0.0.1:10101")

 
       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@ 鸡毛,谢谢!

  • 大小: 22 KB
  • 大小: 17.6 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics