我是3y,一年CRUD
經驗用十年的markdown
程式設計師???常年被譽為職業八股文選手
開源專案訊息推送平臺austin倉庫地址:
訊息推送平臺?推送下發【郵件】【簡訊】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。
今天來跟想聊下大家很關注的一個問題:「搞完Austin訊息推送平臺要花多長時間?」
這個問題我被很多股東問過,大多數都是想要將Austin訊息推送平臺寫進簡歷上,想要知道在秋招前能不能給整明白,整出來。
我在Austin的群也看過有個小夥連續好幾天在群裡問,想知道搞完要多久,這個系統難不難,適不適合在校的。
說白了,就是想要在心裡有個底。這種問題很正常,我在正式工作前也想知道要達到實習/工作需要什麼技能。
不過,我給不了具體的時間,這對我來說挺難的。因為每個人的學習時間、所掌握的基礎是不同的。像我在大學的時候,我早上8點去圖書館,晚上9點從圖書館回宿舍,我也不知道你是不是跟我一樣的。
還有就是可能你就剛剛整完SpringBoot
,還沒有做過任何專案,對很多技術都還沒理解好。這樣即便我文件很全了,但對於這部分同學來說,門檻還是相對較高。
而如果你已經有過Redis/Kafka
這種基礎了,只是Flink
/xxl-job
這種中介軟體沒怎麼用過,可能知道它們是幹啥的,但不知道原理。那在這種條件下,上手專案的門檻又相對較低點。
也有在滴滴的、騰訊的工作幾年了,把README
文件刷一遍,就能直接去看程式碼的整個流程了。雖然會對細節有很多疏漏,但畢竟架構的見識和工作經驗擺在那,上手會快很多。
它適不適合在校生?肯定是適合的。它不像商城系統要熟悉業務細節,有各種的商品資訊。它不像廣告系統要了解各種的專業名詞才能看懂業務,廣告系統有各種專業名詞CPT
/CPS
/CPC
/CPM
/ROI
/CVR
...
Austin訊息推送平臺核心功能是很好理解的,就是推送各種渠道的訊息。而推送訊息為什麼能是一個平臺,只是我們圍繞著核心功能的基礎上加多了很多基礎建設,它的存在不再是一個小功能,所以它就是一個訊息推送平臺。
每個公司幾乎都會有傳送訊息的需求,也幾乎都會有類似的封裝。Austin訊息推送平臺的架構和解決方案是通用的,跟別的公司相比只在於這個推送系統它的規模以及所提供的平臺能力差異性。
「搞完Austin訊息推送平臺要花多長時間?」
以我為例吧,我當時接手訊息推送平臺到熟悉它大概花了兩個多月時間,一方面我當時剛實習,技術確實也就那樣,在生產環境沒用過JSON
,沒用過MQ
,沒用過Redis
。另一方面,文件確實沒有像我現在的那麼齊全,生產環境下的程式碼經過了幾代同事的迭代,程式碼風格差異也挺大的。
不過這兩個多月不意味著我對這個系統就瞭如指掌了,我只是掌握了整個推送訊息的流程,很多傳送渠道的細節還是不懂的。
比如以前的小程式訊息推送需要有下發憑證(formId
)才能對訊息下發,這是我後來對小程式訊息迭代的時候才知道的。比如對於push通知欄訊息它的鏈路十分長,我們做了一整套打點體系,但由於迭代和交接的問題,這個鏈路也是後面才慢慢摸索出來哪些是關鍵的位置...比如對於簡訊計費原來是要把傳送憑證+手機號才能產生唯一的key,不然統計就會亂掉了...
話又說回來,如果把訊息推送平臺寫在簡歷上去面試。以我的經驗,面試官並不在意某個渠道的訊息下發細節(除非他也是搞訊息推送的),更多的關注是系統的架構和整體的流程,就沒遇到過需要針對某個訊息渠道做過多解釋的。
經過我的迭代,現在Austin訊息推送強依賴MySQL
/Redis
和Kafka
。對於MySQL
和Redis
來說,差不多是每個專案的標配了,而Kafka
後續我可能會考慮抽象出來由你們自己適配對應的MQ實現,MQ在這個場景下還是有必要的。
在面試前更多的是準備MySQL
/Redis
和MQ
這幾塊技術棧,理論上中介軟體在公司都有專門的人負責,但這幾個確實我們在日常開發中用得非常多,建議多去看看原理和原始碼。
像分散式配置中心、分散式定時任務、分散式計算引擎、分散式日誌框架、監控告警框架這種你們要是對哪個熟悉的,就寫上自己熟悉的框架。如果不熟悉的,面試的時候簡單提一嘴流程就好了(建議去看看這些框架的設計思想)。
最後不負責下個結論吧:
1、如果你曾經做過些小的專案,瞭解MySQL
/Redis
和MQ
的使用,大概三週到1個月+時間能對專案有所瞭解
2、如果你沒做過小專案,只是剛學完SpringBoot
,起碼2個月+時間能對專案有所瞭解
3、如果你已經瞭解過各種的中介軟體(分散式配置中心、分散式計算引擎),在工作中也並不完全是後臺的CRUD。相信我,你那時候就不會問要多久才能搞完這個訊息推送平臺。
很多時候我們做一件事之前都是充滿著未知,但如果未知的成本不高的話,建議先行動起來!一直猶豫不行動,相當於什麼都沒做。
推薦專案
如果想學Java專案的,我還是強烈推薦我的開源專案訊息推送平臺Austin,可以用作畢業設計,可以用作校招,可以看看生產環境是怎麼推送訊息的。
開源專案訊息推送平臺austin倉庫地址:
訊息推送平臺?推送下發【郵件】【簡訊】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。