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