對于 分布式系統,我還是抱有敬畏之心的,因為其內容過于龐大;我在學習基礎編程的時候走過一個最大的彎路就是過度追求技術而忽視了基礎編碼能力,當時在學習springboot的時候,覺得那些新內容都是那么新奇高大上,就一直往后學,忽視了在此之前匆匆而過的mysql和ssm階段—框架開發的基礎能力,我在學完springboot后發現自己竟然看著idea寫不出代碼的時候才意識到這點,這才又會回頭去夯實基礎后又重新學歷一遍springboot,后來每次想起那段時間都很心悸,就算剛看了框架技術,一低頭發現自己是在空中樓閣上搖搖欲墜,基礎開發一點都不熟練,很可怕的事情,因為這意味著無論是你之前學的基礎和你現在學的框架知識,都是浪費時間,因為再過段時間你就會忘得一干二凈,等于是自廢武功從頭再來
所以后面的學習我都是督促自己不要太過追逐過高的技術知識,那只能是浪費時間,而現在網上的培訓機構大肆鼓吹分布式的知識,乃至是很多公司的面試,也會去問應屆生這方面的問題;
在我看來,對于應屆生微服務確實是要掌握,因為這是中大型公司都已經采用的項目服務組成形式,要進行開發至少必須會用(會用也就順理成章得懂),但是分布式,這是為了應對項目的體量逐步增大而演進出的一種集群形式,其每個內容實現都是為了應對某個實際場景的問題,更多是一個不斷演進實踐的過程,同時銀彈問題也在分布式領域顯著體現—沒有一個能兼顧所有需求的完美方案,即CAP理論所談,同時單體架構的各種經驗原則也在分布式領域不再生效,比如原來的單事務到分布式中的不同分布式事務實現,這點就像是現實世界的物理法在閃電俠的神速力領域不適用,其完全是另一套物理法則;
對于應屆生踏上工作前的一個正確的成長之路應該是他對于單體架構的所有會使用到的開發框架及組件,各種中間件的使用及原理,常見業務優化方案了如指掌,并帶著這些牢靠的基礎去從分布式的出現背景開始,了解其大致演進過程和主流方案理論,入職后再在實踐中對其進行落地實現