逝去的2018
大概有2個(gè)月沒有真正的去寫過文章了,這段時(shí)間的確是太忙了,先給各位讀者道個(gè)歉。2018都過去快一周了,終于在周末的時(shí)候抽出了時(shí)間對2018進(jìn)行總結(jié)。
在這匆匆的2018年中我閱讀了很多書籍,結(jié)識了很多人,了解了很多不同的學(xué)習(xí)方法,也領(lǐng)略過一些高深莫測的源碼,寫過一些不精的技術(shù)文章。這一年的確經(jīng)歷了很多,自己也得到了很多成長,獲得了很多感悟,而這些經(jīng)驗(yàn),感悟我也將在這里記錄下來。
2018的那些書
2018年買了很多書,但是目前看完的是少數(shù),但是一般買書之前我都會(huì)參考很多地方的評論,以及他的目錄,自我認(rèn)為選擇的書還是算不錯(cuò)的吧,這里我把我今年購物車的書列舉一下,大家可以參考一下:
1.《kafka權(quán)威指南》《Apache Kafka源碼剖析》
以前市面上基本沒有對于消息隊(duì)列介紹的書 ,去年關(guān)于消息隊(duì)列kafka的書一下出了好幾本,買書的好好挑選了一下,選擇了這兩本書。
《Apache Kafka源碼剖析》:這是國內(nèi)作者寫的一本書,如果你想了解消息隊(duì)列實(shí)現(xiàn)原理,一些實(shí)現(xiàn)的核心思想,但是你并不是很想真正的實(shí)戰(zhàn)上面對他使用,對他調(diào)優(yōu),那么這本書就足夠了,相信你閱讀了之后讀kafka,乃至其他消息隊(duì)列都有一個(gè)全新的認(rèn)識。
《kafka權(quán)威指南》:這本書是Kafka作者推薦的一本書,其實(shí)我覺得也可以叫kafka實(shí)戰(zhàn),這本書講原理不是很深,但是對于實(shí)戰(zhàn)的場景卻講述得很透徹。如果想真正的業(yè)務(wù)上使用kafka那么這本書是必不可少的。
2.《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)》:相信很多人都閱讀過李智慧的《大型網(wǎng)站技術(shù)架構(gòu)》這是一本13年的書,而《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)》這本書同樣也是阿里人寫的,如果光看名字你有可能以為這是那本書的2.0版本,但是真正的內(nèi)容差別很多,作者許令波介紹了很多很好的思想,技術(shù)。比如中臺的演進(jìn),國際化的挑戰(zhàn),尤其是合并部署,這個(gè)技術(shù)以前根本都沒聽過,但是我的水平有限,合并部署這一塊如何落地還是不是很清楚。這本書也比較薄,差不多2周之內(nèi)就能閱讀完吧,非常推薦這本書。
3.《架構(gòu)整潔之道》:《架構(gòu)整潔之道》是創(chuàng)造“Clean神話”的Bob大叔在架構(gòu)領(lǐng)域的登峰之作。這本書不是很推薦新手玩家閱讀(當(dāng)然閱讀之后肯定沒有壞處),這本書對于工作一段時(shí)間的人是非常有益的。這本書的章節(jié)劃分得很細(xì)總共34章,我特別喜歡這種劃分得很細(xì)的章節(jié),有助于我們總結(jié)歸納。其中介紹的很多東西對于工作之后的人是非常有用的,如果不想只當(dāng)寫代碼的程序員,想對自己往更高的一個(gè)層面進(jìn)步的,這本書應(yīng)該會(huì)讓你受益匪淺。
4.《碼出高效》:這本書相信不用我推薦也有很多人買,畢竟阿里出品。阿里孤盡的《阿里巴巴Java開發(fā)手冊》所制定的規(guī)約相信已經(jīng)成為很多公司,很多部門的開發(fā)規(guī)約了,當(dāng)然這本書我個(gè)人覺得可能還是更多的面向一個(gè)初,中級的,對于技術(shù)比較厲害的同學(xué)也可以閱讀,畢竟孤盡也介紹了很多自己的一些經(jīng)驗(yàn)。內(nèi)容介紹得很全,由于太全了肯定就導(dǎo)致了不會(huì)太深,從計(jì)算機(jī)基礎(chǔ),到Java語言,再到JVM,最后作者也介紹了個(gè)人成長。作為一個(gè)Javaer,相信你讀了這本書肯定能得到很多收獲。
5.《Effective Java3》:《Effective Java2》已經(jīng)出來快10年了,雖然第二版的內(nèi)容到現(xiàn)在依然適用,但是現(xiàn)在Java11都出來了,Java6的規(guī)范顯然明顯是不夠的。買這本書的初衷是自己計(jì)劃看完一本英語書,但是這本書的中文版已經(jīng)在12月份的時(shí)候出版,有興趣的可以去購買,第三版的《Effective Java》介紹了很多java7,java8,乃至java9的最佳實(shí)踐。所以這本書應(yīng)該會(huì)逐漸替代《Effective Java2》在Java書屆中的地位。
6.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)精粹》:微服務(wù)的火熱讓DDD重新煥發(fā)了青春,我們的項(xiàng)目重構(gòu)也用到了很多DDD的思想。很多人一開始就會(huì)陷入戰(zhàn)術(shù)模式的死胡同,認(rèn)為DDD就是充血模型。所以這里首先推薦一下《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)精粹》,這本書介紹了DDD的戰(zhàn)略模式,這本書叫DDD精粹但是卻通篇沒有提起戰(zhàn)術(shù)模式或者是充血等等,所以DDD的精粹應(yīng)該是他的戰(zhàn)略建模,領(lǐng)域劃分等等,同時(shí)這本書很薄,大概一周就能讀完,所以對于想了解DDD的同學(xué)來說這本書很不錯(cuò)。對于想了解更多的DDD可以閱讀《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》,這里也推薦一下GitChat上張逸的領(lǐng)域驅(qū)動(dòng)的課程,讓我也受益良多。
7.《持續(xù)演進(jìn)的Cloud Native:云原生架構(gòu)下微服務(wù)最佳實(shí)踐》:對于想了解什么是微服務(wù),如何做好一個(gè)微服務(wù)架構(gòu),那么這本書可以幫助你。這本書目前只看了前面3章,作者的水平的確不錯(cuò)。有興趣的可以了解。
8.《數(shù)據(jù)密集型應(yīng)用系統(tǒng)設(shè)計(jì)》:這本書是另外一個(gè)公眾號作者kirito推薦的,這本書很不錯(cuò),在這里強(qiáng)烈推薦。但是比較厚,如果要把這本書看完,需要一定毅力的,目前我只看了3章。這本書介紹了很多分布式系統(tǒng)的內(nèi)容,比如系統(tǒng)的可靠性,可維護(hù),可擴(kuò)展,數(shù)據(jù)編碼,時(shí)鐘不可靠怎么處理等等。對分布式有興趣的同學(xué)閱讀這本書是一個(gè)不錯(cuò)的選擇。
學(xué)習(xí)方法
2018年出現(xiàn)了很多知識付費(fèi),掘金小冊,GitChat,極客時(shí)間,提供給了我們更多的學(xué)習(xí)選擇。同時(shí)也有更多的優(yōu)秀開源項(xiàng)目,更多公眾號,更多的技術(shù)文章如雨后春筍般涌現(xiàn)。
閱讀書籍
很多人特別喜歡讀文章,我這里不是很推薦只讀文章,很多文章都比較碎片,沒有連貫性,比如你想學(xué)習(xí)kafka,可能有很多文章能介紹一個(gè)大概,但是真正的很多細(xì)節(jié)還是需要自己看書去系統(tǒng)閱讀學(xué)習(xí)。當(dāng)然這里要值得一提的是,作為技術(shù)人員也沒有必要只看技術(shù)上的書,對于一些方法論的書籍也可以做一些了解對自身的成長有很大的幫助。我一般閱讀書籍會(huì)給自己定個(gè)目標(biāo),比如今天看哪幾章,一般來說我看書不會(huì)一段時(shí)間只看一本,而是多本一起看,然后每天只閱讀適量的,有點(diǎn)類似于以前上學(xué)一樣學(xué)習(xí)多個(gè)科目,可能自己比較適應(yīng)這種模式吧。所以希望想學(xué)技術(shù)的同學(xué),讀書永遠(yuǎn)都不能丟。
閱讀文檔
很多人學(xué)習(xí)一個(gè)東西,會(huì)走進(jìn)一個(gè)誤區(qū),會(huì)首先去網(wǎng)上搜索文章看看這個(gè)東西是什么,這個(gè)東西怎么用,文章寫得再好也只是他們個(gè)人的一些理解,但是真正作者要介紹的東西可能都在他的文檔上面了,比如阿里前段時(shí)間開源的arthas,其實(shí)只需要閱讀他的文檔,基本原理和使用方法都能了解得很清楚。
知識付費(fèi)
不得不說18年的知識付費(fèi)的確很火,很多社區(qū)都選擇了這個(gè)模式,的確我也很贊同這個(gè)模式,現(xiàn)在的技術(shù)社區(qū)垃圾文章遍地都是,我們篩選一個(gè)好文章就會(huì)浪費(fèi)我們很多時(shí)間。如果一篇文章收費(fèi)的話,那么這個(gè)作者我相信他不會(huì)舔著個(gè)大臉去寫一些沒有營養(yǎng)的文章吧。
極客時(shí)間:知識付費(fèi)做得最好的我覺得應(yīng)該是極客時(shí)間了,極客時(shí)間的作者的確都是比較有名的人,寫出來的文章自然也不會(huì)差,當(dāng)然也別什么課程都去買,對于自己來說有個(gè)度就好。畢竟買多了你真的沒有時(shí)間看,當(dāng)然也有幾個(gè)課個(gè)人認(rèn)為還是比較水,所以這里也要分辨好。
GitChat: GitChat課程我只買了張逸的《領(lǐng)域驅(qū)動(dòng)》,其余的課程對于我自己來說沒有必要。GitChat比較適合你想要學(xué)習(xí)某個(gè)東西然后你去GitChat搜索,看看是否對應(yīng)的文章,一般來說這種文章比網(wǎng)絡(luò)上搜索出來的質(zhì)量會(huì)好一點(diǎn),并且你也可以直接和作者進(jìn)行溝通。
掘金小冊: 小冊的話比較推薦老錢的redis和閃電俠的Netty,這兩個(gè)都是比較不錯(cuò)的小冊。掘金的課程比較少,作者的名氣和宣傳都比較弱。但是質(zhì)量都還可以,希望掘金加油!
閱讀源碼
讀源碼這個(gè)學(xué)習(xí)方式,相對來說比較累,畢竟沒有前人給你鋪路,需要你自己從頭開始梳理,理解。當(dāng)然讀源碼的時(shí)候也可以配合網(wǎng)絡(luò)上的一些分析文章去閱讀,有可能會(huì)事半功倍。
讀源碼也需要針對性的,不能猴子搬苞谷似的閱讀,今天喜歡這個(gè)框架閱讀這個(gè),明天喜歡那個(gè)系統(tǒng)就閱讀那個(gè),一般來說閱讀源碼需要堅(jiān)持,需要把這個(gè)框架的整體思路理清,一些巧妙的細(xì)節(jié)也需要關(guān)注,最好讀源碼的時(shí)候你能在上面打上你的中文注釋,然后用文章去記錄,去畫出作者的設(shè)計(jì)思想,比如常見的一些類圖,架構(gòu)圖等等。
如果你還在只會(huì)閱讀Spring,Mybatis的源碼的話,沒有方向去閱讀其他的那么我可以推薦一下幾個(gè)不錯(cuò)的項(xiàng)目的源碼:
1.rocketMq:如果讀kafka的scala代碼比較吃力的話,那么閱讀rocktMq代碼一定是你不二的選擇,通過rocktMq你可以了解如何去做到高性能的存儲(chǔ)等等。
2.sentinel:對服務(wù)限流,服務(wù)降級有興趣的同學(xué)可以了解這個(gè)框架的源碼,畢竟是阿里開源的,還是很不錯(cuò)的。
3.arthas,jvm-sandbox:這兩個(gè)的源碼其實(shí)都比較類似,原理大同小異,可以選擇看看arthas他是如何做到實(shí)時(shí)監(jiān)控我們服務(wù)的運(yùn)行情況,當(dāng)然你也可以學(xué)習(xí)到ASM,類加載器等知識。jvm-sandbox比較人性化里面有很多中文注釋,幫助你理解。
4.caffeiene,guava cache:對緩存如果比較感興趣的可以了解這兩個(gè)。
5.disruptor:這個(gè)源碼強(qiáng)烈推薦看,代碼來說相對于那些中間件來說少很多,也很容易理解。你可以學(xué)習(xí)到緩存行,RingBuffer等知識。
當(dāng)然我公眾號也寫過caffeine,guava,disruptor原理介紹的文章有興趣的可以自行閱讀
國外文章
很多國內(nèi)的技術(shù)文章其實(shí)都是二手的,很多東西還是需要查看一些國外的文章,尤其是大家查找什么bug的時(shí)候StackOverflower肯定是少不了的,當(dāng)然英語比較差的怎么辦呢,對于技術(shù)文章來說英語單詞都比較簡單,容易理解,如果還是不行也可以使用有道翻譯,這里谷歌不是很推薦,翻譯這種句子成中文自己測試之后還是有道翻譯比較準(zhǔn)確。
當(dāng)然國外其實(shí)也有很多技術(shù)論壇,但是平時(shí)需要閱讀的東西太多了,所以也基本不可能逛。如果有興趣的同學(xué),我覺得多逛逛其實(shí)很有用處的,畢竟技術(shù)新聞相對來說比較新一點(diǎn)。
學(xué)會(huì)寫文章
讀文章是一個(gè)吸收的過程,但是寫文章卻不是屏棄知識的過程。寫文章同樣也是一個(gè)學(xué)習(xí)的過程,當(dāng)你決定要寫一篇文章的時(shí)候(前提不是水文),你肯定會(huì)查詢大量的資料。當(dāng)你下筆的時(shí)候,你會(huì)發(fā)現(xiàn)其實(shí)這個(gè)知識還有很多是你不懂的,這個(gè)時(shí)候也會(huì)查詢大量的資料。當(dāng)你寫完之后,其他同學(xué)問你問題,或者提出質(zhì)疑的時(shí)候,也會(huì)幫助你進(jìn)行知識上的自我反思。所以學(xué)會(huì)寫文章相信對你的技術(shù)上,個(gè)人影響力上來說都會(huì)有很大的進(jìn)步。
多認(rèn)識人
今年通過寫文章認(rèn)識了很多人,越發(fā)的發(fā)現(xiàn)一個(gè)人學(xué)技術(shù)是閉塞的。為什么會(huì)有很多項(xiàng)目開源,那其實(shí)就在說明技術(shù)是交流的,而不是獨(dú)享的。
比如今年認(rèn)識了kirito,從他的影響下就會(huì)感覺天池大賽很有意思,可以從天池大賽中鍛煉很多,所以我也決定下個(gè)賽季也想去試試,哪怕是最后一名也無所謂。
自己也建立了一個(gè)技術(shù)交流微信群,在群里面能結(jié)識到很多不同的公司,很多不同的地域的人。也能和他們討論不同的技術(shù)方案或者技術(shù)細(xì)節(jié),對于一些不懂的問題,提問出來大家也都愿意去解答,當(dāng)然大家遇到一些比較好的文章也會(huì)進(jìn)行交流分享,當(dāng)然能做一些行業(yè)內(nèi)的閑聊也是很不錯(cuò)的,當(dāng)然如果你想加入可以關(guān)注我的公眾號,然后加我好友拉你進(jìn)群。
2019的規(guī)劃
2019已經(jīng)來臨,想必很多人都做了自己的技術(shù)上的規(guī)劃吧。這里也給自己立下幾個(gè)flag:
盡量春節(jié)之后文章每周一篇,每月4篇。
把2018年沒有讀完的書給讀完。
參加一次天池大賽。
結(jié)交更多志同道合的朋友。
希望大家都能做一個(gè)矢志前行的逐夢人,志之所趨,窮山距海,不可阻擋!
如果大家覺得這篇文章對你有幫助,你的關(guān)注和轉(zhuǎn)發(fā)是對我最大的支持,O(∩_∩)O:
