1. 程式人生 > >從技術思維角度聊一聊『程式設計師』擺地攤的正確姿勢

從技術思維角度聊一聊『程式設計師』擺地攤的正確姿勢

![](https://img2020.cnblogs.com/blog/1804963/202006/1804963-20200605135514681-425973308.jpg) 有人說程式設計師這個職業,三年升高工,七年做架構,十年送外賣。對此雖然我也曾非常認可,但現在我可以前瞻性(馬後炮)地說四個字,杞人憂天!目光膚淺!正所謂天生我材必有用,用完再把外賣送,現在,新的風口——萬億【煙火經濟】來了,除了送外賣我們又多了個新選擇:擺地攤!一個人一輩子只有那麼幾次機會可能實現財務自由,機遇稍縱即逝,一定要牢牢把握住。所以,今天我們來嚴肅認真地聊一聊程式設計師擺地攤的正確姿勢。 ### **01 技術儲備** 程式設計師是誰? 一群志存高遠立志要靠技術改變世界的人! 一群囊螢映雪時刻站在技術風口的人! 一群鏤月裁雲面試可以造火箭的人! 一群居安思危28歲就時刻焦慮未來的人! 正所謂打鐵還需自身硬,在我們決定投身擺攤大業之前,一定要認清自己找準定位,瞭解自己在擺攤行業能夠達到什麼級別?根據程式設計師這些年來面試招聘的經驗我可以給大家一點參考,我認為一個合格的P6級別地攤員應該具備改變全球巨集觀經濟走向的能力,具有將各類地攤貨抽絲剝繭再從0到1的能力。 > **P6級別地攤員面試題舉例:** > 1. 請說說擺地攤背後的經濟學原理。 > 2. 畫一張從家到擺地攤地點的地圖,0表示可以走,1表示不可以走,請編寫一個程式,用合適的演算法找到最短路線。 > 3. 擺地攤可以有很多工具:一塊布、地攤三輪車、私家車後備箱、五菱巨集光、藍翔挖掘機,請對比一些這些工具的優缺點?並講講你最熟悉的一個工具的執行流程。 > 4. 擺地攤的過程中,億級流量過來怎麼辦?高併發怎麼辦?高可用怎麼做? 這幾道題熟悉嗎?如果你答不出來,建議你再回去多看看書,推薦幾本: 《擺攤人員的自我修養》 《擺攤的二十三種設計模式》 《深入源零件,瞭解擺攤車的工作原理》 除此之外,還需要多讀一讀國外大佬的英文原版著作,特別是一些諾貝爾經濟學獎大佬的,比如凱恩斯的《就業、利息和貨幣通論》、約瑟夫·熊彼特的《經濟發展理論》、薩繆爾森的《經濟學》、西蒙·庫茲涅茨的《各國的經濟增長》等。 > “你先回去吧,正常我們會在兩個星期左右給你答覆。” > > “碼大叔,恭喜你通過了我們的面試,你接下來的工作就是和我一起搬羊肉串” **你看,原來所謂的合適,只是你能不能和我一起吹個很爽的牛,然後幹件平凡的事。** **我是擺地攤的,但是我就想和你聊一聊八千里路雲和月!** ### **02 找準方向** 做好技術儲備認清自己後,接下來就是找準方向,好的方向是成功的一半。很多人也想去擺地攤,但無奈不知道該做什麼,導致自己始終邁不出擺攤的第一步。這件事對於程式設計師就比較簡單,無非三個選擇。 **選擇一:技術導向型創業** 大多數程式設計師是有技術情懷的,通過自己的技術去改變或影響一批人,從而帶來自己的商業價值。所以如果選擇這個方向的擺攤,完全不需要考慮,看自己擅長什麼,可以去製造擺攤車,可以去製造一些小商品,取決於自身能力。 **選擇二:技術入股型創業** 做好你技術分內的事吧!用程式設計師的專業術語來說,就是單一職責,解耦合。至於什麼方向交給你的合夥人,讓專業的人做專業的事! **選擇三:加入一家牛逼的擺攤公司** 我們需要做的就是做好業務抽象和建模,設計一套通用的擺地攤架構,賣什麼不重要,重要的是我們什麼都能賣。具體賣什麼由產品經理和運營大佬去商量。這個時候選擇一個好的團隊很重要,我們團隊就很好,就有一個資深產品經理,可以和程式設計師打成一片。 > “那邊兩個人在做什麼” > > “穿格子的是程式設計師,還有一個是產品經理。產品經理說擺地攤一定要注重使用者體驗,簡化使用者的操作。舉個栗子假如我們的地攤貨是手機殼,你不能讓使用者挑來逃去這樣體驗太差,效率也很低。你得能根據使用者的心情自動變換顏色、背景,說完兩人就開打了,打了一年多沒停手。” 你看,對於程式設計師,選擇是如此簡單! **困住我們手腳的,是顧慮!** **早已成年的我們,需要的可能是那麼一次年少輕狂、肆無忌憚!** ### **03 微服務架構** 首先,我們來看一張圖: ![](https://img2020.cnblogs.com/blog/1804963/202006/1804963-20200605135451236-983886949.png) 看出什麼問題沒有? 對,太明顯了,這還是傳統的擺地攤方式,最初級的單體地攤架構!這樣使得地攤服務過於臃腫,全部集中在一個人身上,不利於管理;容錯性差,一旦出點小問題,就會導致整個服務宕機。比如使用者要用支付寶付款,結果手機沒電了,你得等著他呀,其他客戶怎麼辦?而且這樣也不利於擴充套件,擺攤事業做大了怎麼支撐?還有一個最大的問題,就是它不符合當今地攤行業的潮流, 所以,最正確的姿勢應該是:拆!將整個地攤的架構微服務化。你別管它合不合適,這都2200年了,順應潮流、順流而上,你才不會被潮流淹沒,不會被這個時代所拋棄。不然你只能回去繼續寫你低端的程式碼,幹不了地攤員。 ![](https://img2020.cnblogs.com/blog/1804963/202006/1804963-20200605135504627-1267552897.png) 如上圖所示,微服務化後就成為上面這樣的,有人管銷售,有人管結賬,有人管商品,有人管庫存,有人管開神車。這樣拆下來,它使整個地攤的分工更加明確,責任更加清晰,每個人專心負責為其他人提供最專業的服務。 - 獨立的可擴充套件性,每個微服務都可以獨立進行橫向或縱向擴充套件;比如上面提到的收銀服務慢,再來一個人唄; - 獨立的可升級性,每個微服務都可以獨立進行服務升級、更新,不用依賴於其它服務;比如五菱巨集光要升級成藍翔挖掘機,升級就是了。 - 易維護性,每個微服務的只專注於完成自己業務範疇的事情;你不用同時擔心庫存夠不夠,錢會不會算錯等等,每個人專注自己的一部分。 - 故障和資源的隔離性,在系統中出現不好的資源操作行為時,例如銷售忙到癱瘓導致記憶體洩露,後續的結賬還可以繼續進行。 - 等等 術業有專攻,專業的人做專業的事,**你看我們像不像一個個微服務?**當我們誇誇其談其先進性的時候,以為自己走在技術前沿的時候,以為自己支撐了一整個服務叢集的時候,我們可能已經忘了,這個事情我們已經做了很久很久,這個地方我們已經待了很久很久。我們以為自己是一個獨立的服務可以獨立地運作,卻從來沒有想過脫離了這個服務體系的時候,其實,一無是處! **單體應用,還是微服務?** **我們需要什麼?** **這個世界需要我們什麼?** ### **04 放眼未來** 作為具有程式設計師背景的地攤員,我們的目光不能侷限於當下,要充分考慮未來地攤事業發展對當前架構的依賴及可能存在的風險,提前做好風險預案。比如: - 萬一有億級客戶流量來訪問我們的地攤呢?我們該如何做好流量控制?熔斷降級? - 要不要再準備一隊地攤員做好主備和負載均衡等? - 我們的地攤貨要不要分庫分表呢? - 要不要做讀寫分離,專門安排人員負責客戶詢價、地攤貨諮詢等? - 要不要引入排隊機制?要不要給他們發個令牌才能來我們的地攤呢? - 等等 還有很關鍵的一點,地攤事業未來會不會遭遇某些人的封禁或者打壓,比如: - 萬一有人說地攤是他們國家的物質文化遺產,是他們發明的呢? - 萬一有人覺得紅火的地攤事業影響到了他們的安全,要將我們列入實體清單進行管制呢? 地攤,作為一個炙手可熱的風口產業,一個充滿無限可能的產業,讓我們一起去擺攤吧。雖然我的想象力不足以想象地攤業的未來,但我的心裡有火,眼裡有光。即將投入地攤事業的程式設計師們,請接受我的祝福, 奔湧吧,地攤員 我們在同一條奔湧的河流。 它是一個地攤, 它是一個機會, 它是大千世界, 它是我們的內心。 夢想還是要有的,萬一實現了呢? **夢想還是要有的,至少這樣當我們想努力拼搏一把的時候,知道該往哪個方向!** 寫著寫著我忽然想起來,這個擺地攤的架構好像還有優化空間,要不要再上箇中臺系統呢? 得好好考慮考慮一下!