天下武功為快不破焙格,快意味著良好的用戶體驗,用戶想要的很快就能達成夷都【彀Γ快意味著省,因為研發(fā)最貴的在于人工工資囤官。省意味著你能獲得更高的利潤冬阳,或提供更有競爭力的價格。
如何讓開發(fā)變得更快党饮,換言之提高開發(fā)效率肝陪,是我在技術上追求的最終目標。產(chǎn)生這個想法是在進入達達后刑顺,我第一次接觸并開發(fā)了大量的需求氯窍,常常會發(fā)現(xiàn)很多需求是有共性的饲常,而天性偷懶的我特別不喜歡重復寫類似的東西,于是當時就做了大量的工作來提高開發(fā)效率狼讨,包含自己寫了組件化框架贝淤,和頁面生成器。達達商城第一年政供,在只有3個研發(fā)的情況下播聪,就達到了上億的銷售額。
最近在看一本書叫《技術的本質》鲫骗,也給我之前的一些思路提供了更多的理論延展犬耻,摘錄一些想法:
1. 技術是被現(xiàn)象驅動的,通過裝置設定標準流程讓某種現(xiàn)象反復發(fā)生执泰。如導電鎢絲可以發(fā)光,于是有了電燈渡蜻。如人們看到東西會購買术吝,于是有了電商。
2. 技術是有很多級的模塊組合而成的茸苇。如一臺電腦排苍,有屏幕,鼠標学密,鍵盤淘衙,主機。主機里有cpu腻暮,顯卡彤守,電源。cpu里有芯片哭靖,接口具垫,變壓器等等。每一個技術都是由底層的組件一層層組合而來试幽。
3. 同一類的技術會形成一個域筝蚕,即同類型組件的集合,一個工具箱铺坞。在形成一個新技術時起宽,為了實現(xiàn)某種現(xiàn)象,你可以從相關域的工具箱中選擇一個組件济榨,來搭建新的裝置
4. 組件通過配置或插口來找到自己的位置坯沪,通過input, output來相互溝通腿短。有時屏箍,組件也需要適配器來相互協(xié)調绘梦。
這個對于開發(fā)效率來說,就是:
1. 組件化很重要赴魁,把寫過的每一個功能都組件化卸奉,定義input,output颖御,配置和插口榄棵,并形成完善的文檔,這樣下一次就不用重新在寫
2. 組件可以分的很細致潘拱,這樣一個大組件如果有功能調整疹鳄,只需要替換部分小組件即可
3. 形成一個域,根據(jù)業(yè)務芦岂,可以劃分成很多領域瘪弓,如運營模塊,賬戶模塊禽最,圖標模塊等等腺怯,每個域都要形成自己完善的工具包。
4. 善于觀察現(xiàn)象川无,并轉化為裝置呛占。觀察現(xiàn)象除了你的經(jīng)驗,還有很多用戶數(shù)據(jù)懦趋,埋點數(shù)據(jù)可以分析晾虑。當你知道如何降一個現(xiàn)象穩(wěn)固下來,就是一個成功的技術仅叫。
貫徹在實際的應用中帜篇,就是:
1. 形成自己的域工具箱,并仔細的文檔化惑芭,這樣對任何新業(yè)務都可以如搭積木一般把零件配起來
2. 形成自己的框架坠狡,或流水線。插件系統(tǒng)是一個框架遂跟,來配置和拼接各個組件逃沿,協(xié)調他們的交互,而更多的形式或規(guī)則可以制定幻锁,來規(guī)范化每個組件的插槽凯亮,I/O,自動化測試哄尔,自動生成代碼等假消。開發(fā)也如同流水線一樣,只有把一些東西標準化岭接,你就可以更高效富拗。
3. 面向業(yè)務開發(fā)臼予,時時觀察業(yè)務的發(fā)展和變化,監(jiān)控業(yè)務數(shù)據(jù)啃沪,并把開發(fā)的外層接口能用業(yè)務的語言描述出來粘拾,拉近業(yè)務與代碼之間的語言翻譯精力。