天下武功為快不破,快意味著良好的用戶體驗,用戶想要的很快就能達成??煲馕吨。驗檠邪l(fā)最貴的在于人工工資。省意味著你能獲得更高的利潤,或提供更有競爭力的價格。
如何讓開發(fā)變得更快,換言之提高開發(fā)效率,是我在技術(shù)上追求的最終目標(biāo)。產(chǎn)生這個想法是在進入達達后,我第一次接觸并開發(fā)了大量的需求,常常會發(fā)現(xiàn)很多需求是有共性的,而天性偷懶的我特別不喜歡重復(fù)寫類似的東西,于是當(dāng)時就做了大量的工作來提高開發(fā)效率,包含自己寫了組件化框架,和頁面生成器。達達商城第一年,在只有3個研發(fā)的情況下,就達到了上億的銷售額。
最近在看一本書叫《技術(shù)的本質(zhì)》,也給我之前的一些思路提供了更多的理論延展,摘錄一些想法:
1. 技術(shù)是被現(xiàn)象驅(qū)動的,通過裝置設(shè)定標(biāo)準(zhǔn)流程讓某種現(xiàn)象反復(fù)發(fā)生。如導(dǎo)電鎢絲可以發(fā)光,于是有了電燈。如人們看到東西會購買,于是有了電商。
2. 技術(shù)是有很多級的模塊組合而成的。如一臺電腦,有屏幕,鼠標(biāo),鍵盤,主機。主機里有cpu,顯卡,電源。cpu里有芯片,接口,變壓器等等。每一個技術(shù)都是由底層的組件一層層組合而來。
3. 同一類的技術(shù)會形成一個域,即同類型組件的集合,一個工具箱。在形成一個新技術(shù)時,為了實現(xiàn)某種現(xiàn)象,你可以從相關(guān)域的工具箱中選擇一個組件,來搭建新的裝置
4. 組件通過配置或插口來找到自己的位置,通過input, output來相互溝通。有時,組件也需要適配器來相互協(xié)調(diào)。
這個對于開發(fā)效率來說,就是:
1. 組件化很重要,把寫過的每一個功能都組件化,定義input,output,配置和插口,并形成完善的文檔,這樣下一次就不用重新在寫
2. 組件可以分的很細致,這樣一個大組件如果有功能調(diào)整,只需要替換部分小組件即可
3. 形成一個域,根據(jù)業(yè)務(wù),可以劃分成很多領(lǐng)域,如運營模塊,賬戶模塊,圖標(biāo)模塊等等,每個域都要形成自己完善的工具包。
4. 善于觀察現(xiàn)象,并轉(zhuǎn)化為裝置。觀察現(xiàn)象除了你的經(jīng)驗,還有很多用戶數(shù)據(jù),埋點數(shù)據(jù)可以分析。當(dāng)你知道如何降一個現(xiàn)象穩(wěn)固下來,就是一個成功的技術(shù)。
貫徹在實際的應(yīng)用中,就是:
1. 形成自己的域工具箱,并仔細的文檔化,這樣對任何新業(yè)務(wù)都可以如搭積木一般把零件配起來
2. 形成自己的框架,或流水線。插件系統(tǒng)是一個框架,來配置和拼接各個組件,協(xié)調(diào)他們的交互,而更多的形式或規(guī)則可以制定,來規(guī)范化每個組件的插槽,I/O,自動化測試,自動生成代碼等。開發(fā)也如同流水線一樣,只有把一些東西標(biāo)準(zhǔn)化,你就可以更高效。
3. 面向業(yè)務(wù)開發(fā),時時觀察業(yè)務(wù)的發(fā)展和變化,監(jiān)控業(yè)務(wù)數(shù)據(jù),并把開發(fā)的外層接口能用業(yè)務(wù)的語言描述出來,拉近業(yè)務(wù)與代碼之間的語言翻譯精力。