如何在二三線城市月薪過萬(五)不甘於作curd程序員,小企業的架構師之路

「本文已參與好文召集令活動,點擊查看:後端、大前端雙賽道投稿,2萬元獎池等你挑戰!」前端

首先請原諒樓主標題黨(真香),步入正題:當入職3-5年後,相信你接口已經寫得賊溜了。一天寫個20個簡單接口應該沒啥問題。這時候一些老鐵是否是認爲咱之後也能幹幹架構。我認爲你認爲的很對。不管從將來發展與錢途上都是必需的。而那部分只會寫業務的老鐵在中年註定會被淘汰。vue

那麼你又問了,公司不給我機會啊。也不讓我轉部門,而後由於沒有經驗,面試也不給我機會。linux

image.png

根據樓主多年教學(chui niu)經驗,轉到公司架構部門概率是很是小,由於一個小公司也就一個管架構的,你讓他幹啥去。那麼只有投奔新公司纔是正道。本文將從知識儲備,豐滿簡歷,迎接面試(hu you)等方面帶你解決圖中問題。git

本文將提供準備的大綱,技術篇章後續會更新,若是有興趣請關注樓主。程序員

本文僅適合二線小企業開發人員,不可能雷同。舒適提示,千萬不要知道就是掌握,瞭解就是精通。github

準備工做

  1. 確認本身將來偏向code,而不是管理。
  2. 確保本身接口已經寫的賊溜了。普通的業務代碼已經難不到你了。
  3. 不甘平凡,有充分的時間準備,充滿飽滿的熱情持續學習。

若是準備好了,幹就完事了。web

知識儲備

springboot高級接口功能實現

除了平常的接口外,springboot還有比普通接口複雜的功能,在平常中經常使用,在面試過程當中講述或許更有亮點。例如面試

  1. springboot像內外網郵箱發送郵件。
  2. websocket實現。(可使用spring提供的,易上手,可二次開發)
  3. springboot發送短信。
  4. springboot整合swagger接口文檔。
  5. 上傳文件到雲。
  6. 自定義註解監控日誌。

此類功能可自行查看,並且功能都不是太難,是否是隻寫在簡歷上比curd更高級一點呢。redis

springboot架構級封裝與理解

可能老鐵對架構沒有一個清晰的認識,對於小型公司架構,我有如下理解:spring

  1. 對領導要求功能的實現。好比:認證與鑑權框架,在線閱讀需求等。
  2. 簡化於小夥伴的開發,如使用@RestControllerAdvice簡化異常的處理,自定義註解等。
  3. 規範小夥伴的開發,如規範的命名,規範的項目結構,統一的返回對象封裝等。

可能你又說了,這方面沒有具體的瞭解,無從入手怎麼辦。這裏提供了一個本文的中心思想!參考!讀書人的事怎麼能叫。。。遇到問題,第一時間百度或者去github或gitee尋找該輪子是否有人制造。

這裏推薦兩個開源項目:

  1. jeecg:gitee.com/jeecg/jeecg…
  2. ruoyi:gitee.com/y_project/R…

前者功能很是全,可是由於代碼非一我的所寫,格式比較混亂,建議僅學習功能。後者功能不如前者強大,可是規則很是符合平常開發,代碼頗有條理,小企業能夠直接使用做爲開發架構。

這回知道怎麼入手架構了吧,若是以上兩個框架你都參透了,在小企業定製款符合本身需求和開發習慣的架構是很是容易的。

瞭解源碼

源碼不是萬能的,可是沒有源碼是萬萬不能的。在小公司,有這個技能能夠說是能夠吊打大部分初中級程序員,一張嘴,這個底層源碼是怎麼怎麼寫的。而後你會看到周圍投來羨慕的眼光。

在源碼部分你至少要掌握如下部分。

  1. spring ioc與aop的源碼。
  2. spring bean的加載過程源碼。
  3. spring boot啓動流程源碼。
  4. spring boot約定大於配置的實現源碼。
  5. 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是必備技能,最少你須要掌握如下內容:

  1. 與spring boot的整合。redis的增刪改查,mq的發送與監控消息至少都應該demo一下。別問你用什麼客戶端都答不上。
  2. mq消息準確發送的配置須要掌握,如:磁盤固化,ack,nack等。
  3. redis的基本使用類型與使用場景,以及數據固化相關。
  4. 其餘基礎面試題。

