天天看點

新生代農民工的十八般武藝,你都了解嗎

摘要:作為新生代農民工,行走江湖,必身懷秘技,“碼農”的十八般武藝,你都了解嗎?

本文分享自華為雲社群《新生代農民工的十八般武藝,你都了解嗎》,作者: 靈活的小智 。

随着IT産業的迅猛發展,新的研發技術層出不窮——開發語言從之前單一的Java、C++,變成Java、Python、Go等多語言混合程式設計;技術架構從Servlet+JDBC演進至Spring Boot、Spring Cloud等微服務架構;同時,IT行業從業者越來越多——2020年北京市外來新生農民工檢測報告中,已将資訊傳輸、軟體和資訊技術服務業從業者納入新生代農民工——程式員從之前的高新人才變成了新生代農民工,真正坐實了“碼農”身份,想要更好的就業,之前的“一招鮮,吃遍天”顯然不管用,開發者需要掌握多個次元的研發能力,比如前端開發、後端開發、移動端開發,這樣才能保證自身競争力。

作為新生代農民工,行走江湖,必身懷秘技,“碼農”的十八般武藝,你都了解嗎?

程式設計語言是軟體開發的基礎,熟練掌握一門程式設計語言,則是一個開發者的立足之本,但僅僅掌握一門程式設計語言,即便是技術再娴熟,也很難脫穎而出。

根據TIOBE 的8月最新程式設計語言榜單,有11.86%的開發者選擇使用Python進行軟體開發,而Java使用率隻有10.43%,被Python反超。由于人工智能的蓬勃發展,Python的興起似乎成為了必然——Python 俨然成為世界上最受歡迎的程式設計語言之一。同時,GO、PHP等語言的使用率近年來也一直在提升。

再回到2012-2016,當時 Objective-C(簡稱OC)作為iOS 應用開發的首選程式設計語言,一時風頭無兩,但在近幾年,OC幾乎退出了大衆的視野。隻掌握一門程式設計語言,很難和其他開發者展現出差異性,同時也會感受到時代進步帶來的危機感。

微服務架構作為當下最流行的開發架構,其優點是可以多語言混合程式設計,各個服務之間通過API進行互動。如果能夠同時掌握兩種語言以及一些主流的架構,比如Java和Python,則自身競争力會大大提升,可以應對的業務場景多了很多;而且面對Python崗位自己也可以勝任。

衡量一個開發者是否優秀,除了會寫代碼之外,代碼的執行效率以及規範性也是至關重要的。

很多開發者往往隻關注程式的功能是否正确,而忽視品質的其它屬性。至于程式設計規範,很多開發者更是覺得沒有必要:我不遵守這些規範,程式不是執行的也很好嗎?實際上,代碼不僅僅是被機器執行的,還是給人看的。不遵循規範的代碼,往往可讀性差,不利于了解,是以不利于維護。而軟體維護成本通常占整個生命周期成本的40%~80%,是以,遵循程式設計規範編寫代碼很重要。

程式設計規範大緻分為兩類:代碼風格類以及程式設計實踐類。

代碼風格類規範包括辨別符的命名、格式以及注釋風格等。此類規範引導開發團隊使用統一的代碼風格進行開發。一緻的編碼習慣與風格,會使代碼更容易閱讀、了解,也更容易維護。

程式設計實踐類規範則包含程式設計語言特性相關的條款,比如資料類型、常量與變量的使用,表達式、語句,函數設計與使用,資源管理以及錯誤處理等。

開發者想将各種程式設計規範爛熟于心,顯然是困難的,我們可以借助一些代碼檢查的開源工具如華為雲DevCloud的CodeCheck,來鞭策自己的代碼品質。

新生代農民工的十八般武藝,你都了解嗎

同時如果公司有一套良好的代碼檢視流程,也盡量去配合、适應,不要敷衍抗拒,這對開發者行走江湖是大有裨益的。

雲原生的目的是為了各組織在公有雲、私有雲和混合雲等新型動态環境中,建構和運作可彈性擴充的應用。其包含技術很多,代表技術包括容器、服務網格、微服務、DevOps等,我們就從幾個關鍵技術入手,簡單了解下雲原生。

新生代農民工的十八般武藝,你都了解嗎

容器:容器技術起源于程序隔離虛拟化技術,容器技術很好的實作了應用可移植,并且不依賴于特定的基礎架構。

容器技術中的代表是Docker,Docker可以将應用的全部運作環境打成一個鏡像檔案,在特定容器中進行啟動,這樣做可以確定主控端的環境不遭到破壞。Docker有助于建構統一的開發、內建環境,是雲原生應用的最佳傳遞載體。

其實早在2017 年 , 就有大量企業嘗試使用容器替換現有人工智能、大資料的基礎平台,通過容器更小粒度的資源劃分、更快的擴容速度、更靈活的任務排程,以及天然的計算與存儲分離架構等特點,幫助人工智能、大資料在業務性能大幅提升的同時,還能更好的控制成本。

微服務:微服務是一種雲原生架構方法,其中單個應用程式由許多松散耦合且可獨立部署的較小元件或服務組成。

微服務中的每個服務通常有自己獨立的資料庫和資料模型,同時每個服務之間通過API進行通信,進而避免了資料庫在各服務間共享。

微服務的松耦合性允許其将業務拆分成更細小的服務單元,更便于傳遞;同時微服務中每個服務單元均可獨立的更新、部署,是以相比單體架構或者SOA架構來說,微服務可以為開發者帶來更快的傳遞節奏。

DevOps:更快的傳遞節奏,意味着更高的釋出頻率,單純依靠傳統的運維模式很難及時響應高頻率的釋出節奏。DevOps很好的解決了這個問題。

DevOps,即Development and Operations,是一組過程、方法與系統的統稱,用于促進軟體開發、運維和品質保障部門之間的溝通、協作與整合。

DevOps以應用部署自動化作為切入點,依托自動化工具如Jenkins,将部署自動化,往前倒逼測試自動化、建構自動化;進一步往前,配置管理、變更管理是基礎要求。頻繁的釋出意味着每次釋出包含的變化更少,每次部署不會對生産系統造成巨大影響,應用程式會以平滑的速率逐漸生長(這裡涉及到持續傳遞的概念),逐漸協調和彌合開發與運維之間的技能和溝通鴻溝。

新生代農民工的十八般武藝,你都了解嗎

軟體開發博大精深,除上述幾點外,要提升個人能力的方向還有很多,比如軟技能、知識管理等,我們需要自己去探索、學習、實踐。

習武之人十八般武藝樣樣要有,樣樣亦要精通,想知道自身各種技藝的熟練度,歡迎到華為雲DevCloud專家服務進行測評。

點選關注,第一時間了解華為雲新鮮技術~

繼續閱讀