金山系列軟件中的一部分代碼open source了,自然地引起網(wǎng)絡(luò)上以及IT業(yè)界的一片熱評(píng)。其中關(guān)于已經(jīng)開源的這部分外圍代碼的代碼質(zhì)量的問(wèn)題,更是熱中之熱;以下是關(guān)于這個(gè)問(wèn)題個(gè)人的一些思考:
從本質(zhì)上說(shuō)這里面就是個(gè)trade off,也就是平衡和取舍的問(wèn)題。產(chǎn)品項(xiàng)目的預(yù)算投入,進(jìn)度壓力,各方面人員的協(xié)調(diào),風(fēng)格和習(xí)慣的統(tǒng)一,等等。
許多優(yōu)秀開源項(xiàng)目,比如Boost,其中很多作者本身都是學(xué)者兼開發(fā)或者是帶有研究性質(zhì)的開發(fā)人員,在高校、非盈利組織或者商業(yè)企業(yè)的非直接盈利項(xiàng)目的資金支持下,在很少進(jìn)度壓力和商業(yè)壓力的情況下,精雕細(xì)琢,多次迭代后,構(gòu)建出的精品代碼。用這樣的標(biāo)準(zhǔn)來(lái)要求所有的軟件產(chǎn)品,特別是商業(yè)產(chǎn)品(當(dāng)然除去少數(shù)關(guān)系重大和長(zhǎng)遠(yuǎn)的基礎(chǔ)核心部分外)的構(gòu)建,是不科學(xué)的,也是不合算的,因?yàn)榧皶r(shí)占領(lǐng)市場(chǎng)和足夠的盈利,以及獲得用戶的贊許才是商業(yè)軟件最重要的目標(biāo)。
回頭來(lái)看金山目前開源的這些產(chǎn)品,比如這里討論的金山衛(wèi)士,其從推出就是免費(fèi)的,是為了市場(chǎng)上的先期推出的同類工具軟件及時(shí)比拼占領(lǐng)些許相關(guān)市場(chǎng)份額,其并不是金山的基礎(chǔ)和核心產(chǎn)品;從這些先天的條件看,這個(gè)產(chǎn)品的商業(yè)投入不會(huì)很大同時(shí)又有快速推出的要求,能有目前這樣的產(chǎn)品質(zhì)量,是合理的,從企業(yè)角度和用戶角度看也都是可以接受的。
說(shuō)到這里,就感覺有必要涉及一下“重構(gòu)”,這個(gè)現(xiàn)在大家都很重視同時(shí)也經(jīng)常談及的話題。為何大家都很重視?而且常常談及?這其中當(dāng)然有軟件構(gòu)建本身的特點(diǎn),比如對(duì)需求理解的不斷深入和調(diào)整、設(shè)計(jì)的不斷改善和演進(jìn)、代碼風(fēng)格的統(tǒng)一以及細(xì)節(jié)的完善等等;但是,有個(gè)大家在潛意識(shí)里都感覺到,平時(shí)卻很少談及的緣由--進(jìn)度和成本,因?yàn)橛辛诉@些壓力,產(chǎn)品的第一版往往不是很完美的,然后如果還做后續(xù)版本的話,那么就要引入重構(gòu);因?yàn)橛辛诉@些壓力,在經(jīng)過(guò)多年之后,如果這個(gè)產(chǎn)品還存在的話,那么就要進(jìn)行大規(guī)模的重構(gòu)。簡(jiǎn)單的說(shuō),重構(gòu)之所以重要,不僅僅是軟件構(gòu)建本身特點(diǎn)所引發(fā),也是商業(yè)壓力之下的構(gòu)建過(guò)程的有效應(yīng)對(duì)之道。