軟件工程

一,現(xiàn)狀

????隨著社會(huì)日益發(fā)展,互聯(lián)網(wǎng)日益發(fā)達(dá),it技術(shù)服務(wù)的需求也越來越多。很多企業(yè)為了滿足這些需求,都采取快速迭代的方式,對(duì)軟件產(chǎn)品進(jìn)行開發(fā)。但很多情況下,需求無法控制,迭代質(zhì)量沒有辦法保證,一個(gè)項(xiàng)目越來越難維護(hù),維護(hù)人員難以為繼,逐漸離職。

出現(xiàn)上面提到的問題,其實(shí)很多情況是可以避免的,但是由于許多實(shí)際的原因,導(dǎo)致無法控制。例如,做產(chǎn)品定制的一些需求,有些需求對(duì)軟件原來的系統(tǒng)邏輯改變很大,甚至與原來的邏輯壓根不著邊,如果還要強(qiáng)制開發(fā),就無亞于在已經(jīng)建好的大樓下面加停車場(chǎng)。因此,此文希望能夠提供一些技巧性的方式,來減少因?yàn)檫@些實(shí)際性的問題導(dǎo)致的軟件工程無法正常繼續(xù)的問題。

二,技巧

1,代碼注釋

目前大多數(shù)的項(xiàng)目,雖然都提倡多寫注釋,但是卻很多情況下沒有做好。為什么呢?一來,注釋每個(gè)人的寫法都不一樣,二來,每個(gè)人總是按照自己的一套思路去寫,沒有一個(gè)規(guī)范去限制注釋應(yīng)該是怎么樣的。所以了,下面我從實(shí)際出發(fā),希望軟件開發(fā)的注釋是有以下特征的:

注釋應(yīng)該是有條理性,有順序性的,模塊化的。

為什么呢?舉個(gè)例子,假如你在維護(hù)一個(gè)500行以上的代碼塊時(shí),你會(huì)發(fā)現(xiàn),很多時(shí)候上面有n個(gè)人的注釋,每個(gè)人都只是在上面寫自己的注釋,后面維護(hù)的人接手的時(shí)候,你會(huì)發(fā)現(xiàn)這個(gè)代碼塊上面的注釋有時(shí)候前面的和后面的都已經(jīng)沒有什么關(guān)系了,甚至一些不維護(hù)的注釋都與原來改過的代碼不想干了,導(dǎo)致后面的人還要一點(diǎn)點(diǎn)的切入代碼,刨數(shù)據(jù)才能確定這個(gè)代碼塊當(dāng)前到底是做什么事情。因此,注釋應(yīng)該也是要維護(hù)起來的,最好是有順序性的,像書一樣,有目錄,有段落,有順序,有模塊,標(biāo)注于代碼的關(guān)鍵位置。

2,知識(shí)體系構(gòu)建

????一個(gè)產(chǎn)品涉及的業(yè)務(wù)非常多,甚至?xí)霈F(xiàn)很多專業(yè)化的名詞,例如對(duì)于電信boss系統(tǒng),有商品產(chǎn)品的概念,訂單概念等等,對(duì)于oa系統(tǒng)里面的考勤,有排班等等的概念,每個(gè)業(yè)務(wù)還有它們獨(dú)立的規(guī)則。或許一個(gè)系統(tǒng)在研發(fā)的初始階段會(huì)比較少這些東西,但是當(dāng)一個(gè)系統(tǒng)越來越大,例如一個(gè)開發(fā)了一個(gè)幾年的系統(tǒng),為了方便后續(xù)維護(hù)以及交流,對(duì)系統(tǒng)內(nèi)的一些業(yè)務(wù)做一個(gè)比較好的定義和定性是十分需要的。傳統(tǒng)的軟件工程理論是十分值得借鑒的,Uml的使用也十分重要。

但這里,我想提的一個(gè)觀點(diǎn)就是,要做好知識(shí)體系的構(gòu)建。

