新生代農民工的十八般武藝,你都了解嗎
前言
隨著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專家服務進行測評。
專家服務 敏捷開發 軟件開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。