程序員的生活:白天寫代碼,夜里擺地?cái)偅苣┧屯赓u
有人說程序員這個(gè)職業(yè),三年升高工,七年做架構(gòu),十年送外賣。對(duì)此雖然我也曾非常認(rèn)可,但現(xiàn)在我可以前瞻性(馬后炮)地說四個(gè)字,杞人憂天!目光膚淺!
圖片來自 Pexels
正所謂天生我材必有用,用完再把外賣送,現(xiàn)在,新的風(fēng)口——萬億【煙火經(jīng)濟(jì)】來了,除了送外賣我們又多了個(gè)新選擇:擺地?cái)?
一個(gè)人一輩子只有那么幾次機(jī)會(huì)可能實(shí)現(xiàn)財(cái)務(wù)自由,機(jī)遇稍縱即逝,一定要牢牢把握住。
圖片來自互聯(lián)網(wǎng),版權(quán)歸原作者所有
所以,今天我們來嚴(yán)肅認(rèn)真地聊一聊程序員擺地?cái)偟恼_姿勢。
01.技術(shù)儲(chǔ)備
程序員是誰?
- 一群志存高遠(yuǎn)立志要靠技術(shù)改變世界的人!
- 一群囊螢映雪時(shí)刻站在技術(shù)風(fēng)口的人!
- 一群鏤月裁云面試可以造火箭的人!
- 一群居安思危 28 歲就時(shí)刻焦慮未來的人!
正所謂打鐵還需自身硬,在我們決定投身擺攤大業(yè)之前,一定要認(rèn)清自己找準(zhǔn)定位,了解自己在擺攤行業(yè)能夠達(dá)到什么級(jí)別?
根據(jù)程序員這些年來面試招聘的經(jīng)驗(yàn)我可以給大家一點(diǎn)參考,我認(rèn)為一個(gè)合格的 P6 級(jí)別地?cái)倖T應(yīng)該具備改變?nèi)蚝暧^經(jīng)濟(jì)走向的能力,具有將各類地?cái)傌洺榻z剝繭再從 0 到 1 的能力。
P6 級(jí)別地?cái)倖T面試題舉例:
- 請(qǐng)說說擺地?cái)偙澈蟮慕?jīng)濟(jì)學(xué)原理。
- 畫一張從家到擺地?cái)偟攸c(diǎn)的地圖,0 表示可以走,1 表示不可以走,請(qǐng)編寫一個(gè)程序,用合適的算法找到最短路線。
- 擺地?cái)偪梢杂泻芏喙ぞ撸阂粔K布、地?cái)側(cè)嗆嚒⑺郊臆嚭髠湎?、五菱宏光、藍(lán)翔挖掘機(jī),請(qǐng)對(duì)比一些這些工具的優(yōu)缺點(diǎn)?并講講你最熟悉的一個(gè)工具的運(yùn)行流程。
- 擺地?cái)偟倪^程中,億級(jí)流量過來怎么辦?高并發(fā)怎么辦?高可用怎么做?
這幾道題熟悉嗎?如果你答不出來,建議你再回去多看看書,推薦幾本:
- 《擺攤?cè)藛T的自我修養(yǎng)》
- 《擺攤的二十三種設(shè)計(jì)模式》
- 《深入源零件,了解擺攤車的工作原理》
除此之外,還需要多讀一讀國外大佬的英文原版著作,特別是一些諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)大佬的,比如凱恩斯的《就業(yè)、利息和貨幣通論》、約瑟夫·熊彼特的《經(jīng)濟(jì)發(fā)展理論》、薩繆爾森的《經(jīng)濟(jì)學(xué)》、西蒙·庫茲涅茨的《各國的經(jīng)濟(jì)增長》等。
PS:“你先回去吧,正常我們會(huì)在兩個(gè)星期左右給你答復(fù)”,“恭喜你通過了我們的面試,你接下來的工作就是和我一起搬羊肉串”。
原來所謂的合適,只是你能不能和我一起吹個(gè)很爽的牛,然后干件平凡的事。我是擺地?cái)偟?,但是我就想和你聊一聊八千里路云和?
02.找準(zhǔn)方向
做好技術(shù)儲(chǔ)備認(rèn)清自己后,接下來就是找準(zhǔn)方向,好的方向是成功的一半。很多人也想去擺地?cái)?,但無奈不知道該做什么,導(dǎo)致自己始終邁不出擺攤的第一步。這件事對(duì)于程序員就比較簡單,無非三個(gè)選擇。
選擇一:技術(shù)導(dǎo)向型創(chuàng)業(yè)
大多數(shù)程序員是有技術(shù)情懷的,通過自己的技術(shù)去改變或影響一批人,從而帶來自己的商業(yè)價(jià)值。
所以如果選擇這個(gè)方向的擺攤,完全不需要考慮,看自己擅長什么,可以去制造擺攤車,可以去制造一些小商品,取決于自身能力。
選擇二:技術(shù)入股型創(chuàng)業(yè)
做好你技術(shù)分內(nèi)的事吧!用程序員的專業(yè)術(shù)語來說,就是單一職責(zé),解耦合。至于什么方向交給你的合伙人,讓專業(yè)的人做專業(yè)的事!
選擇三:加入一家牛逼的擺攤公司
我們需要做的就是做好業(yè)務(wù)抽象和建模,設(shè)計(jì)一套通用的擺地?cái)偧軜?gòu),賣什么不重要,重要的是我們什么都能賣。具體賣什么由產(chǎn)品經(jīng)理和運(yùn)營大佬去商量。
這個(gè)時(shí)候選擇一個(gè)好的團(tuán)隊(duì)很重要,我們團(tuán)隊(duì)就很好,就有一個(gè)資深產(chǎn)品經(jīng)理,可以和程序員打成一片。
PS:“那邊兩個(gè)人在做什么”,“穿格子的是程序員,還有一個(gè)是產(chǎn)品經(jīng)理。產(chǎn)品經(jīng)理說擺地?cái)傄欢ㄒ⒅赜脩趔w驗(yàn),簡化用戶的操作。舉個(gè)栗子假如我們的地?cái)傌浭鞘謾C(jī)殼,你不能讓用戶挑來逃去這樣體驗(yàn)太差,效率也很低。你得能根據(jù)用戶的心情自動(dòng)變換顏色、背景,說完兩人就開打了,打了一年多沒停手。”
你看,對(duì)于程序員,選擇是如此簡單!困住我們手腳的,是顧慮!早已成年的我們,需要的可能是那么一次年少輕狂、肆無忌憚!
03.微服務(wù)架構(gòu)
首先,我們來看一張圖:
看出什么問題沒有?對(duì),太明顯了,這還是傳統(tǒng)的擺地?cái)偡绞剑畛跫?jí)的單體地?cái)偧軜?gòu)!
這樣使得地?cái)偡?wù)過于臃腫,全部集中在一個(gè)人身上,不利于管理;容錯(cuò)性差,一旦出點(diǎn)小問題,就會(huì)導(dǎo)致整個(gè)服務(wù)宕機(jī)。
比如用戶要用支付寶付款,結(jié)果手機(jī)沒電了,你得等著他呀,其他客戶怎么辦?而且這樣也不利于擴(kuò)展,擺攤事業(yè)做大了怎么支撐?還有一個(gè)最大的問題,就是它不符合當(dāng)今地?cái)傂袠I(yè)的潮流,
所以,最正確的姿勢應(yīng)該是:拆!將整個(gè)地?cái)偟募軜?gòu)微服務(wù)化。你別管它合不合適,這都 2020 年了,順應(yīng)潮流、順流而上,你才不會(huì)被潮流淹沒,不會(huì)被這個(gè)時(shí)代所拋棄。不然你只能回去繼續(xù)寫你低端的代碼,干不了地?cái)倖T。
如上圖所示,微服務(wù)化后就成為上面這樣的,有人管銷售,有人管結(jié)賬,有人管商品,有人管庫存,有人管開神車。
這樣拆下來,它使整個(gè)地?cái)偟姆止じ用鞔_,責(zé)任更加清晰,每個(gè)人專心負(fù)責(zé)為其他人提供最專業(yè)的服務(wù):
- 獨(dú)立的可擴(kuò)展性,每個(gè)微服務(wù)都可以獨(dú)立進(jìn)行橫向或縱向擴(kuò)展;比如上面提到的收銀服務(wù)慢,再來一個(gè)人唄。
- 獨(dú)立的可升級(jí)性,每個(gè)微服務(wù)都可以獨(dú)立進(jìn)行服務(wù)升級(jí)、更新,不用依賴于其它服務(wù);比如五菱宏光要升級(jí)成藍(lán)翔挖掘機(jī),升級(jí)就是了。
- 易維護(hù)性,每個(gè)微服務(wù)的只專注于完成自己業(yè)務(wù)范疇的事情;你不用同時(shí)擔(dān)心庫存夠不夠,錢會(huì)不會(huì)算錯(cuò)等等,每個(gè)人專注自己的一部分。
- 故障和資源的隔離性,在系統(tǒng)中出現(xiàn)不好的資源操作行為時(shí),例如銷售忙到癱瘓導(dǎo)致內(nèi)存泄露,后續(xù)的結(jié)賬還可以繼續(xù)進(jìn)行。
- ......
術(shù)業(yè)有專攻,專業(yè)的人做專業(yè)的事,你們,我們像不像一個(gè)個(gè)微服務(wù)?
當(dāng)我們夸夸其談其先進(jìn)性的時(shí)候,以為自己走在技術(shù)前沿的時(shí)候,以為自己支撐了一整個(gè)服務(wù)集群的時(shí)候,我們可能已經(jīng)忘了,這個(gè)事情我們已經(jīng)做了很久很久,這個(gè)地方我們已經(jīng)待了很久很久。
我們以為自己是一個(gè)獨(dú)立的服務(wù)可以獨(dú)立地運(yùn)作,卻從來沒有想過脫離了這個(gè)服務(wù)體系的時(shí)候,其實(shí),一無是處!
單體應(yīng)用,還是微服務(wù)?我們需要什么?這個(gè)世界需要我們什么?
04.放眼未來
作為具有程序員背景的地?cái)倖T,我們的目光不能局限于當(dāng)下,要充分考慮未來地?cái)偸聵I(yè)發(fā)展對(duì)當(dāng)前架構(gòu)的依賴及可能存在的風(fēng)險(xiǎn),提前做好風(fēng)險(xiǎn)預(yù)案。
比如:
萬一有億級(jí)客戶流量來訪問我們的地?cái)偰?我們?cè)撊绾巫龊昧髁靠刂?熔斷降級(jí)?
要不要再準(zhǔn)備一隊(duì)地?cái)倖T做好主備和負(fù)載均衡等?
我們的地?cái)傌浺灰謳旆直砟?
要不要做讀寫分離,專門安排人員負(fù)責(zé)客戶詢價(jià)、地?cái)傌涀稍兊?
要不要引入排隊(duì)機(jī)制?要不要給他們發(fā)個(gè)令牌才能來我們的地?cái)偰?
......
還有很關(guān)鍵的一點(diǎn),地?cái)偸聵I(yè)未來會(huì)不會(huì)遭遇某些人的封禁或者打壓,比如:
萬一有人說地?cái)偸撬麄儑业奈镔|(zhì)文化遺產(chǎn),是他們發(fā)明的呢?
萬一有人覺得紅火的地?cái)偸聵I(yè)影響到了他們的安全,要將我們列入實(shí)體清單進(jìn)行管制呢?
地?cái)?,作為一個(gè)炙手可熱的風(fēng)口產(chǎn)業(yè),一個(gè)充滿無限可能的產(chǎn)業(yè),讓我們一起去擺攤吧。
雖然我的想象力不足以想象地?cái)倶I(yè)的未來,但我的心里有火,眼里有光。即將投入地?cái)偸聵I(yè)的程序員們,請(qǐng)接受我的祝福,奔涌吧,地?cái)倖T,我們?cè)谕粭l奔涌的河流。
它是一個(gè)地?cái)?,它是一個(gè)機(jī)會(huì),它是大千世界,它是我們的內(nèi)心。夢想還是要有的,萬一實(shí)現(xiàn)了呢?夢想還是要有的,至少這樣當(dāng)我們想努力拼搏一把的時(shí)候,知道該往哪個(gè)方向!
寫著寫著我忽然想起來,這個(gè)擺地?cái)偟募軜?gòu)好像還有優(yōu)化空間,要不要再上個(gè)中臺(tái)系統(tǒng)呢?得好好考慮考慮一下!
作者:劍圣
編輯:陶家龍
出處:轉(zhuǎn)載自微信公眾號(hào)碼大叔(ID:ma_dashu)