要理解一個(gè)龐大的系統(tǒng)的確不容易,總不能一下子就都了解完畢,但是總需要有先后順序去了解,就例如學(xué)習(xí)數(shù)學(xué)總是要從有理數(shù)過渡到無理數(shù)一樣,學(xué)習(xí)是有過程的,也是有它的知識(shí)體系的。對(duì)于一個(gè)系統(tǒng)內(nèi)的知識(shí)體系,如果構(gòu)建的比較恰當(dāng),那么,對(duì)于后續(xù)來的人員去理解系統(tǒng)就容易許多了。舉個(gè)例子,做過電信相關(guān)系統(tǒng)的,應(yīng)該都多少接觸過boss系統(tǒng)、三戶模型等的概念,因?yàn)橛羞@些概念,才得以讓如此復(fù)雜的電信系統(tǒng)能夠讓開發(fā)人員去理解和研發(fā)。
目前,絕大多數(shù)的公司都僅僅是通過最原始的方式去理解一個(gè)系統(tǒng),看界面,熟悉業(yè)務(wù),看代碼。這種方式是多么的原始,導(dǎo)致很多程序員遇到一個(gè)方法幾千行的時(shí)候,都有種三十六計(jì),走為上策的想法??上攵?,我們要有一個(gè)知識(shí)體系,去讓程序員能夠更好的理解系統(tǒng),完善系統(tǒng)。其中,軟件工程相關(guān)的知識(shí)或者一些工具應(yīng)該要拿部分適合自己公司的去實(shí)行,例如uml圖。又例如可以建立類似電信系統(tǒng)類似于三戶模型的一些概念,讓各個(gè)系統(tǒng)模塊能夠清晰的表達(dá)出來,相信這個(gè)對(duì)于連續(xù)開發(fā)周期以年為單位的系統(tǒng),能夠有很大的幫助。

3,工欲善其事,必先利其器

軟件開發(fā)不容易,對(duì)于一個(gè)龐大的組織架構(gòu)中,不同的人歸屬于不同的部門,各個(gè)部門彼此之間缺乏溝通,導(dǎo)致很多情況下,每個(gè)部門都有自己造自己的輪子的情況。最近流行的“中臺(tái)”概念,其實(shí)也是為了更好的將資源利用起來,減少不必要的浪費(fèi),讓部分輪子得以復(fù)用。軟件開發(fā)需要龐大的工具鏈支撐,除了開源的一些工具、中間件外,應(yīng)該還有很多是屬于公司自己開發(fā)的業(yè)務(wù)組件,屬于公司自己的架構(gòu)方法、方式、工具,所有的這些如果都能夠盡量利用起來,那么對(duì)于開發(fā)系統(tǒng)的效率將會(huì)有極大的提升。然而很多的公司卻只注重業(yè)務(wù),卻少了對(duì)基礎(chǔ)技術(shù)、框架的重視。例如,業(yè)界常見的數(shù)據(jù)庫分褲分表相關(guān)組件,對(duì)于大公司來說基本上都會(huì)有,然而對(duì)于某些公司來說,卻連用都沒用過,連基礎(chǔ)的組件都不愿意花時(shí)間去構(gòu)造,那么后面的研發(fā)時(shí)間對(duì)于擁有這些基礎(chǔ)組件的公司來說,那是多很多很多的。這里多出的不僅是研發(fā)時(shí)間,還有后續(xù)的維護(hù)成本,甚至可能會(huì)面臨重新開發(fā)的風(fēng)險(xiǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一 【我與陌生的你互道晚安?!?“這個(gè)靈感好評(píng)喔,晚安。” “安~” 必須在床上打滾一百圈才能揮發(fā)掉激動(dòng)之情?。》?..
    青絲常長(zhǎng)閱讀 255評(píng)論 0 0
  • 故事撩人心_5291閱讀 171評(píng)論 0 0

友情鏈接更多精彩內(nèi)容