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