?今天我們來說說程序員如何避免內卷化

                                                編輯:合工大北大青鳥 時間:2021-04-12 18:09:43 點擊量:

                                                很多年輕人在職場待久了都會發現一個問題,就是工作上出現內卷化的情況,那么什么是內卷化呢?為什么會出現內卷化的情況呢?在這里北大青鳥合肥校區的袁老師跟你詳細說說吧。

                                                內卷化involution,在經濟學中指的是邊際效用持續遞減,它是出自于「1963年美國人類學家克利福德·格爾茨在印度尼西亞做田野調查時發現,在殖民地時代和后殖民地時代的爪哇島,人口沒有向資本和技術密集型產業集中,而是不斷地投入到有限的水稻生產,導致農業生產內部精細化」。
                                                 
                                                4.jpg
                                                 
                                                換成人話來說,以前你只要會Hadoop、MapReduce,你就可以很容易找到月薪1W的工作,而現在你可能都找不到工作了;以前一周你工作5*8小時就可以了,現在就要工作6*12小時??偟膩淼?,就是個人的價值被拉低了,變得不值錢了。今天我們就來講講程序員如何避免內卷化?
                                                作為程序員,只聚焦業務邏輯開發、CRUD是遠遠不夠的,架構、性能優化、新技術這些都是必須要掌握的,只有不斷努力的打磨技術,緊跟技術發展趨勢,以當下最優的方式解決業務訴求,保障高可用、高性能、高并發,才能避免內卷化,立于不敗之地。
                                                在架構知識學習中,我們需要了解架構的變遷(從單體服務→SOA架構→微服務架構→無服務架構)、架構模式的設計(分層架構、客戶端服務器架構、事件驅動架構)。
                                                單體架構就是把web服務器&業務程序&數據庫&后臺服務器全都放在一起(典型的Linux+Apache+Mysql+PHP),剛入門的開發來說可以快速搭建完整的應用網站;
                                                SOA架構就是將單體式服務進行拆分,由不同的團隊開發不同的服務,再通過ESB企業服務總線連接起來,業務規模不復雜的企業一般采用此架構;微服務架構就是把業務的每個服務模塊原子化,由不同的團隊開發維護上線不同的服務,服務與服務之間通過MQ消息中間件或RPC遠程調用連接起來,業務規模中上的企業一般采用此架構;中臺架構就是把多個業務模塊共用的能力抽象出來,由專門的團隊進行開發維護,并對上層提供接口,快速生成應用和迭代產品。
                                                分層架構設計模式主要是把整個架構分為展現層、業務層、持久層,“高內聚、低耦合”的設計思想讓每一層專注干自己的事情,展現層負責用戶界面數據展示、業務層負責處理業務邏輯、持久層負責數據持久化。
                                                在Java的設計開發中經常都采用這種模式(Service→Controller→DAO)。事件驅動架構主要思想是所有的業務動作觸發都由事件進行驅動、處理,這種模式能實現簡單小型系統到復雜大型系統的擴展。在分布式系統中常見的架構模式便是事件驅動,所有業務層發生的事項都通過消息中間件MQ傳遞,后臺監聽MQ消息隊列數據,進行業務處理。
                                                在性能優化中,我們需要了解接口設計、系統監控。在接口設計層面通過算法調優、技術架構升級、技術組件升級可以實現,此處我們不展開討論,主要看看系統監控模塊。監控就像我們的眼睛,幫我們監控著每筆業務操作、每次業務調用,通過選擇合適的監控工具、設定對應的監控指標,能提前發現問題、遇到問題及時解決。
                                                一個應用體系的全棧監控包含APP監控、瀏覽器監控、服務器監控、網絡監控、日志監控、基礎設施監控、物理環境監控。作為業務研發,我們主要關注App監控、瀏覽器監控、服務端監控就好,其余的交給運維同學關注。
                                                APP監控是通過打包時將探針安裝在對應的應用包里,形成正式包對外發布。當用戶手機下載了APP后,在使用APP的各個功能時,整個的行為軌跡也被探針記錄下來了,采集的數據包含開發的APP用戶日活、訪問區域、訪問版本等運營數據;
                                                用戶打開APP是否白屏、是否卡頓、是否緩慢、是否網絡被運營商劫持等運維數據,獲取到這些數據后可以幫助產品研發同學快速解決問題,提高用戶留存率、性能優化系統。
                                                Browser瀏覽器監控是把瀏覽器探針(一段js代碼)嵌入前端頁面,通過瀏覽器的onload事件、navigation事件等獲取頁面訪問的數據,比如瀏覽器基本信息、采集頁面性能數據、采集ajax性能數據和請求響應數據、JS錯誤數據、頁面追蹤數據等,再發送給到后臺處理加工,形成用戶運營數據(比如頁面PV、運營商信息、瀏覽器信息、訪問城市省會信息)、運維數據(比如ajax錯誤信息、js緩慢頁面信息)獲取到這些數據后可以幫助產品研發同學快速解決問題,提高用戶留存率、性能優化系統。
                                                Server服務器監控主要是在部署代碼的容器(比如tomcat、jvm、docker)中安裝探針,獲取服務調用鏈路、接口調用次數、函數執行堆棧、SQL執行情況、服務器CPU內存磁盤網絡等,幫助后端研發進行知道業務運行情況、進行系統性能優化。
                                                在新技術中,我們需要了解持續集成交付CICD、云原生、DevOps等。云原生應用就是運行在云平臺的應用,具備要有云的特點,比如彈性伸縮、分布式、快速部署、快速迭代、高效、持續,云原生的四大核心要素是微服務、DevOps、持續交付、容器化,可以說云原生已經容納了CICD、DevOps的設計思想,因此我們就以云原生展開進行講解。
                                                要實現云原生,這可不止是簡單的把原先在物理服務器上的應用遷移到虛擬機里,除了基礎設施和運行平臺在云上,應用架構、應用開發方式、應用部署方式、應用維護方式全都要做出改變。微服務技術使得應用原子化,所有的應用都可以獨立的部署、迭代;DevOps使得應用可以快速編譯、自動化測試、部署、發布、回滾,讓開發和運維一體化;持續交付讓應用可以頻繁發布、快速交付、快速反饋、降低發布風險;容器使得應用整體開發以容器為基礎,形成代碼組件復用、資源隔離。
                                                避免內卷化的三大法寶(架構、性能優化、新技術)我們便介紹完了。當然隨著技術的不斷發展,還會有源源不斷的新技術新理念提出,我們不斷的關注、學習、打磨自己基本功就好。
                                                在互聯網圈內還有一個潛規則便是程序員年齡不超過35歲,除了這批人上有老下有小、戰斗力不如年輕人之外,其次是正常的業務技能不夠過關。事實上,只要你穩扎穩打的夯實技術,不斷的提升自己能力,年齡根本不是任何問題,在疫情期間找工作,也完全沒有問題。避免內卷化的最核心因素,永遠都不是外在環境,而是你自己。
                                                 

                                                上一篇:合肥北大青鳥:一篇文章帶你了解Hadoop

                                                下一篇:Adobe XD是什么軟件?——UI設計新利器

                                                亚洲色欲天天天堂色欲网