为什么大部分程序猿成为不了架构师?附架构师进阶路线图
總結下,用了8年的時間,一步一步走到了現在,中途也有了解過其他的技術,也想過要轉其他的語言.
但是最后還是堅持下來走Java這條路,希望這份經歷可以幫助到后來的人.
希望對大家也有幫助,整理了進階路線還有自己整理的資料跟視頻.(文末之前獲取如果覺得內容對你有幫助,麻煩、點贊、關注、分享三連)
(ps:下面的圖是進階體系圖可以參考下,里面有些備注是processon跟引用的鏈接,圖片也展示不出來,只能麻煩大家去文末獲取了,請看下方內容)
導讀:
1、架構師應不應該寫代碼
2、為什么別人的系統總是那么爛
3、成為架構師最困難的門檻是什么?
4、如何更高效的學習?
1.架構師應不應該寫代碼
在我看來,普通的開發者跟架構師的區別在于,普通的開發者更偏向于遇到問題去解決問題,架構師需要預見這些問題,在高并發大流量的場景下,系統出會出現哪有問題,怎么避免產生這種問題,以及產生了這種問題該怎么辦。
大部分情況下作為架構師并不需要攬下“核心模塊”開發這種工作,畢竟能調配的時間太零散了,效率難以保證,很多人在專注的情況下做的好很多,所以只需要保持大局觀需要適度參與就可以了。
總的來說,架構師和程序員在某些方面上有點像產品經理和用戶的關系,大部分程序員并不會主動告訴你他們想要什么、哪里需要優化,甚至自己也不知道這些,所以需要架構師的參與去設計跟解決問題。
2.為什么別人的系統總是那么爛
很多程序員解決問題的能力很強,說要解決一個什么問題,下午就能寫出幾百行代碼把功能實現了。但是做出來的東西有種少考慮了什么東西的感覺。大部分程序都能實現功能.
但是如果把“時間”這個也作為一個考慮的維度的話,就會意識到一個合格的項目需要考慮更多的東西:更通用的使用方式、易于理解的文檔、簡單而易于擴展的設計,等等。
很多公司應該都會有一些遺留系統,它們龐大、笨重、難用、幾乎無法維護,所有人都在抱怨這些系統,并且每天都在想方設法換掉那些遺留系統。
但是一段時間過去之后,又會發現身邊的新人又開始吐槽當時替代遺留系統的那個系統了。
“大多數系統當初都很好使,功能當時夠用,擴展性看起來也可以,但是這些系統都是開發的人離職之后變壞的。”
3.成為架構師最困難的門檻是什么?
很多人自稱架構師的人跟你講一個架構時簡直滔滔不絕,各種技術名詞像是說相聲一樣從他嘴里說出來,三句話不離高并發大數據.
但是稍微追問一下,就會發現很多基本概念的缺失.
例如自稱精通高并發的人說不清楚他所謂的高并發系統的瓶頸在哪里,自稱精通架構設計的人說不明白他的系統怎么保證高可用,自稱超大數據量的系統實際上只有不到100萬條數據,等等。
架構師雖然聽起來很高大上,但本質上仍然是工程師,不是科學家,也不是忽悠人的江湖騙子。學習再多,也需要實踐落地。
設計架構方案更多的是在做一些抽象和權衡:把復雜的需求抽象成簡單的模型,從功能、性能、可用性、研發成本等等方面規劃如何構建一個系統,這些內容需要更多的實踐練習.
4.如何更高效的學習?
大多數人每天能留給自己學習的時間有限,這個階段如何提升學習效率就成了要解決的重點。
說說自己提升學習效率的心得,其實非常簡單:體系化的學習。
在重復了幾次痛苦的學習-梳理過程后,再去看一些獨立的文章或者資料往往會事半功倍,因為能在體系內找到相對應的知識,甚至有時候一本書里一頁只需要看一句話,點破那層窗戶紙,就可以掌握新的知識。
跟很多人一樣,剛畢業時我覺得作為程序員,只要努力,加上少許天賦便可以獲得一些成績。
工作一段時間后,對自己和其他人的認識也越來越清晰,逐漸的發現程序員之間的差距或許比人和猴子之間的差距還大,接受這個事實這讓我郁悶了很久。
再過一段時間,發現自己已經能夠客觀的評價自己的能力,也意識到了距離并不是那么重要,只要想辦法跑的更快,就足夠了。
當然架構師也不是一個空中樓閣,只需要理論,根據我的經驗整理了一個進階的體系,基礎部分就沒完全包含了。
5.快速成為架構師的學習路線
1.源碼分析 (圖片請放大觀看)
很多小伙伴可能會很困惑,為什么BAT的面試官總是喜歡問源碼?其實我們常用的Spring、MyBaits這樣的框架可以說是JAVA里面最經典的教科書,從中你能學習到很多寫代碼的經驗技巧,而去悟開源框架中蘊含的優雅架構設計之道這才是最重要的
2.深入及優化
熟悉大牛的源碼框架后,接下來我們進入優化技能學習,普通的開發者只知道做,資深的開發者知道為什么這么做,怎么才能做到最好,技術點足夠的深度,才能讓你具備競爭力.
所以我們需要掌握優化的算法,對java虛擬機及JVM有足夠的了解,對并發編程有充分的認識,成為互聯網企業的核心技術人才。
3、分布式架構
根據雙十一日志統計,前端系統有效請求約60w以上的QPS ,而后端cache的集群峰值近2000w/s、單機也近30w/s,互聯網大廠的架構師面對的就是這樣的生產環境,所以分布式、緩存、消息這樣搭建高性能系統的技術必須掌握,那么高并發,高可用,海量數據,沒有分布式的架構知識肯定是玩不轉的:
4、服務化架構
在高并發的應用場景下,微服務技術是互聯網平臺必選的架構技術,目前國內較流行,用得較多的有Spring Boot, Spring Cloud, Duboo, 不僅要學習微服務架構的應用知識,還會從底層源碼透析每個開源框架的設計模式及設計思想,還有Docker虛擬化技術等等,使用微服務改變互聯網系統的并發瓶頸,讓你的平臺開發更加高效、快捷。
答案,關注公眾號下面二維碼,即可
總結
以上是生活随笔為你收集整理的为什么大部分程序猿成为不了架构师?附架构师进阶路线图的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: django下载excel,使用djan
- 下一篇: C#--object sender, E
