摘要:后端好書閱讀與推薦這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。高級程序設(shè)計高級程序設(shè)計第版豆瓣有人可能會有疑問,后端為啥要學(xué)呢其實(shí)就是為了更好的使用做鋪墊。
后端好書閱讀與推薦
這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。今天突然想要做個決定:每天至少花1-3小時用來看書。這里我準(zhǔn)備把這兩年來看的書挑出好的做一個簡要總結(jié)、即將要看的書做一個計劃,以便整理成書單留給自己學(xué)習(xí),也順便推薦給需要的童鞋。
ps:本書單針對同一大類的知識點(diǎn)大致遵循著循序漸進(jìn),越學(xué)越深入越具體的順序。
JavaScript高級程序設(shè)計JavaScript高級程序設(shè)計(第3版) (豆瓣) https://book.douban.com/subje...
有人可能會有疑問,后端為啥要學(xué)JavaScript呢?其實(shí)就是為了更好的使用node.js做鋪墊。這本書說是高級程序設(shè)計,其實(shí)還是比較基礎(chǔ),但是難能可貴的是它幾乎包含了所有的基礎(chǔ)知識,而且對基礎(chǔ)知識的講解比較深入,至少看了過后就不會犯那些常見的錯誤(比如for循環(huán)綁定變量i,這個問題幾乎天天有人問(⊙﹏⊙)),能知其然、知其所以然,而且講了許多最佳實(shí)踐,所以還真的是高級。對于后端的同學(xué)可以只看基礎(chǔ)部分,不看瀏覽器相關(guān)的部分(當(dāng)然時間多也可以了解)。
本書有很多值得學(xué)習(xí)的地方,比如
建議始終語句結(jié)尾要加分號,分支始終要加花括號,這樣雖然多了些小麻煩,但能省去很多大麻煩:提高解析器性能,避免壓縮錯誤,代碼易讀性可維護(hù)性更好。
推薦使用 === 和 !== 而不是用 == 和 != ,這樣才能保證代碼中數(shù)據(jù)的完整性,避免歧義。
with語句不僅容易造成混淆,還會影響性能,不建議使用。
函數(shù)按值傳參,沒有按引用傳參,基本類型就不用說了,即使是引用類型參數(shù)a,函數(shù)也并不能修改a,使得a指向堆里面的另一個對象,所以也是按值傳遞。
函數(shù)傳參之時,使用對象字面量{}來封裝大量的可選參數(shù),比直接命名多個參數(shù)更靈活。
函數(shù)聲明才有提升,函數(shù)表達(dá)式不會提升。
apply 和 call 的作用是擴(kuò)充函數(shù)賴以運(yùn)行的作用域,使得函數(shù)和對象(調(diào)用者)解耦,從而可復(fù)用。
構(gòu)造函數(shù)與其相應(yīng)的原型對象相互有指針指向,重寫函數(shù)原型對象會切斷已有對象與現(xiàn)有原型的聯(lián)系。
創(chuàng)建自定義類型時,構(gòu)造函數(shù)放置實(shí)例屬性,原型中放置共享的方法和屬性,這樣既保證了共享性,節(jié)約內(nèi)存,也保證了私有性,達(dá)到封裝的目的。
利用惰性載入來提高代碼執(zhí)行效率。
將一個函數(shù)中多次用到的全局對象保存為局部變量可以減少查詢開銷。
變量和數(shù)組訪問時O(1),對象屬性訪問時O(n)。
減值循環(huán)優(yōu)于加值循環(huán),如果是大數(shù)據(jù)集,甚至可以展開循環(huán)來提升性能。
當(dāng)然這本書也有點(diǎn)問題,主要就是時效性,本書主要按照ECMAScript 3 來講解,最多提到了ECMAScript 5 但是現(xiàn)在都有ECMAScript 8 了,所以在看相關(guān)部分的時候,要注意查看最新的特性是否已經(jīng)解決了某些問題(比如es8提出了Object.values 來直接獲得對象的所有值而不需要先Object.keys,再來按key遍歷),對本書要有所取舍(by the way ,幾乎所有技術(shù)書籍,甚至我這篇文章,遲早都會有時效性問題,畢竟我們處于一個變化巨大的時代,但這并不影響它們成為經(jīng)典,只要我們有所取舍,取其神,去其形即可)。
深入淺出Node.js深入淺出Node.js (豆瓣) https://book.douban.com/subje...
和一般的講node的書不同,這本書不是簡單的講一講怎么使用npm,用一用express或者連一連mysql這樣的API文檔式書籍,而是真正的深入淺出,本書首先介紹了node的來源,用處,讓我們知道它存在的意義,然后依次介紹了模塊機(jī)制,異步IO的實(shí)現(xiàn),異步編程的解決方案,內(nèi)存控制,buffer,網(wǎng)絡(luò)編程,web應(yīng)用,進(jìn)程管理,測試,產(chǎn)品化。
本書的優(yōu)點(diǎn)相當(dāng)多:
對于異步IO的闡釋相當(dāng)深入,首先闡釋了node是單線程的,能避免死鎖,同步等問題,而其異步IO在內(nèi)核中本質(zhì)上是用了線程池,也能達(dá)到充分使用多核的效果,提升吞吐量。
對于異步編程這個痛點(diǎn)作者提到了發(fā)布訂閱模式,Promise,以及各種流程庫,更贊的是作者自己還寫了個庫EventProxy,我自己用過,可以說是非常好使的。這一章幫助我們很好的解決了深度嵌套的問題。
內(nèi)存控制講到了分代垃圾回收機(jī)制,V8把內(nèi)存分為新生代和老生代,新生代采用空間劃分(from、to)和復(fù)制機(jī)制來回收非存活對象,若新生代對象在多次復(fù)制后依然存活,則移動至老生代,老生代采用標(biāo)記清除和標(biāo)記整理的做法。這種針對不同代使用不同算法的做法能夠到達(dá)效率最優(yōu)的效果。同Java一樣,垃圾回收時也會stop the world,所以要盡量避免(雖然老生代采用了增量標(biāo)記、延遲清理、增量式整理來減少停頓時間)低效或者頻繁的垃圾回收,比如要主動釋放變量,減少使用閉包等。
Buffer可以解決數(shù)據(jù)拼接時的中文亂碼問題;直接使用buffer來進(jìn)行IO,網(wǎng)絡(luò)傳輸可以提高吞吐量。
采用多進(jìn)程來最大化利用內(nèi)核的資源,句柄傳遞達(dá)到多進(jìn)程監(jiān)聽同一端口的目的。
把靜態(tài)資源交給nginx等服務(wù)器或者CDN來處理,能提高性能。
本書的不足之處可能在于組織上吧,感覺有點(diǎn)頭重腳輕,比如對于初學(xué)者來說,一般想先看看node如何做web,或者做網(wǎng)絡(luò)服務(wù),體驗(yàn)點(diǎn)成就感,然后才是學(xué)習(xí)其實(shí)現(xiàn)原理,而本書反了過來;而對于進(jìn)階者來說,后面的web、網(wǎng)絡(luò)服務(wù)部分似乎淺的有點(diǎn)用不上,有點(diǎn)雞肋(⊙﹏⊙)。但是我們可以根據(jù)自己的需要有選擇的進(jìn)行章節(jié)閱讀,就能避免這個問題。
Java編程思想Java編程思想 (第4版) (豆瓣) https://book.douban.com/subje...
本書可謂是經(jīng)典了,它不是基礎(chǔ)知識面面俱到的入門書籍(Java核心技術(shù)·卷1:基礎(chǔ)知識(原書第9版) (豆瓣),這本書就講全了基礎(chǔ)知識,而且不是淺嘗輒止,還進(jìn)行了深入探討,所以也推薦),而真的是如翻譯的書名一樣,體現(xiàn)了Java的思想,是Java中一些精要的集合,我們不必按照作者的順序去閱讀,可以根據(jù)需要選擇性的閱讀。本書還融合了許多設(shè)計模式,需要我們?nèi)ジ形蚱渲械乃枷搿?/p>
這本書比較精彩的部分:
把面向?qū)ο缶幊倘藛T分為兩類:“類創(chuàng)建者”(創(chuàng)建新數(shù)據(jù)類型的人)以及“客戶程序員”(在自己的應(yīng)用程序中采用現(xiàn)成數(shù)據(jù)類型的人),前者負(fù)責(zé)構(gòu)建類,只開放必要的東西而隱藏其他細(xì)節(jié)(開放封閉原則),后者負(fù)責(zé)搜集這些類來完成特定任務(wù)。
需要采取一種最適合自己需要(以及習(xí)慣)的方法來制定計劃。不管制訂出的計劃有多么小,但與完全沒有計劃相比,一些形式的計劃會極大改善你的項(xiàng)目。
首次創(chuàng)建對象或者訪問該類的靜態(tài)字段、方法時會初始化這個類,static初始化僅在第一次運(yùn)行,其它字段每次創(chuàng)建對象都會運(yùn)行,我這里順便總結(jié)一下對象的初始化過程:
(1) 主類的每一個父類由高到低按順序初始化靜態(tài)成員及其靜態(tài)初始化塊,無論靜態(tài)成員是否為private。 (2) 主類靜態(tài)成員的初始化,靜態(tài)初始化塊的初始化。 //創(chuàng)建實(shí)例時,如果不創(chuàng)建實(shí)例,則后面的不執(zhí)行 (3) 主類的父類由高到低進(jìn)行默認(rèn)構(gòu)造方法的調(diào)用。在調(diào)用每一個父類的默認(rèn)構(gòu)造方法前,先進(jìn)行對此父類進(jìn)行非靜態(tài)成員, 非靜態(tài)初始化塊的初始化。 (4) 主類非靜態(tài)成員的初始化,非靜態(tài)初始化塊的初始化。 (5) 調(diào)用主類的構(gòu)造方法。
final的引用類型變量本身是不可變得,但是其引用的對象是可變的(數(shù)組也適用這個規(guī)則),所以不要期望能夠一步達(dá)到一個常數(shù)對象的效果
方法代碼少或者想禁止覆蓋時使用final方法能夠得到一定程度的性能提升。
將一個方法調(diào)用同一個方法主體連接到一起就稱為“綁定”(Binding)。若在程序運(yùn)行以前執(zhí)行綁定(由編譯器和鏈接程序,如果有的話),就叫作“早期綁定”,“后期綁定”,它意味著綁定在運(yùn)行期間進(jìn)行,以對象的類型為基礎(chǔ)。后期綁定也叫作“動態(tài)綁定”或“運(yùn)行期綁定”。Java 中綁定的所有方法都采用后期綁定技術(shù),除非一個方法已被聲明成 final。這意味著我們通常不必決定是否應(yīng)進(jìn)行后期綁定——它是自動發(fā)生的。
Java 包含了一個名為 Throwable 的類,它對可以作為違例“擲”出的所有東西進(jìn)行了描述。Throwable 對象有兩種常規(guī)類型(亦即“從 Throwable 繼承”)。其中,Error 代表編譯期和系統(tǒng)錯誤,我們一般不必特意捕獲它們(除在特殊情況以外)。Exception 是可以從任何標(biāo)準(zhǔn) Java 庫的類方法中“擲”出的基本類型。此外,它們亦可從我們自己的方法以及運(yùn)行期偶發(fā)事件中“擲”出。
對于作為程序一部分的每個類,它們都有一個 Class 對象。換言之,每次寫一個新類時,同時也會創(chuàng)建一個Class 對象(更恰當(dāng)?shù)卣f,是保存在一個完全同名的.class 文件中)。在運(yùn)行期,一旦我們想生成那個類的一個對象,用于執(zhí)行程序的 Java 虛擬機(jī)(JVM)首先就會檢查那個類型的 Class 對象是否已經(jīng)載入。若尚未載入,JVM 就會查找同名的.class 文件,并將其載入。
如上所述,本書也有時效性問題,所以要配合最新的Java8甚至Java9來查閱;同時,本書的代碼實(shí)在是太多,有些可以忽略不看,并不影響理解。
本書作為一本整體大致地把握J(rèn)ava的書籍是合適的,但是Java實(shí)在是太大了,要真正細(xì)致的掌握每一個知識點(diǎn)比如多線程、網(wǎng)絡(luò)編程、Spring,還得看專門的書,比如下面要講的這本。
Java并發(fā)編程實(shí)戰(zhàn) (豆瓣) https://book.douban.com/subje...
本書從并發(fā)性和安全性的基本概念入手逐步深入,講到用類庫構(gòu)建線程安全類,然后講到了如何利用多線程來提升吞吐量,Java中的一些現(xiàn)有多線程框架的使用,性能測試,最后講了顯示鎖,原子變量等進(jìn)階知識點(diǎn)。基本囊括了能用到的多線程所有知識點(diǎn)。
本書亮點(diǎn):
線程安全性定義:當(dāng)多個線程訪問某個類時,這個類總是能表現(xiàn)出正確的行為。線程安全類自己封裝了必要的同步機(jī)制,調(diào)用者無需再進(jìn)一步采取同步措施。無狀態(tài)的對象一定是安全的。
并發(fā)編程由于不恰當(dāng)?shù)膱?zhí)行時序造成錯誤叫做競態(tài)條件,最常見的就是先檢查后執(zhí)行的操作,比如i++就是典型的例子,
無狀態(tài)的類添加一個狀態(tài),若該狀態(tài)線程安全,則這個類也安全,但是若添加了多個狀態(tài),僅僅是每個狀態(tài)線程安全還不夠,還需要保證單個操作中同時更新所有狀態(tài)(如果每個狀態(tài)都是獨(dú)立的就不必)
內(nèi)置鎖是可重入的,這意味著獲取鎖的粒度是線程而不是調(diào)用,也就是說鎖和一個線程對應(yīng)。
加鎖機(jī)制可以保證可見性和原子性,而volatile只能保證可見性
ConcurrentHashMap采用了分段加鎖的機(jī)制來實(shí)現(xiàn)更大程度的共享,任意數(shù)量讀線程可以訪問Map,一定數(shù)量的寫線程可以并行修改同一個Map,一般情況只有在需要獨(dú)占訪問Map時才應(yīng)該放棄使用ConcurrentHashMap。
使用tryLock來替換會永遠(yuǎn)等待的內(nèi)置鎖,這樣就能消除死鎖發(fā)生的可能性。
確保線程在獲取多個鎖時才用一致的順序,也能避免一些死鎖。
不應(yīng)當(dāng)依賴于線程優(yōu)先級來實(shí)現(xiàn)業(yè)務(wù)邏輯,因?yàn)檫@與平臺有關(guān),不能得到保證。
避免不成熟的優(yōu)化,首先使程序正確,必要時再提高運(yùn)行速度-如果嫌它不夠快的話。
使用并發(fā)安全的容器類、讀寫鎖、不可變對象、原子變量等來替換獨(dú)占鎖,提高吞吐量。
使用顯示鎖時,要在finally中釋放,因?yàn)樗粫駜?nèi)置鎖一樣自動釋放。
一般情況下公平鎖(先到先得)會比非公平鎖的性能低得多(數(shù)倍,數(shù)十倍),不必要的話不要用公平鎖,非公平鎖在統(tǒng)計意義上是公平的,就夠用了,而且ReentrantLock 默認(rèn)就是非公平的,內(nèi)置鎖也是。
如上所述,本書時效性也有問題,主要用的是Java5,6,所以也要注意查閱最新文檔對比(實(shí)戰(zhàn)Java高并發(fā)程序設(shè)計 (豆瓣) https://book.douban.com/subje... 這本書在時效性方面就要強(qiáng)一些,講到Java8了,而且也比較通俗易懂,推薦~),另外,Swing那一段可以跳過不看了。
Java Web高級編程Java Web高級編程 (豆瓣) https://book.douban.com/subje...
這本書的強(qiáng)大之處就在于一本書幾乎包攬了java web 所有的主流技術(shù),所謂此書在手,Java我有(⊙﹏⊙)......開個玩笑,本書非常大非常厚,所以也非常全,所以我也并沒有看完,但是我看過的部分真的讓我認(rèn)為這是一本好書。本書從servlet原理講起,講到j(luò)sp,一步步講到Spring,過度很自然,讓人明白Spring存在的理由,然后講了Hibernate(雖然我沒看),最后講了Spring security,可謂一氣呵成,同時又不失條理,系統(tǒng)性很強(qiáng),看完之后對于Java web 應(yīng)該能有個整體的把握。
本書亮點(diǎn):
多使用jdk7的try with source ,它會幫助自動釋放資源,減少錯誤。
Java EE 一般采用子女優(yōu)先類加載方式,Java SE 一般采用雙親優(yōu)先類加載方式。
Servlet是所有web應(yīng)用程序核心類,它是唯一即可以直接處理和響應(yīng)用戶請求又可以將處理工作委托給其他部分的類。java EE 7 唯一支持的Servlet協(xié)議就是http。
表示層與業(yè)務(wù)層應(yīng)該分開,所以jsp中不應(yīng)使用Java代碼,而且jsp表達(dá)式EL本身已足夠強(qiáng)大。
Controller依賴于Service,Service依賴于Repository,Repository依賴于數(shù)據(jù)庫,這四者就像食物鏈中的肉食者,雜食者,植物,大自然。不同于傳統(tǒng)MVC架構(gòu),這種架構(gòu)中Service才是真正的業(yè)務(wù)邏輯,Controller是負(fù)責(zé)不同的頁面邏輯,比如web頁面和移動應(yīng)用的API,這種架構(gòu)能夠復(fù)用真正的業(yè)務(wù)邏輯,優(yōu)于MVC。
我感覺這本書唯一的缺點(diǎn)就是太厚了吧:-D,會嚇跑許多人(包括我)。
Head First 設(shè)計模式Head First 設(shè)計模式(中文版) (豆瓣) https://book.douban.com/subje...
這本書最大的特點(diǎn)就是不拘一格講知識,他不會板起臉來告訴你這個叫觀察者模式,那個叫裝飾器模式......而是通過一些通俗易懂的例子(會飛會叫的鴨子,氣象站檢測應(yīng)用的建設(shè))和豐富的圖例、游戲(運(yùn)用了認(rèn)知科學(xué)的方法)來說明不同的設(shè)計模式的含義、用途、優(yōu)點(diǎn)和缺點(diǎn),使人印象深刻,容易理解和記憶。
本書展示了很多有意義的設(shè)計原則,比如:
封裝變化,即找出應(yīng)用中的變化之處,把他們獨(dú)立出來,不要和不變的代碼混在一起。所以設(shè)計系統(tǒng)之時就要開始考慮可能變化的東西把它隔離出來,并且在做的過程中可能會需要重構(gòu),畢竟唯一不變的就是變化。
針對接口編程,而不是實(shí)現(xiàn)編程。也就是變量的聲明應(yīng)該是超類型,這樣執(zhí)行時就會根據(jù)實(shí)際情況執(zhí)行到真正的行為,而不必綁死在超類的行為上。
多用組合,少用繼承。組合比繼承具有更大的靈活性和更穩(wěn)定的結(jié)構(gòu),只有當(dāng)確實(shí)是 is-a 的時候才應(yīng)該使用繼承
......
對于設(shè)計模式初學(xué)者來說,這本書似乎比四人組的設(shè)計模式更容易接受,因?yàn)樗皇悄敲磭?yán)肅,不是那么學(xué)究,當(dāng)然如果希望嚴(yán)肅的學(xué)習(xí),或者本身水平較高,那還是看四人組的比較好~
程序員修煉之道程序員修煉之道 (豆瓣) https://book.douban.com/subje...
本書可以說是一本學(xué)習(xí)方法論,或者工作方法論的書,再高一點(diǎn)可以說是一本哲學(xué)的書。本書原名The Practical Programmer,亦即注重實(shí)效的程序員,全書圍繞注重實(shí)效展開討論,包括注重實(shí)效的哲學(xué)(負(fù)責(zé),變化,權(quán)衡,管理知識,交流)、途徑(避免重復(fù),隨時記錄,估計)、工具(文本,shell,游戲,源碼控制)、偏執(zhí)或者說講究(規(guī)范合約、斷言、異常使用)等等等等。
本書從推薦序開始就相當(dāng)精彩:
如果僅僅以普通的瀏覽方式閱讀就會很簡單的陷入“啊,這個我知道啊,啊,這個我了解啊,嗯,這個以后要注意”的套路中。這樣的閱讀方式只會強(qiáng)化原有的自己知道的知識,而不大可能把“以后需要注意”這部分全部內(nèi)化。所以自負(fù)的讀者讀完必然覺得“哈哈,高手不過如此,大部分我也知道嘛”,而不是“是的,我還有不少要注意”。這一段可謂是抓住了我的一個大毛病,我以前看完書老是覺得啥都懂了,可是真開始做還是一臉懵逼,這就是為啥我們上學(xué)都有作業(yè)做的原因,體會很深刻啊。
定期為你的知識資產(chǎn)投資,比如每年學(xué)習(xí)一門新的語言來拓寬思維,每季度讀一本書(是不是有點(diǎn)少:-D)。
不要重復(fù)自己,重復(fù)是維護(hù)的災(zāi)難(因?yàn)槟憧赡芨居洸蛔∧睦镞€用了這個東西)。
估算,以避免意外。學(xué)會估算,并發(fā)展到對事物的數(shù)量級有直覺的程度,就能更好的確定任務(wù)可行性。
按合約設(shè)計,這樣才能明確責(zé)任和權(quán)利,解決與人打交道的問題。說實(shí)話,做了兩個小項(xiàng)目我就真的體會到了這一點(diǎn)的重要性,沒有文檔,沒有合約,只會導(dǎo)致進(jìn)度拖拉,到處甩鍋,軍心不穩(wěn)。
分析工作流,以改善并發(fā)性,這樣確定哪些任務(wù)可以并行,哪些不可以,從而更合理的安排,加快進(jìn)度。當(dāng)然這是屬于較大的任務(wù)的處理方法,小任務(wù)有這些分析的時間我都做完了。
本書讀起來可謂非常暢快,但是要落實(shí)真的是不容易,而且我覺得應(yīng)該反復(fù)讀,因?yàn)槊吭黾右恍┕ぷ鹘?jīng)驗(yàn)就會遇到一些問題,對書里面提到的要點(diǎn)也就感悟更深,從而能更好的解決問題。
架構(gòu)即未來架構(gòu)即未來:現(xiàn)代企業(yè)可擴(kuò)展的Web架構(gòu)、流程和組織(原書第2版) (豆瓣) https://book.douban.com/subje...
這本書乍一聽可能會覺得它是講的架構(gòu)是諸如MySQL 讀寫分離,redis cluster,CDN,負(fù)載均衡等架構(gòu)問題,看完緒論和第一章才發(fā)現(xiàn)不是那么回事(⊙﹏⊙),原來它前面很大的篇幅都在講人事上的架構(gòu),后面才是技術(shù)上的架構(gòu),會不會有種受騙的感覺?其實(shí)不必,這本書相當(dāng)于是站在了更高的角度來看問題,畢竟要把技術(shù)上的事做好做大都離不開強(qiáng)大的團(tuán)隊(duì),離不開完善的人事管理。
結(jié)構(gòu)上本書分4部分:團(tuán)隊(duì)的組織、管理和領(lǐng)導(dǎo),構(gòu)建可擴(kuò)展技術(shù)平臺的方案與危機(jī)管理,可擴(kuò)展的架構(gòu)方案,新興技術(shù)如大數(shù)據(jù)云計算等的架構(gòu)。
我感覺比較精彩的一些點(diǎn)是:
如果汽車沒有油量表和速度表,大多數(shù)人都不會考慮開這種車,同理,系統(tǒng)也需要一系列指標(biāo)幫助我們達(dá)到希望的結(jié)果。
管理是推,領(lǐng)導(dǎo)是拉。領(lǐng)導(dǎo)設(shè)定目的地和路線圖,管理設(shè)法達(dá)到目的地。
責(zé)任不清,則意味著有些事沒人去做,或者一件事被多個人做了,直接后果就是進(jìn)度拖拉,效率低下。當(dāng)你在定義一個組織的角色和責(zé)任時,就是在設(shè)計一幅權(quán)力下放的藍(lán)圖。
對團(tuán)隊(duì)而言,少于6人就沒必要多帶帶成為一個團(tuán)隊(duì),超過15人經(jīng)理管理會產(chǎn)生困難,成員之間溝通也會更困難,所以一個團(tuán)隊(duì)的人數(shù)要根據(jù)經(jīng)理的能力,人員熟悉程度,要實(shí)現(xiàn)的目標(biāo)來共同制定。
總體而言,相信自己被賦予權(quán)力的個人會比那些相信自己只是在執(zhí)行命令的人會有更高的效率,在我理解來就是主觀能動性更高,有了主人翁意識自然就會盡力去把事情做好,而非僅僅是打工仔:-D。
架構(gòu)原則:監(jiān)控設(shè)計能使我們進(jìn)行自我修復(fù)自我診斷,在用戶發(fā)現(xiàn)問題前就解決問題;多活數(shù)據(jù)中心可以達(dá)到負(fù)載均衡和容災(zāi)的目的;使用成熟的技術(shù),謹(jǐn)慎的在線上系統(tǒng)采用新技術(shù),因?yàn)橥ǔS休^高的故障率,我們一般可以自己先做許多的試用,再決定是否使用;水平擴(kuò)展而非垂直擴(kuò)展,亦即系統(tǒng)擴(kuò)展性依賴于更多的機(jī)器而非更強(qiáng)大的機(jī)器。
......
2017.8.3 后記7.26 就開始著手寫了,但是為了能更好的總結(jié)這些書,我又把它們?nèi)窟^了一遍然后才寫,直到 8.3 才寫完,希望能起到一些作用。后面我還會持續(xù)更新更多的好書,會涉及到Linux、Jvm、Redis、MySQL、Docker等,歡迎拍磚交流,我的主頁 - Mageek`s Wonderland http://mageek.cn/archives/33/
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67532.html
摘要:可以通過大數(shù)據(jù)生態(tài)的一系列工具生態(tài)來解決大數(shù)據(jù)問題數(shù)據(jù)分片主要有兩種方式哈希和范圍。哈希的問題是范圍查詢支持不佳,范圍的問題是可能冷熱數(shù)據(jù)不均。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續(xù))后端好書閱讀與推薦(續(xù)二)后端好書閱讀與推薦(續(xù)三)后端好書閱讀與推薦(續(xù)四)后端好書閱讀與推薦(續(xù)五)后端好書閱讀與推薦(續(xù)六) Elasticsearch權(quán)威指南 El...
摘要:可以通過大數(shù)據(jù)生態(tài)的一系列工具生態(tài)來解決大數(shù)據(jù)問題數(shù)據(jù)分片主要有兩種方式哈希和范圍。哈希的問題是范圍查詢支持不佳,范圍的問題是可能冷熱數(shù)據(jù)不均。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續(xù))后端好書閱讀與推薦(續(xù)二)后端好書閱讀與推薦(續(xù)三)后端好書閱讀與推薦(續(xù)四)后端好書閱讀與推薦(續(xù)五)后端好書閱讀與推薦(續(xù)六) Elasticsearch權(quán)威指南 El...
摘要:持續(xù)交付持續(xù)交付豆瓣微服務(wù)離不開,而核心就是幾點(diǎn)自動化連續(xù)小范圍快速可靠。敏捷革命敏捷革命提升個人創(chuàng)造力與企業(yè)效率的全新協(xié)作模式豆瓣實(shí)際上正是敏捷開發(fā)的最佳實(shí)踐,有了前面的鋪墊,我們可以通過這本書我們來真正了解敏捷開發(fā)的全貌。 后端好書閱讀與推薦系列文章: 后端好書閱讀與推薦后端好書閱讀與推薦(續(xù))后端好書閱讀與推薦(續(xù)二)后端好書閱讀與推薦(續(xù)三)后端好書閱讀與推薦(續(xù)四)后端好書...
摘要:后端好書閱讀與推薦這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。高級程序設(shè)計高級程序設(shè)計第版豆瓣有人可能會有疑問,后端為啥要學(xué)呢其實(shí)就是為了更好的使用做鋪墊。 后端好書閱讀與推薦 這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。今天突然想要做個決定:每天至少花1-3小時用來看書。這里我準(zhǔn)備把這...
閱讀 4014·2023-04-26 02:13
閱讀 2256·2021-11-08 13:13
閱讀 2743·2021-10-11 10:59
閱讀 1742·2021-09-03 00:23
閱讀 1314·2019-08-30 15:53
閱讀 2290·2019-08-28 18:22
閱讀 3060·2019-08-26 10:45
閱讀 743·2019-08-23 17:58