一般的來(lái)說(shuō),一些大公司如IBM開(kāi)發(fā)了一個(gè)大型的軟件系統(tǒng)平臺(tái),根據(jù)不同的客戶的需要,一些其它的中小公司為客戶根據(jù)需求在該平臺(tái)上進(jìn)行第二次有針對(duì)性的開(kāi)發(fā)。是否提供相應(yīng)的接口,有的軟件公司只提供軟件,但也有小公司連代碼一起出售,如是后者,就更方便進(jìn)行二次開(kāi)發(fā)。
比如售票系統(tǒng),車(chē)站里面弄好了,提供幾個(gè)儲(chǔ)存過(guò)程給銀行,銀行就可以代理售票了,這也是一種,還有一種如我們利用delphi,C#等操作word等。
第一,你要有這個(gè)開(kāi)源產(chǎn)品的所用語(yǔ)言的語(yǔ)言基礎(chǔ)。
第二,你要對(duì)這個(gè)開(kāi)源產(chǎn)品的功能和使用要有比較熟悉,因?yàn)槟闶煜ち耍悴胖酪粋€(gè)需求下來(lái),你要改什么,什么是系統(tǒng)自帶的,大概要怎么改。
第三,你要熟悉這個(gè)開(kāi)源產(chǎn)品的數(shù)據(jù)結(jié)構(gòu),代碼結(jié)構(gòu),系統(tǒng)的框架結(jié)構(gòu),核心是哪里,附屬功能是在哪里。簡(jiǎn)單點(diǎn)說(shuō),就是數(shù)據(jù)庫(kù),代碼邏輯,文件目錄的熟悉。如果是用接口式的二次開(kāi)發(fā),則需要你對(duì)這個(gè)接口比較熟悉,一般來(lái)說(shuō)會(huì)有相應(yīng)的文檔。
第四,根據(jù)你的需求,然后利用開(kāi)源產(chǎn)品的內(nèi)核,進(jìn)行系統(tǒng)的擴(kuò)展和修改,以達(dá)到你的需求。
第五,對(duì)其提供的SDK中的API函數(shù)有一定了解,以利于你對(duì)SDK中個(gè)函數(shù)的使用更加靈活方便。