導(dǎo)讀:
架構(gòu)師應(yīng)不應(yīng)該寫代碼
為什么別人的系統(tǒng)總是那么爛
成為架構(gòu)師最困難的門檻是什么?
如何更高效的學(xué)習(xí)栏豺?
1.架構(gòu)師應(yīng)不應(yīng)該寫代碼
合格的程序員對于明確分配的任務(wù)會完成的很好翔怎,但是大部分情況下“架構(gòu)”這個詞意味著架構(gòu)師并不會涉及太多細(xì)節(jié)窃诉,架構(gòu)圖和代碼實現(xiàn)之間總還是有些距離杨耙,你無法保證所有人都會正確的理解你的設(shè)計,或者是程序員寫代碼時遇到障礙時會立刻想出足夠優(yōu)雅的解決方案飘痛。
在我看來珊膜,寫代碼的架構(gòu)師更像是在做后勤保障的工作:在代碼中第一時間發(fā)現(xiàn)可能存在的問題,向其他人提出警告宣脉,或是給予其他人改進的意見辅搬,必要的時候或是給其他人演示一下正確的姿勢。
大部分情況下我作為架構(gòu)師并不需要攬下“核心模塊”開發(fā)這種工作脖旱,畢竟我能調(diào)配的時間太零散了堪遂,效率難以保證,很多人在專注的情況下比我做的好很多萌庆,我只需要保持大局觀需要適度參與就可以了溶褪。
總的來說,架構(gòu)師和程序員在某些方面上有點像產(chǎn)品經(jīng)理和用戶的關(guān)系践险,大部分程序員并不會主動告訴你他們想要什么猿妈、哪里需要優(yōu)化,甚至自己也不知道這些巍虫。想要做出好的產(chǎn)品彭则,捷徑之一就是跟用戶做同樣的事情。
2.為什么別人的系統(tǒng)總是那么爛
很多程序員解決問題的能力很強占遥,說要解決一個什么問題俯抖,下午就能寫出幾百行代碼把功能實現(xiàn)了。但是做出來的東西有種少考慮了什么東西的感覺瓦胎。大部分程序都能實現(xiàn)功能芬萍,但是如果把“時間”這個也作為一個考慮的維度的話,就會意識到一個合格的項目需要考慮更多的東西:更通用的使用方式搔啊、易于理解的文檔柬祠、簡單而易于擴展的設(shè)計,等等负芋。
很多公司應(yīng)該都會有一些遺留系統(tǒng)漫蛔,它們龐大、笨重旧蛾、難用莽龟、幾乎無法維護,所有人都在抱怨這些系統(tǒng)蚜点,并且每天都在想方設(shè)法換掉那些遺留系統(tǒng)轧房。但是一段時間過去之后,又會發(fā)現(xiàn)身邊的新人又開始吐槽當(dāng)時替代遺留系統(tǒng)的那個系統(tǒng)了绍绘。
“大多數(shù)系統(tǒng)當(dāng)初都很好使奶镶,功能當(dāng)時夠用迟赃,擴展性看起來也可以,但是這些系統(tǒng)都是開發(fā)的人離職之后變壞的厂镇∠吮冢”
3.成為架構(gòu)師最困難的門檻是什么?
很多人自稱架構(gòu)師的人跟你講一個架構(gòu)時簡直滔滔不絕捺信,各種技術(shù)名詞像是說相聲一樣從他嘴里說出來酌媒,三句話不離高并發(fā)大數(shù)據(jù),但是稍微追問一下迄靠,就會發(fā)現(xiàn)很多基本概念的缺失秒咨,例如自稱精通高并發(fā)的人說不清楚他所謂的高并發(fā)系統(tǒng)的瓶頸在哪里,自稱精通架構(gòu)設(shè)計的人說不明白他的系統(tǒng)怎么保證高可用掌挚,自稱超大數(shù)據(jù)量的系統(tǒng)實際上只有不到100萬條數(shù)據(jù)雨席,等等。
架構(gòu)師雖然聽起來很高大上吠式,但本質(zhì)上仍然是工程師陡厘,不是科學(xué)家,也不是忽悠人的江湖騙子特占。學(xué)習(xí)再多糙置,也需要實踐落地。設(shè)計架構(gòu)方案更多的是在做一些抽象和權(quán)衡:把復(fù)雜的需求抽象成簡單的模型是目,從功能谤饭、性能、可用性胖笛、研發(fā)成本等等方面規(guī)劃如何構(gòu)建一個系統(tǒng)网持,這些內(nèi)容需要更多的實踐練習(xí)宜岛。
4.如何更高效的學(xué)習(xí)长踊?
大多數(shù)人每天能留給自己學(xué)習(xí)的時間有限,這個階段如何提升學(xué)習(xí)效率就成了要解決的重點萍倡。
說說自己提升學(xué)習(xí)效率的心得身弊,其實非常簡單:體系化的學(xué)習(xí)。
在重復(fù)了幾次痛苦的學(xué)習(xí)-梳理過程后列敲,再去看一些獨立的文章或者資料往往會事半功倍阱佛,因為能在體系內(nèi)找到相對應(yīng)的知識,甚至有時候一本書里一頁只需要看一句話戴而,點破那層窗戶紙凑术,就可以掌握新的知識。
跟很多人一樣所意,剛畢業(yè)時我覺得作為程序員淮逊,只要努力催首,加上少許天賦便可以獲得一些成績。
工作一段時間后泄鹏,對自己和其他人的認(rèn)識也越來越清晰郎任,逐漸的發(fā)現(xiàn)程序員之間的差距或許比人和猴子之間的差距還大,接受這個事實這讓我郁悶了很久备籽。
再過一段時間舶治,發(fā)現(xiàn)自己已經(jīng)能夠客觀的評價自己的能力,也意識到了距離并不是那么重要车猬,只要想辦法跑的更快霉猛,就足夠了。
5.快速成為架構(gòu)師的學(xué)習(xí)路線
在此我向大家推薦一個架構(gòu)學(xué)習(xí)交流群珠闰。交流學(xué)習(xí)群號:575745314 里面會分享一些資深架構(gòu)師錄制的視頻錄像:有Spring韩脏,MyBatis,Netty源碼分析铸磅,高并發(fā)赡矢、高性能、分布式阅仔、微服務(wù)架構(gòu)的原理吹散,JVM性能優(yōu)化、分布式架構(gòu)等這些成為架構(gòu)師必備的知識體系八酒。還能領(lǐng)取免費的學(xué)習(xí)資源空民,目前受益良多
分布式學(xué)習(xí)路線
微服務(wù)學(xué)習(xí)路線
性能優(yōu)化學(xué)習(xí)路線
經(jīng)典設(shè)計模式與源碼分析
開發(fā)必備工具
動手實踐項目
以上五大知識體系是我從業(yè)多年總結(jié)出來的經(jīng)驗,都是當(dāng)前最主流的技術(shù)羞迷。想學(xué)習(xí)這些技術(shù)的朋友可以加群界轩。