如何在二三線城市月薪過萬(九)不甘于做curd程序員,小企業的架構師之路
首先請原諒樓主標題黨(真香),步入正題:當入職3-5年后,相信你接口已經寫得賊溜了。一天寫個20個簡單接口應該沒啥問題。這時候一些老鐵是不是認為咱以后也能干干架構。我認為你認為的很對。無論從未來發展與錢途上都是必需的。而那部分只會寫業務的老鐵在中年注定會被淘汰。
那么你又問了,公司不給我機會啊。也不讓我轉部門,然后因為沒有經驗,面試也不給我機會。
根據樓主多年教學(chui niu)經驗,轉到公司架構部門幾率是非常小,因為一個小公司也就一個管架構的,你讓他干啥去。那么只有投奔新公司才是正道。本文將從知識儲備,豐滿簡歷,迎接面試(hu you)等方面帶你解決圖中問題。
本文將提供準備的大綱,技術篇章后續會更新,如果有興趣請關注樓主。
本文僅適合二線小企業開發人員,不可能雷同。溫馨提示,千萬不要知道就是掌握,了解就是精通。
準備工作
確認自己未來偏向code,而不是管理。
確保自己接口已經寫的賊溜了。普通的業務代碼已經難不到你了。
不甘平凡,有充分的時間準備,充滿飽滿的熱情持續學習。
如果準備好了,干就完事了。
知識儲備
springboot高級接口功能實現
除了日常的接口外,springboot還有比普通接口復雜的功能,在日常中常用,在面試過程中講述或許更有亮點。例如
springboot像內外網郵箱發送郵件。
websocket實現。(可以使用spring提供的,易上手,可二次開發)
springboot發送短信。
springboot整合swagger接口文檔。
上傳文件到云。
自定義注解監控日志。
此類功能可自行查看,而且功能都不是太難,是不是只寫在簡歷上比curd更高級一點呢。
springboot架構級封裝與理解
可能老鐵對架構沒有一個清晰的認識,對于小型公司架構,我有以下理解:
對領導要求功能的實現。比如:認證與鑒權框架,在線閱讀需求等。
簡化于小伙伴的開發,如使用@RestControllerAdvice簡化異常的處理,自定義注解等。
規范小伙伴的開發,如規范的命名,規范的項目結構,統一的返回對象封裝等。
可能你又說了,這方面沒有具體的了解,無從入手怎么辦。這里提供了一個本文的中心思想!參考!讀書人的事怎么能叫。。。遇到問題,第一時間百度或者去github或gitee尋找該輪子是否有人制造。
這里推薦兩個開源項目:
jeecg:https://gitee.com/jeecg/jeecg-boot?_from=gitee_search
ruoyi:https://gitee.com/y_project/RuoYi?_from=gitee_search
前者功能非常全,但是因為代碼非一個人所寫,格式比較混亂,建議僅學習功能。后者功能不如前者強大,但是規則非常符合日常開發,代碼很有條理,小企業可以直接使用作為開發架構。
這回知道怎么入手架構了吧,如果以上兩個框架你都參透了,在小企業定制款符合自己需求和開發習慣的架構是非常容易的。
了解源碼
源碼不是萬能的,但是沒有源碼是萬萬不能的。在小公司,有這個技能可以說是可以吊打大部分初中級程序員,一張嘴,這個底層源碼是怎么怎么寫的。然后你會看到周圍投來羨慕的眼光。
在源碼部分你至少要掌握以下部分。
spring ioc與aop的源碼。
spring bean的加載過程源碼。
spring boot啟動流程源碼。
spring boot約定大于配置的實現源碼。
mybatis執行流程源碼。
當看到你簡歷上寫閱讀過源碼,面試官是會嘿嘿一笑,對老板說這個小伙子還不錯,僅次于我。切記,在面試過程中,不建議去背每個類名,給人一種我背我也行的感覺。總結性的描述一下原理即可。
準備一套微服務體系
在小廠,微服務可能在并發量或者業務并不是特別契合,但是可能甲方提出:我們就要上云,或者領導因為融資需要出門跟別人吹牛,所以大多數公司都需要此技能。
這里你需要掌握一套微服務體系,相比springcloud Netflix的閉源,建議使用如今火熱的springcloud alibaba。
組件建議選擇:
nacos:注冊和配置中心。
openfeign:服務間調用組件。
sentinel:熔斷,降級,限流,完美支持openfeign。
getway:網關,zuul已經是不是這個時代的選擇了。
(雖然官方推薦dubbo,但是在小公司并發量并不大而且duboo相對復雜一些,所以使用openfeign也是一個不錯的選擇。)
最基礎的要求就是自己能夠搭建一套,了解其中基礎概念,成功跑通。并背一些基礎的面試題。
最好了解一下服務的注冊于暴露的原理,這個面試遇到的概率很大。
下面這個劃重點!!
在面試過程中,不要說自己沒有實踐過,而是自己做的demo。你可以說參與了公司部門微服務的搭建,這樣即使不會了你也可以說這部分是他人搭建的,懂得吧。具體怎么組織語言還是看你自己。(以下所有技術棧都適用此條)
權限框架
在shiro和spring security中選擇一項,建議使用spring security。
至少了解如何使用,核心配置類,和需要的表結構。
如果有經歷可適當的了解oauth2。人才稀缺。
從0開發的話,必備技能。
sql優化
sql優化在面試中肯定跑不了,根據樓主多次面試,回答上explain具體分析流程的很少很少,掌握explain語法。會幫助你脫穎而出。
裝x神器,干就完了
中間件
由于內卷的原因,現在不會幾樣中間件都不好意思出門。
redis與rabbitmq是必備技能,最少你需要掌握以下內容:
與spring boot的整合。redis的增刪改查,mq的發送與監控消息至少都應該demo一下。別問你用什么客戶端都答不上。
mq消息準確發送的配置需要掌握,如:磁盤固化,ack,nack等。
redis的基本使用類型與使用場景,以及數據固化相關。
其他基礎面試題。
以下中間件可以初步了解,可以提升面試幾率。
如elasticsearch,prometheus,apollo
對于中間件使用場景和并發量不高為什么使用,一定要給出合理的答案,這個是樓主經常問的。
規范
建議建立一套自己的開發規范,包括:
代碼編寫規范
接口編寫規范
建表規范
接口文檔編寫規范
注釋規范
可以參考阿里規范自行編寫。目的如下:
面試彰顯自己的亮點和與眾不同。
為日后管理團隊打下基礎。
建議日常應用,提高自己代碼編寫的水平。
雖然我們是小企業,也要專業。
設計模式
這里建議將工廠模式,單例模式,策略模式,代理模式,適配器模式,狀態模式吃透,面試重災區。并在工作中合理應用幾次,作為面試答案。
linux操作
因為小企業人員的原因,可能運維開發都是一個人,所以適當的了解linux可以增加競爭性。
這里建議購買或借或使用公司服務器,將上文的項目與中間件在服務器上搭建一遍,并盡可能記住命令即可。
docker與非docker的方式選擇一種即可。
idea插件(可選)
適當的使用idea插件,是日常開發中,凸顯專業的方面。這里推薦幾個插件。
easycode-制定后端的代碼生成器。
eclipse code format -自定義代碼規范。
p3c-阿里代碼規范檢測
知識輸出(可選)
可以準備一個長時間維護的博客,可以讓面試官更加了解你。
面試可以說,掘金優質博主,有原創文章xx篇,xx閱讀量。咱上來就給面試官一波暴擊。
服務性軟件(可選)
有一些軟件在日常開發中非常好用,也可能是某項工作中必須的,適當的描述可以坐實你的架構經驗。如:
選擇一款公司文檔工具。樓主使用的是dokuwiki。
可以了解私服和鏡像工具。樓主使用的是Nexus和harbor。
可以選擇一個測試平臺。請自行百度開源開源。
任務分配平臺。請自行百度開源開源。
一個符合自我習慣的接口平臺,yapi是比較流程的,可適當選擇。
processon-流程圖在線制作網站。
其他開源項目(可選)
在樓主日常工作中,也遇到了很多沒有接觸的技術,樓主往往先看一遍官網文檔,在通過開源項目學習,會使你事半功倍。以下項目可以適當了解。也可以在面試時挑選適當的引出,如果當前企業正有此方面需求,可能會增大。
kkeking/kkFileView
地址:https://gitee.com/kekingcn/file-online-preview?_from=gitee_search
一款在線閱讀的開源項目,簡單好用,可單獨部署,支持的文件種類多樣,且顯示的文件格式較為美觀,當項目周期短,人員緊張時且想落地改需求時,可以直接接入。
mingyang66/spring-parent
地址:https://github.com/mingyang66/spring-parent
一套spring security+oauth2為安全框架的架構,如果你想落地應用級的spring security+oauth2,此架構可以說是學習的好資料,同時提供 /redis、rabbitmq中間件的封裝,值得學習和掌握。
Swagger文檔轉Word
文檔地址:https://github.com/JMCuixy/swagger2word
廢話不多說 能夠將swagger轉為word
zjm16/zjmzxfzhl
地址:https://gitee.com/zjm16/zjmzxfzhl?_from=gitee_search
一套spring boot+vue+flowable的工作流引擎,如果你需要以上技術棧,那么不會讓你失望的。
xxl-job
地址:https://gitee.com/xuxueli0323/xxl-job?_from=gitee_search
XXL-JOB是一個分布式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼并接入多家公司線上產品線,開箱即用。
善于使用和解決問題,是小公司最缺少的人才。
總結
以上就是樓主的建議了,有關以上的技術性文章,后續樓主會陸續更新。有不明白的問題,可以留言,樓主必回。
如果本文章有一點用,還望看官姥爺用你們發財的小手點個贊和關注。圓我百贊的夢想。
Spring Boot 開發者
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。