12306 開源項目組的近況、愿景和阻力
2012 年 9 月 28 日凌晨 1:38,12306NG.org 注冊成功,其創始人李大學表示:“這將是項目組自己的網站,完全公益!我們將通過此網站發布項目所有成果,包括源代碼、技術方案、各類文檔等。此網站也是我們項目組討論、協作、分享的地方。”
當天下午 12306NG 開源項目組正式開始籌備。
四個多月過去了,該買票的也都買了,像我這樣沒買到票的也該絕望了,但開源項目組的成員們還在繼續努力。近日我采訪了 12306NG 項目組的幾位核心成員,看看這一群“站起來”的程序員們都干得如何。
“12306 NG 是一個平臺,在這個平臺下我們希望能夠把自己做的東西付諸實用,以后當我們應對這類高并發問題,或者處理一些大數據的時候,能夠有一種合用的解決方案。”
12306NG 項目整體負責人 Ender 告訴我,目前已經成立十個子項目組,每個項目組有專門的人員負責項目進度。每個項目組設有管理者 2-3 人,開發人員大概有 4-5 人左右,每個小組的實際情況并不相同。目前總共約有 100 多人,成員每周會定期進行討論并匯報進展。
架構
“訂票系統其實相當于一個具體的業務。”據 Ender 介紹,整個大項目分成了十個模塊,每個模塊有針對性地解決訂票流程中存在某一個具體的問題,并嘗試對它們進行優化。“我們針對每一個問題做了一些技術上的調研,然后將整個大問題分解成了一些子模塊。”
目前項目組包含了 HgLSG 業務網關項目組、NgPM 票池項目組、NgSG 服務網關項目組、Ng4IOS 項目組、Ng4Android 項目組、NgSql 項目組、NgWeb 前端開發組、NgTF 惡意流量控制系統、NgTG 交易網關項目組和 NgSSO 用戶認證系統這十個項目組。
“在項目的前期,我們主要分析目前存在的問題,然后通過尋找一些實用的技術分別提出解決方案,包括開源的技術。”目前整個前期準備階段已經完成,項目組內部已經定下了一個技術框架和項目間銜接的過程,每個子項目正在完善當中。
“我們將每個子模塊盡可能地獨立開來,力求讓每一個子模塊能獨立運作,解決其對應的問題。”Ender 表示整個項目的成果可能有兩種呈現形式:可以獨立使用的子模塊成品,以及將各個子模塊銜接起來的龐大系統。
進度和阻力
關于進度問題,12306NG 移動端項目負責人李先生表示:“要完成整個項目還需要很長的時間,目前還沒有定下具體的時間表。”
當我問及項目面臨的阻力時,李先生表示:“最大的阻力在于堅持。在國內程序開發這個領域里,有許多人看見別人都在做某件事情,于是就想參加進來。但許多項目不是一天兩天就能完成的,于是就有很多人中途退出了。”
據了解,李先生本身也是一名互聯網創業者,自組團隊開發一款叫做“飛速”的手機上網加速、節省流量的工具。他也是完全憑興趣參與了這個項目,擠出少有的業余時間管理自己負責的子模塊。
除了人員問題之外,項目組也承擔了一些法律上的風險。“雖然我們開發的東西和目前存在的許多搶票插件不一樣,但沒有人能夠保證項目完成后會不會 承擔更大的風險。”李先生表示 12306NG 的任務是對整個訂票系統進行優化,解決系統中存在的問題,而不是粗暴地利用漏洞,開發插件。
組內的多數成員都是利用業余時間參加項目,每個人的時間都不確定,需要耗費許多精力進行協調。而李先生也坦言,成員沒有任何報酬。
Ender 表示:“這是一件有意義的事情,于是大部分人都在堅持。”
一切為了開源
12306NG 項目組創始人李大學在項目組內部說出了他的愿景:“我們做這個產品,不僅僅是為了解決訂票這一個問題,而是而是希望通過這個項目讓更多的人懂得什么是‘開源’,在中國宣揚開源的精神。”
Ender 相信,他們建立的平臺能夠“讓每個人能夠接觸其他的專業人士,也能過學習一些相關的技術,讓開源的概念能夠在中國延續下去。”他坦言,在中國要想真正提倡這種概念,是一件異常艱難的任務,但若先完成一個實用且有影響力的項目,也是很有價值的。
“中國的開源精神有些欠缺。”Ender 認為,組織開源精神在國內深入推廣的原因有很多,它和目前中國的工作體制于工作方式有很大的關聯。“在公司里生存就是為了工作,而不是把工作當做真正的愛好,大家自然就不愿意去參與其他的事情。”
“技術是不斷迭代更新的,新技術替代舊技術,如此往復循環,但這需要有人來努力。”
愿景
談到未來的規劃,Ender 的回答非常實際:“我們內部的每一次溝通都是圍繞著一個目的——可行性。如果我們覺得這種方式對開源理念在中國的推廣有好處的話,我們會在后期進行推廣。 但在這之前,我們必須要確定這么做是真正有效的,我們才會考慮去實施。因為到目前效果還不算太滿意,所以不希望太高調。”
他認為過早地去規劃未來是一種不負責任的行為,“你只有把東西展現給大家,大家覺得好,你的付出才有意義。”
恐怕我們真正需要的,不僅僅是“站起來”,而是“做下去”。