華為雲軟體開發雲VS開發痛點=?

devopscsdn發表於2018-01-11
在軟體開發的過程中,是不是總會遇到這些問題:
搭建一個開發環境,用了九牛二虎之力,悲催的是竟然用不了……
團隊同事突然出差,他寫的程式碼出現問題,我卻不會改……
提升軟體件質量靠程式碼,交叉看、找大拿,簡直太累了……
頻繁修改提交程式碼,本地記錄自己看著都頭疼……
……
這些問題儘管不是軟體開發過程中出現的全部障礙,但的確是開發者在工作過程中碰到的“神坑”,怎麼規避?可以聽一聽華為雲軟體開發雲的專家怎麼說!
關於開發環境不相容的痛
據瞭解,華為雲軟體開發雲提供的是一站式雲端DevOps平臺,其中包含的是端到端的工具服務,這樣就會覆蓋不同的角色,包括管理、開發還有運維,筆者理解其實這樣的一個平臺可以極大可能地解決整個鏈條上出現的諸多問題,例如開發環境不相容、程式碼檢查與整合等,而不用再尋找更多的解決方案分段解決問題。
在軟體開發雲上,雲端的開發環境被稱為CloudIDE。簡單來說就是開啟一個瀏覽器,在瀏覽器中完成程式碼的編寫和除錯,不用特別安裝IDE的環境。據悉,這款雲端的開發環境已經可以做到12種主流語言的支援,並可以做到一鍵式自主選擇開發的技術框架棧,快速構建開發環境,這就很好地解決了開發者在開發過程中勞心的問題。
華為雲軟體開發雲運營總監張勇
更重要的是,開發好的環境可以複製到團隊其他程式設計師手中,避免了二次開發的時間浪費,既然可以複製就可以有效解決環境不一致的問題,就算團隊中的成員突然出差,程式碼出現問題需要補充以及修改,只要直接在自己的電腦上開啟瀏覽器,就可以完成程式碼的開發和修復工作,有效解決了開發者在開發過程中的勞力問題。
華為雲軟體開發雲高階產品經理馬兵東對筆者說,這個環境中還整合了程式碼倉庫、程式碼檢查、程式碼評審等相關功能,最終實現的目標就是可以將開發環境的配置時間極大程度地縮短,由天級降到分鐘級,目前來看這個改變是有效的。
舉個例子,中譯語通(青島)有限公司企業大資料事業部副總經理安青這樣總結CloudIDE在業務實踐中的表現。“大家可以看到,我們公司做的國家級平臺比較多,在多平臺的開發環境搭建中,由於業務的多樣化屬性往往出現需要構建多個開發環境的問題,這種情況非常耗時耗力,有時候由於環境版本和框架要求不同,會存在相容性差的缺陷。”
解決這種問題,中譯語通選擇採用華為雲軟體開發雲,主要是由於其支援java、PHP、Python等多種主流開發語言,同時支援大資料、APP、web等多種應用開發環境。統一的開發環境構建功能為多種業務並行所要求的複雜的開發環境構建提供了可能性,並同時降低了環境配置的成本。
客戶難以實時參與的痛
在敏捷開發的時代,一個好的產品、專案的標準就是要滿足客戶的需求並且及時響應客戶的變化。在這方面大連華數大資料科技有限公司深有體會。
大連華數是一家專注於為工業、金融、政務等行業領域客戶,提供大資料技術產品、行業應用、諮詢規劃一體化服務的高科技公司。CEO李闖向筆者介紹,其公司開發數控機床智慧運維雲服務平臺時,便遇到了這種客戶無法實時參與專案、瞭解專案進展、把控專案風險、需求反饋不及時的情況。
採用華為雲軟體開發雲後,基於軟體開發雲提供的一站式雲端DevOps平臺,覆蓋了管理角色、開發角色還有運維的角色,把這些角色放在開發閉環裡面,使得專案完成度一目瞭然的,從而幫助專案管理者、最終客戶實現管理透明,專案透明。
程式碼檢查太複雜的痛
都知道想要提升軟體質量很重要的一方面就是程式碼寫的好,但是程式碼的優化不能單純依賴人力,實際上更多的還要靠一些管理手段,華為雲軟體開發雲對此配置了程式碼檢查的功能。華為雲軟體開發雲運營總監張勇表示,目前我們的程式碼檢查可以在一定程度上替代人力,可以有效緩解有些緩解規模比較小的企業通過交叉檢查、聘用高水平人才替代檢查造成的效率較低的情況。
從現實出發,如果程式碼量較大也不支援這種人力形式的檢查方式,同時還會出現程式碼剽竊的現象,有資料顯示,軟體開發雲的程式碼檢查系統中有1800多條規則,應對常見的程式碼問題是沒問題的。
此外這種設定可以做到提前發現程式碼編碼的問題,架構的問題及編碼風格的問題,有效避免冗餘程式碼,最後還可以輔助程式設計師修改程式碼。
據筆者瞭解,程式碼檢查的設定並不在程式碼倉庫中,而是有一個程式碼檢查的引擎幫助完成,其中涉及到一個端到端的加密通道。每次進行檢查的工作時,會將程式碼放到規則庫中過濾,觀察程式碼檢查得出的結論。目前來說這個程式碼檢查的規則庫還並沒有固定的檢查以及更新頻率,但是有資料可以補充參考下:九月初為1425條規則,到上週看應該是1873條規則。
值得一提的是,程式碼檢查的規則本身支援一些使用者自定義適合企業的檢查規則。
那麼軟體開發雲程式碼檢查功能這些規則從哪兒來?第一個來源是不斷把業界一些先進的程式碼檢查規則以及有些先進公司分享出來的規則做出整合;還有一部分是根據華為本身的軟體開發經驗的規則總結;另一方面則是每上線一種成熟的開發語言必須會隨之配套相關的規則。
程式碼檢查除了是開發者的一項福利之外,更重要的一方面,開發者本身的程式設計技巧的訓練也可以通過1800多條程式碼建議進行提升,很大程度提高了程式設計師的程式設計技巧和編寫程式碼的規範。
從初級研發工程師到資深技術專家的成長過程中,華為雲軟體開發雲可以更好地為初級研發人員提供可協作的線上編譯構建能力,根據研發場景自定義程式碼檢查規則集以及提供華為經典開原始碼為指導,從而加快員工的成長速度。
檢視歷史記錄與程式碼整合的痛
為什麼要提高程式碼合併的效率?以前中央式的程式碼倉庫,程式設計師去做程式碼合併的時候都是向同一個倉庫中不斷持續的完成合並這個行為,當一個開發者去合併這個程式碼的時候,會產生一些新的Gap,後面的開發者繼續合併的時候需要把前面的Gap一同合併上。
使用Git時,由於本地已經存在了完整的歷史記錄,導致程式碼提交的頻率不會像原來那麼高。對此,華為軟體開發雲一般構建Feature的分支,一段時間內只關注Feature分支就可以,然後再做一次程式碼的合併,合併後會基於分支去開發commit,這樣粒度比較小,只需要解決一些小問題。另外Git本身會帶有一些智慧合併的功能。
據悉,程式碼倉庫有不同的分支,在遠端的雲上存在的分支數不會直接導致每個人的程式碼在雲端有多個版本的程式碼,如果遠端有三個分支的話,本地根據需要可能只有一個開發分支。
據瞭解,目前華為雲軟體開發雲已經在大連、青島、福州等城市成立創新中心,提供線下技術支援,支撐產業轉型升級,在服務2000多家企業,5萬多名開發者的同時,與清華、北大、北航等30多所高校也建立示範性軟體學院聯盟。

相關文章