摘要: 在上世紀(jì)九十年代,Java被設(shè)計(jì)成了OOP語(yǔ)言,在當(dāng)時(shí),OOP是軟件開(kāi)發(fā)中的標(biāo)桿。遠(yuǎn)在OOP還沒(méi)有出現(xiàn)的時(shí)候,已經(jīng)產(chǎn)生了FP語(yǔ)言,例如Lisp和Scheme,但是它們的益處,并沒(méi)有受到學(xué)術(shù)圈外的人重視。最近,F(xiàn)P的重要性被提升了,因?yàn)樗浅_m合并發(fā)編程和事件驅(qū)動(dòng)編程。然而,這并不意味著OO不好,相反,好的策略應(yīng)該是混用OOP和FP。就算你對(duì)并發(fā)編程不感興趣,這也很有道理。例如,如果編程語(yǔ)言有一個(gè)方便寫(xiě)函數(shù)表達(dá)式的語(yǔ)法,集合類庫(kù)就能擁有強(qiáng)大的API。
閱讀全文
摘要: 在軟件開(kāi)發(fā)中,好的建議是可遇不可求的。通用設(shè)計(jì)原則可以指導(dǎo)我們,但現(xiàn)實(shí)總是逼著我們,在看起來(lái)相互沖突的目標(biāo)之間妥協(xié),比如,可擴(kuò)展性和可維護(hù)性與規(guī)模和復(fù)雜性。同樣的,現(xiàn)有代碼庫(kù)可以在很大程度上讓我們避免重復(fù)造輪子,但想要初級(jí)開(kāi)發(fā)者輕松組合那些現(xiàn)有組件來(lái)做項(xiàng)目,依然不現(xiàn)實(shí)。
閱讀全文
摘要: 對(duì)很多應(yīng)用來(lái)說(shuō),時(shí)間和日期的概念都是必須的。像生日,租賃期,事件的時(shí)間戳和商店?duì)I業(yè)時(shí)長(zhǎng),等等,都是基于時(shí)間和日期的;然而,Java卻沒(méi)有好的API來(lái)處理它們。在Java SE 8中,添加了一個(gè)新包:java.time,它提供了結(jié)構(gòu)良好的API來(lái)處理時(shí)間和日期。
閱讀全文