經過四月的休整, 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/[email protected]/sets/72157626832125508/
如果你需要原片或者不希望出現在照片中,請及時與我聯繫, [email protected] 雞毛,謝謝!