如下中間件能夠初步瞭解,能夠提高面試概率。

如elasticsearch,prometheus,apollo

對於中間件使用場景和併發量不高爲何使用,必定要給出合理的答案,這個是樓主常常問的。

規範

建議創建一套本身的開發規範,包括:

  1. 代碼編寫規範
  2. 接口編寫規範
  3. 建表規範
  4. 接口文檔編寫規範
  5. 註釋規範

能夠參考阿里規範自行編寫。目的以下:

  1. 面試彰顯本身的亮點和不同凡響。
  2. 爲往後管理團隊打下基礎。
  3. 建議平常應用,提升本身代碼編寫的水平。

雖然咱們是小企業,也要專業。

設計模式

這裏建議將工廠模式,單例模式,策略模式,代理模式,適配器模式,狀態模式吃透,面試重災區。並在工做中合理應用幾回,做爲面試答案。

linux操做

由於小企業人員的緣由,可能運維開發都是一我的,因此適當的瞭解linux能夠增長競爭性。

這裏建議購買或借或使用公司服務器,將上文的項目與中間件在服務器上搭建一遍,並儘量記住命令便可。

docker與非docker的方式選擇一種便可。

idea插件(可選)

適當的使用idea插件,是平常開發中,凸顯專業的方面。這裏推薦幾個插件。

  1. easycode-制定後端的代碼生成器。
  2. eclipse code format -自定義代碼規範。
  3. p3c-阿里代碼規範檢測

知識輸出(可選)

能夠準備一個長時間維護的博客,可讓面試官更加了解你。

面試能夠說,掘金優質博主,有原創文章xx篇,xx閱讀量。咱上來就給面試官一波暴擊。

服務性軟件(可選)

有一些軟件在平常開發中很是好用,也多是某項工做中必須的,適當的描述能夠坐實你的架構經驗。如:

  1. 選擇一款公司文檔工具。樓主使用的是dokuwiki。
  2. 能夠了解私服和鏡像工具。樓主使用的是Nexus和harbor。
  3. 能夠選擇一個測試平臺。請自行百度開源開源。
  4. 任務分配平臺。請自行百度開源開源。
  5. 一個符合自我習慣的接口平臺,yapi是比較流程的,可適當選擇。
  6. processon-流程圖在線製做網站。

其餘開源項目(可選)

在樓主平常工做中,也遇到了不少沒有接觸的技術,樓主每每先看一遍官網文檔,在經過開源項目學習,會使你事半功倍。如下項目能夠適當瞭解。也能夠在面試時挑選適當的引出,若是當前企業正有此方面需求,可能會增大。

kkeking/kkFileView

地址:gitee.com/kekingcn/fi… 一款在線閱讀的開源項目,簡單好用,可單獨部署,支持的文件種類多樣,且顯示的文件格式較爲美觀,當項目週期短,人員緊張時且想落地改需求時,能夠直接接入。

mingyang66/spring-parent

地址:github.com/mingyang66/…

一套spring security+oauth2爲安全框架的架構,若是你想落地應用級的spring security+oauth2,此架構能夠說是學習的好資料,同時提供 /redis、rabbitmq中間件的封裝,值得學習和掌握。

Swagger文檔轉Word

文檔地址:github.com/JMCuixy/swa…

廢話很少說 可以將swagger轉爲word

zjm16/zjmzxfzhl

地址:gitee.com/zjm16/zjmzx…

一套spring boot+vue+flowable的工做流引擎,若是你須要以上技術棧,那麼不會讓你失望的。

xxl-job

地址:gitee.com/xuxueli0323…

XXL-JOB是一個分佈式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線上產品線,開箱即用。

善於使用和解決問題,是小公司最缺乏的人才。

總結

以上就是樓主的建議了,有關以上的技術性文章,後續樓主會陸續更新。有不明白的問題,能夠留言,樓主必回。

若是本文章有一點用,還望看官姥爺用大家發財的小手點個贊和關注。圓我百讚的夢想。

相關文章
相關標籤/搜索