學AI,好工作 就找北大青鳥
關注小青 聽課做題,輕松學習
周一至周日
4000-9696-28

程序員如何避免內卷化?

來源:北大青鳥總部 2020年12月15日 09:01

摘要: 程序員如何避免內卷化?

內卷化involution,在經(jīng)濟學中指的是邊際效用持續(xù)遞減,它是出自于「1963年美國人類學家克利福德·格爾茨在印度尼西亞做田野調查時發(fā)現(xiàn),在殖民地時代和后殖民地時代的爪哇島,人口沒有向資本和技術密集型產業(yè)集中,而是不斷地投入到有限的水稻生產,導致農業(yè)生產內部精細化」。換成人話來說,以前你只要會Hadoop、MapReduce,你就可以很容易找到月薪1W的工作,而現(xiàn)在你可能都找不到工作了;以前一周你工作5*8小時就可以了,現(xiàn)在就要工作6*12小時??偟膩淼?,就是個人的價值被拉低了,變得不值錢了。今天我們就來講講程序員如何避免內卷化?

2345截圖20200601092109.png

作為程序員,只聚焦業(yè)務邏輯開發(fā)、CRUD是遠遠不夠的,架構、性能優(yōu)化、新技術這些都是必須要掌握的,只有不斷努力的打磨技術,緊跟技術發(fā)展趨勢,以當下最優(yōu)的方式解決業(yè)務訴求,保障高可用、高性能、高并發(fā),才能避免內卷化,立于不敗之地。


在架構知識學習中,我們需要了解架構的變遷(從單體服務→SOA架構→微服務架構→無服務架構)、架構模式的設計(分層架構、客戶端服務器架構、事件驅動架構)。


單體架構就是把web服務器&業(yè)務程序&數(shù)據(jù)庫&后臺服務器全都放在一起(典型的Linux+Apache+Mysql+PHP),剛入門的開發(fā)來說可以快速搭建完整的應用網(wǎng)站;SOA架構就是將單體式服務進行拆分,由不同的團隊開發(fā)不同的服務,再通過ESB企業(yè)服務總線連接起來,業(yè)務規(guī)模不復雜的企業(yè)一般采用此架構;微服務架構就是把業(yè)務的每個服務模塊原子化,由不同的團隊開發(fā)維護上線不同的服務,服務與服務之間通過MQ消息中間件或RPC遠程調用連接起來,業(yè)務規(guī)模中上的企業(yè)一般采用此架構;中臺架構就是把多個業(yè)務模塊共用的能力抽象出來,由專門的團隊進行開發(fā)維護,并對上層提供接口,快速生成應用和迭代產品。


分層架構設計模式主要是把整個架構分為展現(xiàn)層、業(yè)務層、持久層,“高內聚、低耦合”的設計思想讓每一層專注干自己的事情,展現(xiàn)層負責用戶界面數(shù)據(jù)展示、業(yè)務層負責處理業(yè)務邏輯、持久層負責數(shù)據(jù)持久化。在Java的設計開發(fā)中經(jīng)常都采用這種模式(Service→Controller→DAO)。事件驅動架構主要思想是所有的業(yè)務動作觸發(fā)都由事件進行驅動、處理,這種模式能實現(xiàn)簡單小型系統(tǒng)到復雜大型系統(tǒng)的擴展。在分布式系統(tǒng)中常見的架構模式便是事件驅動,所有業(yè)務層發(fā)生的事項都通過消息中間件MQ傳遞,后臺監(jiān)聽MQ消息隊列數(shù)據(jù),進行業(yè)務處理。


在性能優(yōu)化中,我們需要了解接口設計、系統(tǒng)監(jiān)控。在接口設計層面通過算法調優(yōu)、技術架構升級、技術組件升級可以實現(xiàn),此處我們不展開討論,主要看看系統(tǒng)監(jiān)控模塊。監(jiān)控就像我們的眼睛,幫我們監(jiān)控著每筆業(yè)務操作、每次業(yè)務調用,通過選擇合適的監(jiān)控工具、設定對應的監(jiān)控指標,能提前發(fā)現(xiàn)問題、遇到問題及時解決。一個應用體系的全棧監(jiān)控包含APP監(jiān)控、瀏覽器監(jiān)控、服務器監(jiān)控、網(wǎng)絡監(jiān)控、日志監(jiān)控、基礎設施監(jiān)控、物理環(huán)境監(jiān)控。作為業(yè)務研發(fā),我們主要關注App監(jiān)控、瀏覽器監(jiān)控、服務端監(jiān)控就好,其余的交給運維同學關注。


