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

最近我開通了