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