APP監(jiān)控是通過打包時將探針安裝在對應的應用包里,形成正式包對外發(fā)布。當用戶手機下載了APP后,在使用APP的各個功能時,整個的行為軌跡也被探針記錄下來了,采集的數(shù)據(jù)包含開發(fā)的APP用戶日活、訪問區(qū)域、訪問版本等運營數(shù)據(jù);用戶打開APP是否白屏、是否卡頓、是否緩慢、是否網(wǎng)絡被運營商劫持等運維數(shù)據(jù),獲取到這些數(shù)據(jù)后可以幫助產品研發(fā)同學快速解決問題,提高用戶留存率、性能優(yōu)化系統(tǒng)。


Browser瀏覽器監(jiān)控是把瀏覽器探針(一段js代碼)嵌入前端頁面,通過瀏覽器的onload事件、navigation事件等獲取頁面訪問的數(shù)據(jù),比如瀏覽器基本信息、采集頁面性能數(shù)據(jù)、采集ajax性能數(shù)據(jù)和請求響應數(shù)據(jù)、JS錯誤數(shù)據(jù)、頁面追蹤數(shù)據(jù)等,再發(fā)送給到后臺處理加工,形成用戶運營數(shù)據(jù)(比如頁面PV、運營商信息、瀏覽器信息、訪問城市省會信息)、運維數(shù)據(jù)(比如ajax錯誤信息、js緩慢頁面信息)獲取到這些數(shù)據(jù)后可以幫助產品研發(fā)同學快速解決問題,提高用戶留存率、性能優(yōu)化系統(tǒng)。Server服務器監(jiān)控主要是在部署代碼的容器(比如tomcat、jvm、docker)中安裝探針,獲取服務調用鏈路、接口調用次數(shù)、函數(shù)執(zhí)行堆棧、SQL執(zhí)行情況、服務器CPU內存磁盤網(wǎng)絡等,幫助后端研發(fā)進行知道業(yè)務運行情況、進行系統(tǒng)性能優(yōu)化。

在新技術中,我們需要了解持續(xù)集成交付CICD、云原生、DevOps等。云原生應用就是運行在云平臺的應用,具備要有云的特點,比如彈性伸縮、分布式、快速部署、快速迭代、高效、持續(xù),云原生的四大核心要素是微服務、DevOps、持續(xù)交付、容器化,可以說云原生已經(jīng)容納了CICD、DevOps的設計思想,因此我們就以云原生展開進行講解。要實現(xiàn)云原生,這可不止是簡單的把原先在物理服務器上的應用遷移到虛擬機里,除了基礎設施和運行平臺在云上,應用架構、應用開發(fā)方式、應用部署方式、應用維護方式全都要做出改變。微服務技術使得應用原子化,所有的應用都可以獨立的部署、迭代;DevOps使得應用可以快速編譯、自動化測試、部署、發(fā)布、回滾,讓開發(fā)和運維一體化;持續(xù)交付讓應用可以頻繁發(fā)布、快速交付、快速反饋、降低發(fā)布風險;容器使得應用整體開發(fā)以容器為基礎,形成代碼組件復用、資源隔離。


避免內卷化的三大法寶(架構、性能優(yōu)化、新技術)我們便介紹完了。當然隨著技術的不斷發(fā)展,還會有源源不斷的新技術新理念提出,我們不斷的關注、學習、打磨自己基本功就好。在互聯(lián)網(wǎng)圈內還有一個潛規(guī)則便是程序員年齡不超過35歲,除了這批人上有老下有小、戰(zhàn)斗力不如年輕人之外,其次是正常的業(yè)務技能不夠過關。事實上,只要你穩(wěn)扎穩(wěn)打的夯實技術,不斷的提升自己能力,年齡根本不是任何問題,在疫情期間找工作,也完全沒有問題。避免內卷化的最核心因素,永遠都不是外在環(huán)境,而是你自己。所以,努力吧,后浪們,越努力越幸運

熱門班型時間
人工智能就業(yè)班 即將爆滿
AI應用線上班 即將爆滿
UI設計全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡安全運營班 爆滿開班
報名優(yōu)惠
免費試聽
課程資料
官方微信
返回頂部
培訓課程 熱門話題 站內鏈接