任職於 Faria。喜好戶外運動、2008 年 5 月完成「跑步環島」。對於新技術跟程式碼有著強烈的偏執狂。
昨天跟老闆聊了一下,他蠻贊同未來我們所開發的東西可以 Open Source,讓外界檢視與改進。
我們也已確定未來的 JavaScript Framework 會使用 YUI 3,所以今天就試著來申請成為 YUI Contributor 吧!
說也奇怪,搜尋結果我居然點選了一篇部落格的文章:I'm a YUI Contributor、而非官網。作者分享了一開始看到 Dav Glass 小改 Editor 成為 Syntax Highlighter Editor 而拿回來用。後來因使用上有些問題,他就成為 YUI Contributor 並修改掉 YUI Editor 一個小 Bug。最令他開心的是,一個禮拜內就被通知他的 Bug Fix 被接受,整個過程很順暢,像 Dav、Eric 與整個 IRC Node 都很熱心解決他的問題。這個小故事加深了我想成為 YUI Contributor 的意願。
申請表格為:YUI CLA — Individuals and Corporations,不過蠻怪的是:下載回來的檔案是使用 GZip 壓縮,害我再找 7-Zip 來解壓縮。接著解壓縮後發現是沒有附檔名的非純文字檔案,試著改為 .doc 還真的可以打開... Orz(這是在做是否可以成為 Contributor 的測驗嘛 ?) 總之,把第三頁的表單填寫後,就直接傳真 002-1-408349-1995 給 YUI Team。希望申請可以很快下來 = =+
因為 YUI Team 已經用 Git 做 SCM (Source Code Management) 以及用 GitHub 做 Open Source,所以我當然要來了解一下 Git 的概念,搜尋找到了 jserv 大大的「我愛 Git」投影片,就來拜讀一下。喔!原來 Git 跟我過去所用的 CVS、Perforce、SVN 在架構上非常不一樣!之前我用的都是一台 Server 做 Repository,且所有的動作 (Update/Commit/Add...) 都得跟它做連線;而 Git 的 Client 本身就是 Repositiory,每次的 Commit 都是在 Local 做。問題是... 這樣的架構,該如何做到多人同時開發呢?原來 Git 的每個 Repository 都可透過 Publish / Pull Request 的動作讓其他人做 Merge。簡單來說,CVS / SVN 是以 Trunk 為主、Branch 為輔,而 Git 的主要架構就是以 Branch / Merge 為核心。
Git 是 Linux 的創始者 Linus 所建立的 SCM(大加分!),因為 Linux Kernal 是以每小時 85.6 行、7 次版本更新的速度成長,一般的 SCM 沒辦法負荷、為了維護日益複雜的版本控制、Linus 才決定自己建立一個完全分散式且自由的版本控制系統 :確保速度快、所佔空間小、高度可靠、與其他 SCM 高度整合性。
其中 jserv 大大簡報中的這句話我很喜歡:Git 不僅分散,而且 SCM 應該是「檔案工具」,而不是限制開發者的「制度」。
原本以為只有 YUI Team 接受 YUI Contributor 的修改與否 (Pull Request) 的問題,但是仔細看了 YUI Gallery 的說明才了解:YUI Core(即 http://developer.yahoo.com/yui/ 裡的所有東西)是會被一小群人密集審核過且經過嚴格測試的,所以 Unit Test、Documentation、Compatbility、Performance 都要夠好且要有專人維護才行,但是 YUI Gallery 就沒有這樣的限制(在 github 上是另一個叫 yui3-gallery 的 repository),YUI Team 一年會針對 YUI Gallery 做 30 次左右的 Push(你必須先申請 CDN Request),你的 Code 將會被放到速度最快的 Yahoo! CDN (Content Delivery Network) 上供所有開發者存取。這一點就對我非常有吸引力!
大概了解了整個 YUI Contributor 做事方法,待我這幾天實際玩過之後再寫篇文章做記錄囉!