工作一段時(shí)間會(huì)遇到一個(gè)瓶頸期,會(huì)考慮未來(lái)1到2年的發(fā)展和方向問題,之前的方式是通過不停的學(xué)習(xí)新的框架或者解決方案來(lái)調(diào)整。
比如寫服務(wù)端代碼期間會(huì)去學(xué)習(xí)TDD,DDD,CQRS代碼邏輯層的東西,學(xué)前端框架等度過第一個(gè)階段。
后來(lái)會(huì)去學(xué)習(xí)大型互聯(lián)網(wǎng)架構(gòu)的解決方案,什么負(fù)載均衡,分庫(kù)分表,數(shù)據(jù)一致性的解決方案,并發(fā)的處理及解決策略,降級(jí),靜態(tài)化,緩存一致性,異步MQ。
這些了解大部分處于填鴨式學(xué)習(xí),比如只是去了解市面上常見的中間件及軟件的使用,并沒有涉及到底層原理或者實(shí)現(xiàn)方式上,換句話說知道的只是名詞,還未深入,如果你對(duì)外人得意的說我會(huì)這么多東西之后,人家一句:你知道他的原理嗎?為什么這樣用?為什么不用別的代替?
在了解了市面上常見的解決方案或者中間件之后,下一階段就是進(jìn)入了原理了解期,這一期讓自己深層次提升的有效方式是多問自己一句:為什么?然后把這個(gè)答案深刻理解之后印在腦子里,不要滿足于我好像知道大概。
這一階段的目的主要是深入去了解一些常見或是先進(jìn)的中間件的實(shí)現(xiàn)原理,當(dāng)然牛X的可以看其中的源碼。
既然上面中間件主要應(yīng)用場(chǎng)景是分布式場(chǎng)景。于是問一句:什么是分布式?
我印象看過wiki上的定義,具體的內(nèi)容忘記了,大意是通過將任務(wù)單元分散在多個(gè)計(jì)算機(jī)節(jié)點(diǎn)上,節(jié)點(diǎn)之間通過消息通信。
所以可以歸納起來(lái)市面上常見的分布式場(chǎng)景:分布式計(jì)算,分布式存儲(chǔ),分布式通信。這樣我們就可以歸納出一條去學(xué)習(xí)分布式基礎(chǔ)的腦圖,去了解內(nèi)在原理,不滿足于知道的程度。