開源世界——讀《編寫高質(zhì)量代碼:改善Java程序的151個建議》(十一)

讀書,收獲痊项,分享
建議后面的五角星僅代表筆者個人需要注意的程度儡陨。
Talk is cheap.Show me the code

建議139:大膽采用開源工具★☆☆☆☆

開源工具包確實會對我們的項目有非常大的幫助,比如提升代碼質(zhì)量,減少Bug產(chǎn)生存和,降低工作量等,但一旦項目中的工具雜亂無章時就會產(chǎn)生依賴的無序性,這會導致代碼中隱藏著炸彈捐腿,不知何時就會突然引爆了纵朋。

因此,在選擇開源工具和框架時要遵循一定的原則:

  1. 普適性原則茄袖,選擇一個工具或框架就必須考慮項目成員的整體技術(shù)水平操软,不能有太大的跨度或跳躍性,要確保大部分項目成員對工具都比較熟悉宪祥。
  2. 唯一性原則聂薪,相同的工具只選擇一個或一種,不要讓多種相同或相似職能的工具共存蝗羊。
  3. “大樹納涼”原則藏澳,尋找比較有名的開源組織。
  4. 精而專原則耀找,選擇的工具包應(yīng)該是精而專的翔悠,而不是廣而多的。
  5. 高熱度原則野芒,一個開源項目的熱度越高蓄愁,更新得就越頻繁,使用的人群就越廣,Bug的曝光率就越快抹恳,修復效率也就越高振劳,這對我們項目的穩(wěn)定性來說是非常重要的。

建議140:推薦使用Guava擴展工具包☆☆☆☆☆

它的一些主要功能:

  1. Collections

    com.google.common.collect包中主要包括四部分:不可變集合(Immutable Collections)胀滚、多值MapTable表和集合工具類乱投。

  2. 字符串操作

    Joiner連接器和Splitter拆分器等咽笼。

  3. 基本類型工具

    基本類型工具在primitives包中,是以基本類型名+s的方式命名的戚炫,比如Intsint的工具類剑刑,Doublesdouble的工具類,注意這些都是針對基本類型的双肤,而不是針對包裝類型的施掏。

建議141:Apache擴展包☆☆☆☆☆

簡單的介紹:

  1. Lang

    字符串操作工具類、Object工具類茅糜、可變的基本類型七芭、其他Utils工具。

  2. BeanUtils

    屬性拷貝蔑赘、動態(tài)Bean自由Bean狸驳、轉(zhuǎn)換器等预明。

  3. Collections

    Baglazy系列耙箍、雙向Map等撰糠。

建議142:推薦使用Joda日期時間擴展包☆☆☆☆☆

通過Joda開源包來操作時間的方法,非常簡單方便辩昆,如:

  1. 本地格式的日期時間
  2. 日期計算
  3. 時區(qū)時間

建議143:可以選擇多種Collections擴展☆☆☆☆☆

介紹三個比較有個性的Collections擴展工具包:

  1. fastutil

    主要提供了兩種功能:一種是限定鍵值類型(TypeSpecific)的Map阅酪、ListSet等汁针,另一種是大容量的集合术辐。

  2. Trove

    Trove提供了一個快速、高效施无、低內(nèi)存消耗的Collection集合辉词,并且還提供了過濾和攔截的功能,同時還提供了基本類型的集合帆精。

  3. lambdaj

    lambdaj是一個純凈的集合操作工具较屿,它不會提供任何的集合擴展,只會提供對集合的操作卓练,比如查詢隘蝎、過濾、統(tǒng)一初始化等襟企,特別是它的查詢操作嘱么,非常類似于DBRMS上的SQL語句,而且也會提供諸如求和顽悼、求平均值等的方法曼振。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蔚龙,隨后出現(xiàn)的幾起案子冰评,更是在濱河造成了極大的恐慌,老刑警劉巖木羹,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甲雅,死亡現(xiàn)場離奇詭異,居然都是意外死亡坑填,警方通過查閱死者的電腦和手機抛人,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脐瑰,“玉大人妖枚,你說我怎么就攤上這事〔栽冢” “怎么了绝页?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵荠商,是天一觀的道長。 經(jīng)常有香客問我抒寂,道長结啼,這世上最難降的妖魔是什么掠剑? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任屈芜,我火速辦了婚禮,結(jié)果婚禮上朴译,老公的妹妹穿的比我還像新娘井佑。我一直安慰自己,他們只是感情好眠寿,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布躬翁。 她就那樣靜靜地躺著,像睡著了一般盯拱。 火紅的嫁衣襯著肌膚如雪盒发。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天狡逢,我揣著相機與錄音宁舰,去河邊找鬼。 笑死奢浑,一個胖子當著我的面吹牛蛮艰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雀彼,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼壤蚜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了徊哑?” 一聲冷哼從身側(cè)響起袜刷,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎莺丑,沒想到半個月后著蟹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡窒盐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年草则,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟹漓。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡炕横,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出葡粒,到底是詐尸還是另有隱情份殿,我是刑警寧澤膜钓,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站卿嘲,受9級特大地震影響颂斜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拾枣,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一沃疮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧梅肤,春花似錦司蔬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至左医,卻和暖如春授帕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浮梢。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工跛十, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人黔寇。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓偶器,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缝裤。 傳聞我的和親對象是個殘疾皇子屏轰,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容