开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频
打開APP
未登錄
開通VIP,暢享免費電子書等14項超值服
開通VIP
首頁
好書
留言交流
下載APP
聯(lián)系客服
編寫高質(zhì)量代碼:改善Java程序的151個建議-秦小波
智能制造資訊網(wǎng)
>《待分類》
2022.05.21 山東
關(guān)注
前言
從決定撰寫本書到完稿歷時9個月,期間曾經(jīng)遇到過種種困難和挫折,但這個過程讓我明白了堅持的意義,明白了“行百里者半九十”的寓意—堅持下去,終于到了寫前言的時刻。
為什么寫這本書
從第一次敲出“Hello World”到現(xiàn)在已經(jīng)有15年時間了,在這15年里,我當過程序員和架構(gòu)師,也擔任過項目經(jīng)理和技術(shù)顧問—基本上與技術(shù)沾邊的事情都做過。從第一次接觸Java到現(xiàn)在,已經(jīng)有11年4個月了,在這些年里,我對Java可謂是情有獨鐘,對其編程思想、開源產(chǎn)品、商業(yè)產(chǎn)品、趣聞軼事、風流人物等都有所了解和研究。對于Java,我非常感激,從物質(zhì)上來說,它給了我工作,幫助我養(yǎng)家糊口;從精神上來說,它帶給我無數(shù)的喜悅、困惑、痛苦和無奈—一如我們的生活。
我不是技術(shù)高手,只是技術(shù)領(lǐng)域的一個拓荒者,我希望能把自己的知識和經(jīng)驗貢獻出來,以饗讀者。在寫作的過程中,我也反復地思考:我為誰而寫這本書?為什么要寫?
希望本書能幫您少走彎路
您是否曾經(jīng)為了提供一個“One Line”的解決方案而徹夜地查看源代碼?現(xiàn)在您不用了。您是否曾經(jīng)為了理解某個算法而冥思苦想、閱覽群書?現(xiàn)在您不用了。
您是否曾經(jīng)為了提升0.1秒的性能而對N種實現(xiàn)方案進行嚴格測試和對比?現(xiàn)在您不用了。
您是否曾經(jīng)為了避免多線程死鎖問題而遍尋高手共同診治?現(xiàn)在您不用了。
……
在學習和使用Java的過程中您是否在原本可以很快掌握或解決的問題上耗費了大量的時間和精力?也許您現(xiàn)在不用了,本書的很多內(nèi)容都是我用曾經(jīng)付出的代價換來的,希望它能幫助您少走彎路!
希望本書能幫您打牢基礎(chǔ)
那些所謂的架構(gòu)師、設(shè)計師、項目經(jīng)理、分析師們,已經(jīng)有多長時間沒有寫過代碼了?代碼是一切的基石,我不太信任連“Hello World”都沒有寫過的架構(gòu)師。看看我們軟件界的先輩們吧, Dennis M.Ritchie決定創(chuàng)造一門“看上去很好”的語言時,如果只是站在高處吶喊,這門語言是劃時代的,它有多么優(yōu)秀,但不去實現(xiàn),又有何用呢?沒有Dennis M.Ritchie的親自編碼實現(xiàn),C語言不可能誕生,UNIX操作系統(tǒng)也不可能誕生。Linux在聚攏成千上萬的開源狂熱者對它進行開發(fā)和擴展之前,如果沒有Linus的編碼實現(xiàn),僅憑他高聲吶喊“我要創(chuàng)造一個劃時代的操作系統(tǒng)”,有用嗎?一切的一切都是以編碼實現(xiàn)為前提的,代碼是我們前進的基石。
這是一個英雄輩出的年代,我們每個人都希望自己被頂禮膜拜,可是這需要資本和實力,而我們的實力體現(xiàn)了我們處理技術(shù)問題的能力:
你能寫出簡單、清晰、高效的代碼?——Show it!
你能架構(gòu)一個穩(wěn)定、健壯、快捷的系統(tǒng)?——Do it!
你能回答一個困擾N多人的問題?——Answer it!
你能修復一個系統(tǒng)Bug?——Fix it!
你非常熟悉某個開源產(chǎn)品?——Broadcast it!你能提升系統(tǒng)性能?——Tune it!
……
但是,“工欲善其事,必先利其器”,在“善其事”之前,先看看我們的“器”是否已經(jīng)磨得足夠鋒利了,是否能夠在我們前進的路上披荊斬棘。無論您將來的職業(yè)發(fā)展方向是架構(gòu)師、設(shè)計師、分析師、管理者,還是其他職位,只要您還與軟件打交道,您就有必要打好技術(shù)基礎(chǔ)。本書對核心的Java編程技術(shù)進行了凝練,如果能全部理解并付諸實踐,您的基礎(chǔ)一定會更加牢固。
希望本書能幫您打造一支技術(shù)戰(zhàn)斗力強的團隊在您的團隊中是否出現(xiàn)過以下現(xiàn)象:
沒有人愿意聽一場關(guān)于編碼奧秘的講座,他們覺得這是浪費時間;
沒有人愿意去思考和探究一個算法,他們覺得這實在是多余,Google完全可以解決;
沒有人愿意主動重構(gòu)一段代碼,他們覺得新任務(wù)已經(jīng)堆積成山了,“沒有壞,就不要去修它”;
沒有人愿意格式化一下代碼,即便只需要按一下【Ctrl+Shift+F】快捷鍵,他們覺得代碼寫完就完了,何必再去溫習;
沒有人愿意花時間去深究一下開源框架,他們覺得夠用就好;
……
一支有實力的軟件研發(fā)團隊是建立在技術(shù)的基礎(chǔ)之上的,團隊成員之間需要經(jīng)常地互相交流和切磋,尤其是基于可辨別、可理解的編碼問題。不可否認,概念和思想也很重要,但我更看重基于代碼的交流,因為代碼不會說謊,比如SOA,10個人至少會有5個答案,但代碼就不同了,同樣的代碼,結(jié)果只有一個,要么是錯的,要么是對的,這才是一個技術(shù)團隊應(yīng)該有的氛圍。本書中提出的這些問題絕大部分可能都是您的團隊成員在日常的開發(fā)中會遇到的,我針對這些問題給出的建議不是唯一的解決方案,也許您的團隊在討論這一個個問題的時候能有更好的解決辦法。希望通過對本書中的這些問題的爭辯、討論和實踐能全面提升每一位團隊成員的技術(shù)實力,從而增強整個團隊的戰(zhàn)斗力!
本書特色
深。本書不是一本語法書,它不會教您怎么編寫Java代碼,但是它會告訴您,為什么StringBuilder會比String類效率高,HashMap的自增是如何實現(xiàn)的,為什么并行計算一般都是從Executors開始的……不僅僅告訴您How(怎么做),而且還告訴您Why(為什么要這樣做)。
廣。涉及面廣,從編碼規(guī)則到編程思想,從基本語法到系統(tǒng)框架,從JDK API到開源產(chǎn)品,全部都有涉獵,而且所有的建議都不是紙上談兵,都與真實的場景相結(jié)合。
點。講解一個知識點,而不是一個知識面,比如多線程,這里不提供多線程的解決方案,而是告訴您如何安全地停止一個線程,如何設(shè)置多線程關(guān)卡,什么時候該用lock,什么時候該用synchronize,等等。
精。簡明扼要,直搗黃龍,一個建議就是對一個問題的解釋和說明,以及提出相關(guān)的解決方案,不拖泥帶水,只針對一個知識點進行講解。
暢。本書延續(xù)了我一貫的寫作風格,行云流水,娓娓道來,每次想好了一個主題后,都會先打一個腹稿,思考如何講才能更流暢。本書不是一本很無趣的書,我一直想把它寫得生動和優(yōu)雅,但Code就是Code,很多時候容不得深加工,最直接也就是最簡潔的。
這是一本建議書,想想看,在您寫代碼的時候,有這樣一本書籍在您的手邊,告訴您如何才能編寫出優(yōu)雅而高效的代碼,那將是一件多么愜意的事情??!
本書面向的讀者
尋找“One Line”(一行)解決方案的編碼人員。
希望提升自己編碼能力的程序員。
期望能夠在開源世界仗劍而行的有志之士。對編碼癡情的人。
總之,只要還在Java圈子里混就有必要閱讀本書,不管是程序員、測試人員、分析師、架構(gòu)師,還是項目經(jīng)理,都有必要。
如何閱讀本書
首先聲明,本書不是面向初級Java程序員的,在閱讀本書之前至少要對基本的Java語法有初步了解,最好是參與過幾個項目,寫過一些代碼,具備了這些條件,閱讀本書才會有更大的收獲,才會覺得是一種享受。
本書的各個章節(jié)和各個建議都是相對獨立的,所以,您可以從任何章節(jié)的任何建議開始閱讀。強烈建議您將它放在辦公桌旁,遇到問題時隨手翻閱。
本書附帶有大量的源碼(下載地址見華章網(wǎng)站www.hzbook.com),建議大家在閱讀本書時拷貝書中的示例代碼,放到自己的收藏夾中,以備需要時使用。
勘誤與支持
首先,我要為書中可能出現(xiàn)的錯別字、多意
句、歧義句、代碼缺陷等錯誤向您真誠地道歉。雖然楊福川、楊繡國兩位編輯和我都為此書付出了非常大的努力,但可能還是會有一些瑕疵,如果你在閱讀本書時發(fā)現(xiàn)錯誤或有問題想一起討論,請發(fā)郵件(cbf4life@126.com)給我,我會盡快給您回復。
本書的所有勘誤,我都會發(fā)表在我的個人博客(http://cbf4life.iteye.com/)上。
致謝
首先,感謝楊福川和楊繡國兩位編輯,在他們的編審下,本書才有了一個質(zhì)的飛躍,沒有他們的計劃和安排,本書不可能出版。
其次,感謝家人的支持,為了寫這本書,用盡了全部的休息時間,很少有時間陪伴父母和妻兒,甚至連吃一頓團圓飯都成了奢望,他們的大力支持讓我信心滿懷、干勁十足。兒子已經(jīng)6歲了,明白騎在爸爸身上是對爸爸的折磨,也知道玩具是可以從網(wǎng)上買到的,“爸爸,給我買一個變形金剛……你在網(wǎng)上查呀……今天一定要買……”兒子在不知不覺中長大了。
再次,感謝交通銀行“531”工程的所有領(lǐng)導和同事,是他們讓我在這樣超大規(guī)模的工程中學習和成長,使自己的技術(shù)和技能有了長足的進步;感謝我的領(lǐng)導李海寧總經(jīng)理和周云康高級經(jīng)理,他們時時迸發(fā)出的閃光智慧讓我受益匪淺;感謝軟件開發(fā)中心所有同仁對我的幫助和鼓勵!
最后,感謝我的朋友王驄,他無償?shù)匕谚€匙給我,讓我有一個安靜的地方思考和寫作,有這樣的朋友,人生無憾!
當然,還要感謝您,感謝您對本書的關(guān)注。
再次對本書中可能出現(xiàn)的錯誤表示歉意,真誠地接受大家的“轟炸”!
秦小波2011年8月于上海
網(wǎng)傳美的將裁員50%! 官方回應(yīng)
編寫高質(zhì)量代碼:改善C程序代碼的125個建議.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報
。
打開APP,閱讀全文并永久保存
查看更多類似文章
猜你喜歡
類似文章
Java程序員修煉之路(一)我們?yōu)槭裁催x擇Java
程序員必讀之軟件架構(gòu)
年薪100萬和10萬程序員的差距
從普通JAVA程序員到阿里架構(gòu)師,他用了六年
程序員如何進入機器學習領(lǐng)域?
我是如何成長為系統(tǒng)架構(gòu)師的
更多類似文章 >>
生活服務(wù)
首頁
萬象
文化
人生
生活
健康
教育
職場
理財
娛樂
藝術(shù)
上網(wǎng)
留言交流
回頂部
聯(lián)系我們
分享
收藏
點擊這里,查看已保存的文章
導長圖
關(guān)注
一鍵復制
下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁面
先別劃走!
送你5元優(yōu)惠券,購買VIP限時立減!
5
元
優(yōu)惠券
優(yōu)惠券還有
10:00
過期
馬上使用
×