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