最近有好幾個(gè)人都問(wèn)了我這個(gè)問(wèn)題,問(wèn)的挺好的,在軟件業(yè)界新技術(shù)層出不窮,做技術(shù)的人每天都要不斷的學(xué)習(xí)新技術(shù),在學(xué)習(xí)每樣技術(shù)之前,自然是要知道為什么要學(xué)習(xí)它,說(shuō)白點(diǎn),就是得給自己一個(gè)理由,對(duì)于一個(gè)對(duì)OSGi完全陌生的人而言,學(xué)習(xí)OSGi能帶給什么呢,給大家?guī)讉€(gè)可選的理由:
1、想提升系統(tǒng)設(shè)計(jì)能力
????? OSGi提供了系統(tǒng)級(jí)別的軟件設(shè)計(jì)的指導(dǎo),在傳統(tǒng)的設(shè)計(jì)中對(duì)于系統(tǒng)大多數(shù)設(shè)計(jì)師都是采用分模塊形成業(yè)務(wù)架構(gòu)、進(jìn)而模塊詳細(xì)設(shè)計(jì)的步驟,遵循OSGi也是類似如此,只是它能夠更加規(guī)范的讓設(shè)計(jì)師們?nèi)ネ瓿蛇@些過(guò)程,而不是象現(xiàn)在百花齊放,每個(gè)設(shè)計(jì)師都有自己的一套設(shè)計(jì)的方式,這就象UML帶來(lái)的好處,大家以后在設(shè)計(jì)的交流上是不是就更加容易了呢,當(dāng)然,這是從大方向來(lái)看的,具體的細(xì)節(jié)方面那是另一回事,基于OSGi的系統(tǒng)基本都采用分Bundle、對(duì)Bundle基于Service-Oriented Component Model思想的詳細(xì)設(shè)計(jì),而OSGi對(duì)于Bundle各建classloader的機(jī)制則是更加容易同時(shí)也是強(qiáng)迫的讓設(shè)計(jì)師們很容易就去做到模塊解耦的設(shè)計(jì),即使你不用OSGi,那也沒(méi)關(guān)系,OSGi的思想難道不值得學(xué)習(xí)嗎,學(xué)習(xí)了OSGi的這些優(yōu)秀的思想你也可以在自己的項(xiàng)目/產(chǎn)品中采取類似的設(shè)計(jì)來(lái)提升系統(tǒng)的設(shè)計(jì)。
2、想實(shí)現(xiàn)動(dòng)態(tài)的可管理的系統(tǒng)(即插即用)
??????N多人都已經(jīng)知道了,基于OSGi的系統(tǒng)具備充足的動(dòng)態(tài)性,而這其實(shí)也是我們?cè)谧鯦ava開發(fā)時(shí)一直想實(shí)現(xiàn)的,現(xiàn)在有這么一個(gè)現(xiàn)成的已經(jīng)被證明可實(shí)現(xiàn)動(dòng)態(tài)性的規(guī)范給你使用和學(xué)習(xí),何不使用試試或者學(xué)習(xí)學(xué)習(xí)它的設(shè)計(jì),然后自己做個(gè)動(dòng)態(tài)的系統(tǒng)玩玩呢?
????? 其實(shí)很多時(shí)候我們是因?yàn)樵谟肑ava時(shí)養(yǎng)成的習(xí)慣思維,看OSGi可以讓你稍微突破突破java帶給你的常規(guī)思維習(xí)慣,去做到按版本的動(dòng)態(tài)的加載類等一些功能,這是很好的。
3、想建立規(guī)范的開發(fā)方式和培訓(xùn)體系以及形成積累
????? 對(duì)于公司而言,規(guī)范的開發(fā)方式是一直以來(lái)都所期望的,而基于OSGi呢,很容易就可以讓公司做到這點(diǎn),基于OSGi公司所有的項(xiàng)目都可以按照統(tǒng)一的基礎(chǔ)架構(gòu)、開發(fā)方式、部署方式來(lái)完成,自然公司在開發(fā)知識(shí)方面的培訓(xùn)體系就能很容易的形成了。
??????至于形成積累方面,更是公司都所期望的,就像我上篇blog所說(shuō)的一樣,基于OSGi的話可以將公司所做過(guò)的項(xiàng)目的模塊都放入OBR中,當(dāng)做新項(xiàng)目的時(shí)候就只需要去OBR中下相應(yīng)的Bundle就可以搭出個(gè)腳手架,甚至是差不多的系統(tǒng)了。
上面只是簡(jiǎn)單的列了三點(diǎn),OSGi帶給業(yè)界的影響絕對(duì)是遠(yuǎn)超過(guò)IoC這種純粹解決專一問(wèn)題的設(shè)計(jì)思想的,給自己一個(gè)理由,或者是沒(méi)事的時(shí)候抽空找個(gè)OSGi的應(yīng)用試試吧,體驗(yàn)體驗(yàn),也許你就會(huì)

上OSGi的

ps:最近有個(gè)想法,既然每家公司都要養(yǎng)人做自己的開發(fā)平臺(tái),那么不如各家公司聯(lián)合起來(lái)做開發(fā)平臺(tái),進(jìn)而把開發(fā)平臺(tái)開源出來(lái),這樣每家公司就可以大概只要養(yǎng)一兩個(gè)人了做開發(fā)平臺(tái)了,畢竟大部分的公司都不是依靠賣開發(fā)平臺(tái)來(lái)賺錢的,而這樣多家公司聯(lián)合做的好處在于可以聚集各家公司的強(qiáng)人,呵呵,其質(zhì)量、進(jìn)度等必然會(huì)高過(guò)一家公司去做,當(dāng)然,這種方法中最為重要的就是首先要樹立一致的目標(biāo),畢竟每家公司對(duì)于其開發(fā)平臺(tái)的功能還是有所輕重區(qū)別的,希望有共同想法的朋友們響應(yīng)下......