讀書,收獲痊项,分享
建議后面的五角星僅代表筆者個人需要注意的程度儡陨。
Talk is cheap.Show me the code
建議139:大膽采用開源工具★☆☆☆☆
開源工具包確實會對我們的項目有非常大的幫助,比如提升代碼質(zhì)量,減少Bug
產(chǎn)生存和,降低工作量等,但一旦項目中的工具雜亂無章時就會產(chǎn)生依賴的無序性,這會導致代碼中隱藏著炸彈捐腿,不知何時就會突然引爆了纵朋。
因此,在選擇開源工具和框架時要遵循一定的原則:
- 普適性原則茄袖,選擇一個工具或框架就必須考慮項目成員的整體技術(shù)水平操软,不能有太大的跨度或跳躍性,要確保大部分項目成員對工具都比較熟悉宪祥。
- 唯一性原則聂薪,相同的工具只選擇一個或一種,不要讓多種相同或相似職能的工具共存蝗羊。
- “大樹納涼”原則藏澳,尋找比較有名的開源組織。
- 精而專原則耀找,選擇的工具包應(yīng)該是精而專的翔悠,而不是廣而多的。
- 高熱度原則野芒,一個開源項目的熱度越高蓄愁,更新得就越頻繁,使用的人群就越廣,
Bug
的曝光率就越快抹恳,修復效率也就越高振劳,這對我們項目的穩(wěn)定性來說是非常重要的。
建議140:推薦使用Guava
擴展工具包☆☆☆☆☆
它的一些主要功能:
-
Collections
com.google.common.collect
包中主要包括四部分:不可變集合(Immutable Collections)胀滚、多值Map
、Table
表和集合工具類乱投。 -
字符串操作
Joiner
連接器和Splitter
拆分器等咽笼。 -
基本類型工具
基本類型工具在
primitives
包中,是以基本類型名+s
的方式命名的戚炫,比如Ints
是int
的工具類剑刑,Doubles
是double
的工具類,注意這些都是針對基本類型的双肤,而不是針對包裝類型的施掏。
建議141:Apache
擴展包☆☆☆☆☆
簡單的介紹:
-
Lang
字符串操作工具類、
Object
工具類茅糜、可變的基本類型七芭、其他Utils工具。 -
BeanUtils
屬性拷貝蔑赘、
動態(tài)Bean
和自由Bean
狸驳、轉(zhuǎn)換器等预明。 -
Collections
Bag
、lazy
系列耙箍、雙向Map
等撰糠。
建議142:推薦使用Joda
日期時間擴展包☆☆☆☆☆
通過Joda
開源包來操作時間的方法,非常簡單方便辩昆,如:
- 本地格式的日期時間
- 日期計算
- 時區(qū)時間
建議143:可以選擇多種Collections
擴展☆☆☆☆☆
介紹三個比較有個性的Collections
擴展工具包:
-
fastutil
主要提供了兩種功能:一種是限定鍵值類型(TypeSpecific)的
Map
阅酪、List
、Set
等汁针,另一種是大容量的集合术辐。 -
Trove
Trove
提供了一個快速、高效施无、低內(nèi)存消耗的Collection
集合辉词,并且還提供了過濾和攔截的功能,同時還提供了基本類型的集合帆精。 -
lambdaj
lambdaj
是一個純凈的集合操作工具较屿,它不會提供任何的集合擴展,只會提供對集合的操作卓练,比如查詢隘蝎、過濾、統(tǒng)一初始化等襟企,特別是它的查詢操作嘱么,非常類似于DBRMS
上的SQL
語句,而且也會提供諸如求和顽悼、求平均值等的方法曼振。