在軟件開發(fā)的過程中羊赵,是不是總會(huì)遇到這些問題:
搭建一個(gè)開發(fā)環(huán)境趟佃,用了九牛二虎之力,悲催的是竟然用不了……
團(tuán)隊(duì)同事突然出差昧捷,他寫的代碼出現(xiàn)問題闲昭,我卻不會(huì)改……
提升軟件件質(zhì)量靠代碼,交叉看靡挥、找大拿序矩,簡(jiǎn)直太累了……
頻繁修改提交代碼,本地記錄自己看著都頭疼……
……
這些問題盡管不是軟件開發(fā)過程中出現(xiàn)的全部障礙跋破,但的確是開發(fā)者在工作過程中碰到的“神坑”簸淀,怎么規(guī)避?可以聽一聽華為云軟件開發(fā)云的專家怎么說毒返!
關(guān)于開發(fā)環(huán)境不兼容的痛
據(jù)了解租幕,華為云軟件開發(fā)云提供的是一站式云端DevOps平臺(tái),其中包含的是端到端的工具服務(wù)拧簸,這樣就會(huì)覆蓋不同的角色劲绪,包括管理、開發(fā)還有運(yùn)維,筆者理解其實(shí)這樣的一個(gè)平臺(tái)可以極大可能地解決整個(gè)鏈條上出現(xiàn)的諸多問題珠叔,例如開發(fā)環(huán)境不兼容蝎宇、代碼檢查與整合等,而不用再尋找更多的解決方案分段解決問題祷安。
在軟件開發(fā)云上姥芥,云端的開發(fā)環(huán)境被稱為CloudIDE。簡(jiǎn)單來說就是打開一個(gè)瀏覽器汇鞭,在瀏覽器中完成代碼的編寫和調(diào)試凉唐,不用特別安裝IDE的環(huán)境。據(jù)悉霍骄,這款云端的開發(fā)環(huán)境已經(jīng)可以做到12種主流語言的支持台囱,并可以做到一鍵式自主選擇開發(fā)的技術(shù)框架棧,快速構(gòu)建開發(fā)環(huán)境读整,這就很好地解決了開發(fā)者在開發(fā)過程中勞心的問題簿训。
華為云軟件開發(fā)云運(yùn)營(yíng)總監(jiān)張勇
更重要的是,開發(fā)好的環(huán)境可以復(fù)制到團(tuán)隊(duì)其他程序員手中米间,避免了二次開發(fā)的時(shí)間浪費(fèi)强品,既然可以復(fù)制就可以有效解決環(huán)境不一致的問題,就算團(tuán)隊(duì)中的成員突然出差屈糊,代碼出現(xiàn)問題需要補(bǔ)充以及修改的榛,只要直接在自己的電腦上打開瀏覽器,就可以完成代碼的開發(fā)和修復(fù)工作逻锐,有效解決了開發(fā)者在開發(fā)過程中的勞力問題夫晌。
華為云軟件開發(fā)云高級(jí)產(chǎn)品經(jīng)理馬兵東對(duì)筆者說,這個(gè)環(huán)境中還集成了代碼倉庫昧诱、代碼檢查晓淀、代碼評(píng)審等相關(guān)功能,最終實(shí)現(xiàn)的目標(biāo)就是可以將開發(fā)環(huán)境的配置時(shí)間極大程度地縮短盏档,由天級(jí)降到分鐘級(jí)要糊,目前來看這個(gè)改變是有效的。
舉個(gè)例子妆丘,中譯語通(青島)有限公司企業(yè)大數(shù)據(jù)事業(yè)部副總經(jīng)理安青這樣總結(jié)CloudIDE在業(yè)務(wù)實(shí)踐中的表現(xiàn)锄俄。“大家可以看到勺拣,我們公司做的國(guó)家級(jí)平臺(tái)比較多奶赠,在多平臺(tái)的開發(fā)環(huán)境搭建中,由于業(yè)務(wù)的多樣化屬性往往出現(xiàn)需要構(gòu)建多個(gè)開發(fā)環(huán)境的問題药有,這種情況非常耗時(shí)耗力毅戈,有時(shí)候由于環(huán)境版本和框架要求不同苹丸,會(huì)存在兼容性差的缺陷∥”
解決這種問題赘理,中譯語通選擇采用華為云軟件開發(fā)云,主要是由于其支持java扇单、PHP商模、Python等多種主流開發(fā)語言,同時(shí)支持大數(shù)據(jù)蜘澜、APP施流、web等多種應(yīng)用開發(fā)環(huán)境。統(tǒng)一的開發(fā)環(huán)境構(gòu)建功能為多種業(yè)務(wù)并行所要求的復(fù)雜的開發(fā)環(huán)境構(gòu)建提供了可能性鄙信,并同時(shí)降低了環(huán)境配置的成本瞪醋。
客戶難以實(shí)時(shí)參與的痛
在敏捷開發(fā)的時(shí)代,一個(gè)好的產(chǎn)品装诡、項(xiàng)目的標(biāo)準(zhǔn)就是要滿足客戶的需求并且及時(shí)響應(yīng)客戶的變化银受。在這方面大連華數(shù)大數(shù)據(jù)科技有限公司深有體會(huì)。
大連華數(shù)是一家專注于為工業(yè)鸦采、金融宾巍、政務(wù)等行業(yè)領(lǐng)域客戶,提供大數(shù)據(jù)技術(shù)產(chǎn)品赖淤、行業(yè)應(yīng)用蜀漆、咨詢規(guī)劃一體化服務(wù)的高科技公司谅河。CEO李闖向筆者介紹咱旱,其公司開發(fā)數(shù)控機(jī)床智能運(yùn)維云服務(wù)平臺(tái)時(shí),便遇到了這種客戶無法實(shí)時(shí)參與項(xiàng)目绷耍、了解項(xiàng)目進(jìn)展吐限、把控項(xiàng)目風(fēng)險(xiǎn)、需求反饋不及時(shí)的情況褂始。
采用華為云軟件開發(fā)云后诸典,基于軟件開發(fā)云提供的一站式云端DevOps平臺(tái),覆蓋了管理角色崎苗、開發(fā)角色還有運(yùn)維的角色狐粱,把這些角色放在開發(fā)閉環(huán)里面,使得項(xiàng)目完成度一目了然的胆数,從而幫助項(xiàng)目管理者肌蜻、最終客戶實(shí)現(xiàn)管理透明,項(xiàng)目透明必尼。
代碼檢查太復(fù)雜的痛
都知道想要提升軟件質(zhì)量很重要的一方面就是代碼寫的好蒋搜,但是代碼的優(yōu)化不能單純依賴人力篡撵,實(shí)際上更多的還要靠一些管理手段,華為云軟件開發(fā)云對(duì)此配置了代碼檢查的功能豆挽。華為云軟件開發(fā)云運(yùn)營(yíng)總監(jiān)張勇表示育谬,目前我們的代碼檢查可以在一定程度上替代人力,可以有效緩解有些緩解規(guī)模比較小的企業(yè)通過交叉檢查帮哈、聘用高水平人才替代檢查造成的效率較低的情況膛檀。
從現(xiàn)實(shí)出發(fā),如果代碼量較大也不支持這種人力形式的檢查方式但汞,同時(shí)還會(huì)出現(xiàn)代碼剽竊的現(xiàn)象宿刮,有數(shù)據(jù)顯示,軟件開發(fā)云的代碼檢查系統(tǒng)中有1800多條規(guī)則私蕾,應(yīng)對(duì)常見的代碼問題是沒問題的僵缺。
此外這種設(shè)置可以做到提前發(fā)現(xiàn)代碼編碼的問題,架構(gòu)的問題及編碼風(fēng)格的問題踩叭,有效避免冗余代碼磕潮,最后還可以輔助程序員修改代碼。
據(jù)筆者了解容贝,代碼檢查的設(shè)置并不在代碼倉庫中自脯,而是有一個(gè)代碼檢查的引擎幫助完成,其中涉及到一個(gè)端到端的加密通道斤富。每次進(jìn)行檢查的工作時(shí)膏潮,會(huì)將代碼放到規(guī)則庫中過濾,觀察代碼檢查得出的結(jié)論满力。目前來說這個(gè)代碼檢查的規(guī)則庫還并沒有固定的檢查以及更新頻率焕参,但是有數(shù)據(jù)可以補(bǔ)充參考下:九月初為1425條規(guī)則,到上周看應(yīng)該是1873條規(guī)則油额。
值得一提的是叠纷,代碼檢查的規(guī)則本身支持一些用戶自定義適合企業(yè)的檢查規(guī)則。
那么軟件開發(fā)云代碼檢查功能這些規(guī)則從哪兒來潦嘶?第一個(gè)來源是不斷把業(yè)界一些先進(jìn)的代碼檢查規(guī)則以及有些先進(jìn)公司分享出來的規(guī)則做出集成涩嚣;還有一部分是根據(jù)華為本身的軟件開發(fā)經(jīng)驗(yàn)的規(guī)則總結(jié);另一方面則是每上線一種成熟的開發(fā)語言必須會(huì)隨之配套相關(guān)的規(guī)則掂僵。
代碼檢查除了是開發(fā)者的一項(xiàng)福利之外航厚,更重要的一方面,開發(fā)者本身的編程技巧的訓(xùn)練也可以通過1800多條代碼建議進(jìn)行提升锰蓬,很大程度提高了程序員的編程技巧和編寫代碼的規(guī)范幔睬。
從初級(jí)研發(fā)工程師到資深技術(shù)專家的成長(zhǎng)過程中,華為云軟件開發(fā)云可以更好地為初級(jí)研發(fā)人員提供可協(xié)作的在線編譯構(gòu)建能力互妓,根據(jù)研發(fā)場(chǎng)景自定義代碼檢查規(guī)則集以及提供華為經(jīng)典開源代碼為指導(dǎo)溪窒,從而加快員工的成長(zhǎng)速度坤塞。
查看歷史記錄與代碼整合的痛
為什么要提高代碼合并的效率?以前中央式的代碼倉庫澈蚌,程序員去做代碼合并的時(shí)候都是向同一個(gè)倉庫中不斷持續(xù)的完成合并這個(gè)行為摹芙,當(dāng)一個(gè)開發(fā)者去合并這個(gè)代碼的時(shí)候,會(huì)產(chǎn)生一些新的Gap宛瞄,后面的開發(fā)者繼續(xù)合并的時(shí)候需要把前面的Gap一同合并上浮禾。
使用Git時(shí),由于本地已經(jīng)存在了完整的歷史記錄份汗,導(dǎo)致代碼提交的頻率不會(huì)像原來那么高盈电。對(duì)此,華為軟件開發(fā)云一般構(gòu)建Feature的分支杯活,一段時(shí)間內(nèi)只關(guān)注Feature分支就可以匆帚,然后再做一次代碼的合并,合并后會(huì)基于分支去開發(fā)commit旁钧,這樣粒度比較小吸重,只需要解決一些小問題。另外Git本身會(huì)帶有一些智能合并的功能歪今。
據(jù)悉嚎幸,代碼倉庫有不同的分支,在遠(yuǎn)端的云上存在的分支數(shù)不會(huì)直接導(dǎo)致每個(gè)人的代碼在云端有多個(gè)版本的代碼寄猩,如果遠(yuǎn)端有三個(gè)分支的話嫉晶,本地根據(jù)需要可能只有一個(gè)開發(fā)分支。
據(jù)了解田篇,目前華為云軟件開發(fā)云已經(jīng)在大連替废、青島、福州等城市成立創(chuàng)新中心斯辰,提供線下技術(shù)支持舶担,支撐產(chǎn)業(yè)轉(zhuǎn)型升級(jí)坡疼,在服務(wù)2000多家企業(yè)彬呻,5萬多名開發(fā)者的同時(shí),與清華柄瑰、北大闸氮、北航等30多所高校也建立示范性軟件學(xué)院聯(lián)盟。