Java 工程師更新技術(shù)的三條原則
Java 工程師可以采用多種策略來(lái)與技術(shù)保持同步,最自然的方法之一是開(kāi)發(fā)框架和庫(kù)。通過(guò)開(kāi)發(fā)框架和庫(kù),他們經(jīng)常發(fā)現(xiàn)自己處于以下兩種情況之一:
1.他們代碼中的任何重大更改都會(huì)破壞他們客戶(hù)的應(yīng)用程序。因此,他們很難發(fā)布額外的功能。 他們的大多數(shù)版本僅包含較小的錯(cuò)誤修復(fù)。
2.盡管他們經(jīng)常發(fā)布包含額外功能的版本,但他們的客戶(hù)從不升級(jí)。升級(jí)到最新版本會(huì)花費(fèi)太多精力,而客戶(hù)沒(méi)有時(shí)間。
如果你發(fā)現(xiàn)自己處于其中一種情況,你需要了解維持出色框架和庫(kù)的 3 條原則。在你的 API 中應(yīng)用這些原則將使你走上與時(shí)俱進(jìn)的道路。
原則 1:讓你的客戶(hù)快速開(kāi)始
當(dāng)你嘗試一個(gè)新的框架或庫(kù)時(shí),你會(huì)怎么做?
在開(kāi)始編碼之前,你是否閱讀了整個(gè)文檔來(lái)學(xué)習(xí)理論? 或者你只是找到一個(gè)簡(jiǎn)單的用例,然后進(jìn)行更改和實(shí)驗(yàn)?大多數(shù)開(kāi)發(fā)人員更喜歡第二種選擇。 他們不想閱讀太多文檔。 他們只是想完成他們的事情。
管理人員希望縮短上市時(shí)間,他們希望他們的軟件在盡可能短的時(shí)間內(nèi)投入生產(chǎn)。為此,請(qǐng)通過(guò)快速查看類(lèi)和方法來(lái)創(chuàng)建易于理解的 API。盡量讓它們簡(jiǎn)單,并給它們起有意義的名字。除此之外,還要在文檔中添加用例,大多數(shù)流行的框架都有這樣的指南。
通過(guò)訪問(wèn)用例,開(kāi)發(fā)人員可以找到他需要的并對(duì)其進(jìn)行調(diào)整。通常,這就是他完成工作所需要的一切。
原則 2:讓你的產(chǎn)品與市場(chǎng)趨勢(shì)保持同步
開(kāi)發(fā)人員希望使用最酷的技術(shù)并與其他開(kāi)發(fā)人員分享他們的知識(shí),這很重要,因?yàn)槿藗冃枰私饽愕漠a(chǎn)品,否則沒(méi)有人會(huì)使用它。
那么,是什么讓框架或庫(kù)很酷呢? 除了易于上手(原則 1)之外,它還必須是現(xiàn)代的并且與市場(chǎng)趨勢(shì)保持同步,并以一致的方式發(fā)布附加功能。如果你這樣做了,你也將與新的東西保持同步,這就是為什么你需要知道第三個(gè)也是最重要的原則。
原則 3:讓你的客戶(hù)輕松升級(jí)
總擁有成本 (TCO) 是客戶(hù)為產(chǎn)品支付的價(jià)格,加上他為保持產(chǎn)品正常運(yùn)行而支付的價(jià)格。這很重要,因?yàn)樗c前面的兩個(gè)原則有關(guān)。它與原則 1 相關(guān),因?yàn)榭蛻?hù)總是希望盡可能省錢(qián),他們不想花太多錢(qián)來(lái)啟動(dòng)和運(yùn)行他們的應(yīng)用程序。它還與原則 2 相關(guān),因?yàn)槟愕漠a(chǎn)品必須很酷。在某些時(shí)候,你的客戶(hù)將需要你發(fā)布的附加功能。
但僅僅酷是不夠的。它還必須向后兼容。否則,客戶(hù)在升級(jí)時(shí)將需要更改他們的應(yīng)用程序,這將花費(fèi)時(shí)間和金錢(qián)。保持向后兼容性對(duì)于持久的產(chǎn)品至關(guān)重要。一旦你的客戶(hù)使用你的 API,你就無(wú)法再更改它們。這就是為什么你需要仔細(xì)設(shè)計(jì)它們。以一種允許你在不破壞客戶(hù)應(yīng)用程序的情況下發(fā)展的方式進(jìn)行。
你是怎樣做的?定義特定的用例,如原則 1 所述,你的 API 的早期版本不應(yīng)該太靈活。靈活性與具有向后兼容性的演進(jìn)成反比。所以從僵化開(kāi)始,然后升級(jí)靈活性。此外,盡可能使用 final 方法和類(lèi)。
你還應(yīng)該創(chuàng)建高內(nèi)聚和低耦合的工件。請(qǐng)記住,工件越分散,更改它就越困難。
為了保持向后兼容性,我能給你的最重要的提示是封裝內(nèi)部。將所有內(nèi)容設(shè)為私有并僅公開(kāi)客戶(hù)需要使用的基本類(lèi)和方法。除了降低復(fù)雜性之外,這還允許你在不破壞兼容性的情況下進(jìn)行更改。
能夠在你的 API 中應(yīng)用優(yōu)秀框架和庫(kù)的三個(gè)原則肯定會(huì)幫助你使用新技術(shù),你必須一致地改進(jìn)你的產(chǎn)品。