在軟件開發的過程當中,是否是總會遇到這些問題:
搭建一個開發環境,用了九牛二虎之力,悲催的是居然用不了……
團隊同事忽然出差,他寫的代碼出現問題,我卻不會改……
提高軟件件質量靠代碼,交叉看、找大拿,簡直太累了……
頻繁修改提交代碼,本地記錄本身看着都頭疼……
……
這些問題儘管不是軟件開發過程當中出現的所有障礙,但的確是開發者在工做過程當中碰到的「神坑」,怎麼規避?能夠聽一聽
華爲雲軟件開發雲的專家怎麼說!
關於開發環境不兼容的痛
據瞭解,華爲雲軟件開發雲提供的是一站式雲端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多所高校也創建示範性軟件學院聯盟。