台灣最大程式設計社群網站
線上人數
847
 
會員總數:245016
討論主題:188960
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 「在真世界實作Pattern Libary:Yahoo! 的個案研究」導讀【一】
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
「在真世界實作Pattern Libary:Yahoo! 的個案研究」導讀【一】
價值 : 0 QP  點閱數:622 回應數:0

樓主

skipper
初學者
135 12
102 23
發送站內信

Implementing a Pattern Library in the Real World: A Yahoo! Case Study
「在真世界實作Pattern Libary:Yahoo! 的個案研究」導讀【一】
原文
/**
@date: 2007-01-14
@author: kaiping.hsu@gmail.com
@remark:我不是Yahoo的員工(也不是google),導讀中加入很多我個人的想法與經驗,會跟作者原意有所出入,甚至誤導。我們指的是我和我的夥伴們,不是指Yahoo。
*/
(in Real World有別於學術界(理論),在業界(實務)之義)

問題:Tower of Babel
跟大部分的企業一樣,隨著企業的成長,很容易將任務(產品、專案)做分割,然後由各組人馬各自將子任務解決。各開發團隊各自在孤島對於所賦于的任務的各個問題演化出各種解法,然而我們會發現在一些問題在各個子任務間重複出現,最後出品的時候變成一堆光碟,其中可能有50%以上是可以縮減的重複程式碼。如果大家還記得以前微軟Office97的五片光碟到現在Office 2003的一片光碟(我手上沒有Office 2007)就會知道,微軟花了很多力氣才把Word、Excel、Powernpoint和Access 的使用者介面做整合(同樣是下拉式選單,四大產品可都是不同的程式碼),才能將各組人馬的介面一統為Common UI Library (參考微軟的致勝秘笈)。
YAHOO 當然也不例外,碰到一樣的問題,不但決定要解決這個問題,並且將解決這個問題的秘笈分享給全世界,你可以把它視為Web版的Common UI Library,以Open Source與BSD的方式發行。不同於微軟Common UI Library的是:你必須要在微軟的環境下才能使用,我們也沒有源碼可供學習,所以也無從改進。

目標:建立標準以增進效率
遠古時代分布在各個陸塊的人類由於缺乏溝通與分享機制,人類在各地重複發明輪子。與DRY( Don’t Repeat Yourself, Ruby on Rails)原則相似,但更進一步的是,Yahoo除了讓他們員工不用重複發明輪子,也希望可以讓大家共享他們發明的輪子,並建立分享機制,讓發明可以容易共享與討論,更進一步地可以讓各個Design Pattern很快地進化。

解決之道
對於設計上「重複發明輪子」的問題Yahoo 的解法如下
1. 建立共識
2. 發展流程
3. 宣道
4. 選擇、設計與建立應用
5. 以Pattern Library 為標準的主體

建立共識
(1) 利用既有的設計
(2) 撰寫輕量的產品需求書(PRD)
對照我們自己的組織,每個程式師都有很多Good Design,不吝於分享給別人,卻沒時間寫說明文件讓別人便於利用,甚至自己隔了一段時間也會忘記了。在YAHOO的設計師也沒有人有時間發展文件。不過相對於我們17人的團隊,他們可以拿出來的東西就更多了。
與重構(Refactoring)一樣,Yahoo從現有的設計鐵中煉鋼,並且寫下輕量的產品需求書(PRD),用以確定需求。有點類似我們從前做的經驗分享,程式師y可以要求輪到的程式師x講解他想知道在x程式師的程式p中的f功能怎麼做的。後來我們碰到的情形是有些工程師以不會講或是太簡單了自己看等理由藏私,所以進行了幾個回合後來就不了了之了。原因很簡單,大家都想要別人的東西,但吝於分享自己的,也害怕把自己的程式暴露出來,讓別人找到漏洞,或寫得不好的地方。(回想這三年到某單位每次進行Code Review的時候,被Review的人會以種種理由逃避,很妙的是,他們的制度每週的人都排好了,所以請病假就可以閃過了,下週也不用補)。
所以建立共識是很重要的,Understanding & Agreeing

發展流程
我們在兩個地方試用過Phorum,在另一個地方用過兩個KM產品,有位同事還自己寫知識分享平台,最後都不了了之。沒有明定各個參與者的責任,註定就是要走向寂寥。

待續...

搜尋相關Tags的文章: [ yui ] , [ yahoo ui ] , [ pattern library ] ,
本篇文章發表於2007-01-15 09:09
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.