最近買的技術書比較多,一本還沒看完又來一本,前端、后端都涉足一些,可惜都不深,這點需要改進,持續(xù)一段時間思考一個方面的問題這樣的效果應該會好點。具體這本書已經(jīng)忘了當時從哪兒看到的介紹,發(fā)現(xiàn)一堆業(yè)界名人的推薦,到豆瓣看了看目錄和評論,當然三百來頁也是個重要指標(估計一到兩周也就看完了),于是就下單買了。閑話不扯,談談這本書的內(nèi)容和我的感想吧。
全書整體脈絡很清楚,先介紹了分布式系統(tǒng),接著以大型網(wǎng)站及架構(gòu)演進過程中不同時段遇到的挑戰(zhàn)引出中間件的話題,之后簡單介紹各類中間件中用到的通用技術(如垃圾回收、內(nèi)存布局、反射、網(wǎng)絡通信),隨之以大型網(wǎng)站架構(gòu)中各層如服務層、數(shù)據(jù)訪問層、消息層、軟負載等分章論述其中遇到的挑戰(zhàn)和應對策略。
整本書翻完之后首先的感覺是作者已經(jīng)建構(gòu)了關于這個領域成體系的知識,能夠僅通過文字加最簡單的框圖將“架構(gòu)”這種話題娓娓道來內(nèi)功應該不淺(好吧,此類文章夸到此時該批評出場了)。像豆瓣里的一些人評論的那樣,很多東西感覺講的不深入,話題起了個頭,撩起興趣來了,咔,結(jié)束了。讓看官們把脫下的褲子就這么草草穿上當然會有很多不甘心,可以理解。此現(xiàn)象我覺得是針對的作者群事先沒說清,如果你是Java領域的初學者,或者有過幾年開發(fā)經(jīng)驗,但常接觸的只是java.lang.util下面的某幾個類,知道個ssh,參與了幾個MIS系統(tǒng),開發(fā)的功能也就是些增刪改查,看起來自然吃力。此前只知道how,很少想why,遇到問題只知道google甚至只知道baidu,一頁一頁翻過去,用別人類似場景中解決方案逐個試錯,試出一個有效的來就覺得大功告成。遇事沒有由點及線再及面的深入思考、理解的習慣,書中的場景自然陌生,問題來了卻只給了個文字性的解決方案描述當然不適應,但一本三百多頁的書要把架構(gòu)的細節(jié)面面俱到講清楚可能嗎?“talk is cheap show me the code”,阿里系在java領域開源了那么多東西,直接去看人家的源碼吧。
建議曾經(jīng)接觸過或思考過分布式應用的Java工程師看看,畢竟這樣的人能夠站到相似的背景線上,與作者在書中的對話更容易一些。但淘寶面對的問題實際上已經(jīng)不是大量開源組件所能直接解決的,所以才需要他們深入源碼細節(jié)、消化之后再創(chuàng)造。比如一個信息路由,我所接觸的只是需要分機器路由就OK了,但他們甚至需要考慮到機房、機架這種粒度。畢竟這本書里面涉及了眾多概念:阿姆達爾定律、BIO NIO AIO、應用服務化 服務治理、消息中間件、數(shù)據(jù)垂直拆分水平拆分、CAP BASE Paxos、讀寫分離(Master Slave)。很多地方是順著一條主線的思路講的時候引出來的,所以只做簡單介紹,但于我來說如果此前陌生就會記下來,另外花時間了解。
一句話,別指望這是一本架構(gòu)方面的大全。能夠給出的是別人面對問題、解決問題的思路,剩下的還是交由你自己解決~