代碼的價(jià)值和演變過(guò)程和一個(gè)公司的發(fā)展密不可分,價(jià)值體現(xiàn)也有不同,
。大致分為三個(gè)階段。
第一個(gè)階段:滿足需求
這個(gè)階段的代碼比較接近用戶,用戶有什么需求,就什么樣的功能,用戶驅(qū)動(dòng)非常明顯,主要的工作都是功能性的,實(shí)現(xiàn)形的。
這一階段的主要價(jià)值是:使用需求,即代碼轉(zhuǎn)化為的solution,具有可使用性,用戶基本可以用起來(lái),增加的需求可以不斷的被支持,這一階段比較接近用戶需求。
第二個(gè)階段:改進(jìn)需求
這個(gè)階段的代碼相對(duì)原理用戶,接近機(jī)器,接近開(kāi)發(fā)方法,原理等,一個(gè)最主要的特色是代碼的面向的人群增加了工程師,工程師也是代碼的用戶,這個(gè)階段一個(gè)重要特征是代碼的量化指標(biāo)建立起來(lái)。例如搜索引擎的準(zhǔn)確率,召回率等指標(biāo),這些東西不開(kāi)放給最終用戶,但是工程師都可以看到,這給持續(xù)改進(jìn)奠定了基礎(chǔ)。
這一階段的主要價(jià)值是:支持改進(jìn),即代碼具有支持改進(jìn)的能力,這種價(jià)值使得代碼可以活得更久,通常這是公司已經(jīng)發(fā)展的很不錯(cuò),大量的工程師和代碼相互結(jié)合,
《
代碼的價(jià)值》(
http://www.szmdbiao.com)。這一階段比較接近算法和優(yōu)化。
第三個(gè)階段:移植需求
產(chǎn)品線需要豐富,底層的技術(shù)往往可以大量復(fù)用,但需要代碼支持移植的能力,甚至共同改進(jìn)的能力,例如網(wǎng)頁(yè)搜索在發(fā)展到一定階段,可以直接分支出來(lái)做新聞搜索,博客搜索等等。
這一階段的主要價(jià)值是:支持移植和復(fù)用,這往往需要代碼具有比較強(qiáng)的通用性,這對(duì)設(shè)計(jì)提出了很高的要求,對(duì)一致的東西需要做很好的抽象,對(duì)不一致的地方需要開(kāi)放修改,這一階段比較接近架構(gòu)設(shè)計(jì)。
當(dāng)然第二個(gè)階段和第三個(gè)階段有時(shí)候交織在一起,一個(gè)代碼要就有很好的價(jià)值,一定是在實(shí)踐中證明有效的,且能夠被量化被持續(xù)改進(jìn),最終具有移植和復(fù)用,乃至集成到其他產(chǎn)品的能力,如果一個(gè)工程師能把代碼寫(xiě)的兼具這三項(xiàng)價(jià)值,那是非常了不起的。