国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

從零開始編寫自己的C#框架(3)——開發(fā)規(guī)范

2019-11-17 01:28:05
字體:
供稿:網(wǎng)友

從零開始編寫自己的C#框架(3)——開發(fā)規(guī)范

  由于是業(yè)余時間編寫,而且為了保證質(zhì)量,對寫出來的東西也會反復(fù)斟酌,所以每周只能更新兩章左右,請大家諒解,也請大家耐心等待,謝謝大家的支持。

  初學(xué)者應(yīng)該怎樣學(xué)習(xí)本系列內(nèi)容呢?根據(jù)我自己的學(xué)習(xí)經(jīng)驗,一般直接看一遍的方法,學(xué)習(xí)與認知都會比較淺,很快就忘了。而看完后寫筆記、手抄或?qū)⑺吹膬?nèi)容照著打一遍或多次的,可以比較深刻的理解文章或代碼中的思想,并能將里面的核心內(nèi)容牢記在心。

  對于開發(fā)規(guī)范,都是老生常談的事情了,很多正規(guī)一些的公司都有一套規(guī)范來約束,這些規(guī)范都是大同小異。

  規(guī)范為什么那么重要?為什么大家反復(fù)提而初學(xué)者們都是當作耳邊風(fēng),無視這些要求呢?下面先舉幾個例子給初學(xué)者說明一下。

  08年的時候在一家主要做OA開發(fā)的公司,負責(zé)OA的二次開發(fā),當時接到項目代碼時傻眼了,沒有文檔、沒有數(shù)據(jù)字典,代碼規(guī)范就不要講了,代碼中的變量命名與數(shù)據(jù)庫表和字段全是用拼音首字母來命名的,當時真有想死的感覺。當時只能感嘆說,原開發(fā)人員真是太奇葩了。

  記得幾年前帶過的一批應(yīng)屆生(當時公司對代碼要求不是很嚴格,只追求能快速出產(chǎn)品),在進公司的時候我也詳細為他們講了開發(fā)規(guī)范以及相關(guān)要求,然后進入開發(fā)狀態(tài)。而對于這些新進公司的同事來說,開始時應(yīng)該都會覺得我比較煩,又要求開發(fā)規(guī)范也要求編寫開發(fā)文檔。不過因為公司不太重視,所以當時也沒有很好的實行下去,那他們對開發(fā)規(guī)范也就不重視了。

  一開始做的項目還好,給一些不太復(fù)雜的需求,而我也會經(jīng)常檢查他們的代碼,每周大概會有一到兩天抽空開個小會議,為他們講解代碼中存在的問題以及一些算法,所以代碼雖然不太規(guī)范,但也沒有什么問題。后來有一段時間特忙沒空理會大家,而他們也開始各自獨立負責(zé)一些小項目開發(fā)。其中一位開發(fā)的是一款《斗地主》Kjava手機游戲,經(jīng)過一段時間努力奮戰(zhàn)后游戲完成了,而這位同事由于個人原因也同時請辭離職,可想而知這個項目是什么結(jié)果。項目在測試時發(fā)現(xiàn)存在不少BUG,想叫人接手這個項目時,才發(fā)現(xiàn)無人可以接手,因為項目里的注釋量少,又沒有完善的開發(fā)文檔,而代碼編碼也不夠規(guī)范,花上不少時間研究也沒弄清里面的關(guān)系......最終的結(jié)果是公司花了不少投入而得出一個無法維護的項目。

  還有一個比較經(jīng)典的案例也是KJava手機項目,做的是《日歷》類的應(yīng)用軟件,開發(fā)人員花了大量的時間,研究中國農(nóng)歷的時辰、二十八宿、五行、天干地支、民俗吉兇日等內(nèi)容,終于開發(fā)出能自動計算每日時辰吉兇禁忌的手機日歷,投入到市場也有很不錯的下載量和收入,推廣效果很好。產(chǎn)品投入市場三個月后,領(lǐng)導(dǎo)要求對該項目進行二次開發(fā),增加一些新的需求,當這位同事重新熟悉自己寫的代碼時才發(fā)現(xiàn),自己也很難看懂自己寫過的代碼了~~~大家是不是覺得不太可能發(fā)生這種事情,自己寫過的代碼也會不記得?呵呵......主文件2K多行代碼沒有多少注釋,功能調(diào)用比較混亂,命名與編碼也不規(guī)范,再加上各種時辰吉兇禁忌的計算......聽到這些你是否已經(jīng)開始暈了,最后他自己也只能做一些UI的修改,當然在這以后他對代碼規(guī)范的重視也就完全不一樣了。

  當然例子還有很多,這類型的例子并不是偶然現(xiàn)象,相信類似的情型也曾發(fā)生過在不少公司項目中,為什么會發(fā)生這么多類似的案例呢?大家在追求高效開發(fā),快速產(chǎn)出的時候,與代碼規(guī)范也并不沖突???

  接觸多不少類似項目后,發(fā)現(xiàn)主要原因可能有這幾個方面:

  第一是沒有一個好的開發(fā)框架,對于新人來說,還沒有養(yǎng)成良好的開發(fā)習(xí)慣,接觸的項目也很少,他們不知道如何去規(guī)范自己的代碼,也沒有成熟的例子給他們模仿,在開發(fā)的時候過于自由沒有約束的話,就會自由發(fā)揮,將那里影響自己開發(fā)速度,不喜歡的事情全部剔除,然后做出的東西就非常個性化啦;

  第二是不懂得開發(fā)規(guī)范的重要性(根本不重視),覺得自己寫的代碼自己肯定可以看得懂,至于其他人能否看得明白那就無所謂啦,看不明白就最好,那樣的話公司就離不開自己,萬一公司想炒掉自己這個項目可能就黃了?;蛘叽a自己很熟悉,自以為別人也一樣能看明白。但他們沒有考慮的是,可讀性好、嚴格執(zhí)行開發(fā)規(guī)范的代碼在應(yīng)聘新公司時其實就是一張非常好的敲門磚。

  第三是公司領(lǐng)導(dǎo)不重視,上行下效,如果領(lǐng)導(dǎo)層都不重視,那怎么將開發(fā)規(guī)范貫徹下去?

  第四是技術(shù)主管不懂得代碼規(guī)范以及其重要性。

  ......

  當然也有可能是其他方面的原因,但最重要的還是開發(fā)者自身問題,如果你有有一個良好的開發(fā)習(xí)慣,那么其他外因都影響不到你。

  而遵守開發(fā)規(guī)范真的會浪費你的開發(fā)時間,降低開發(fā)效率嗎?

  對于我本人的開發(fā)習(xí)慣來說,代碼中的注釋非常多,幾乎占代碼量的1/3到1/2(這只是個人習(xí)慣,并不推薦大家都用這種方法),很多人都會覺得不可思議,也許很多人都會想,你這個家伙太浪費時間了,老板真是浪費金錢養(yǎng)你......哈哈......真正的事實是我所在公司的技術(shù)團隊中,10年以上經(jīng)驗的大牛占了一半,而我的開發(fā)速度與效率可以排在前二,為什么呢?第一我對開發(fā)規(guī)范比較重視,已成為我的一種習(xí)慣;第二我打字非???;第三我對項目很了解;第四我必須這么做,因為開發(fā)出來的框架、封裝好的類與函數(shù)是直接提供給其他同事調(diào)用的,如果開發(fā)不夠規(guī)范且注釋又少的話,那其他同事就會很頭痛了,那么可能要花很多時間與大家溝通說新增了什么功能,它的做什么用的,該怎么調(diào)用等等,這樣會浪費很多開發(fā)時間。

  嚴格按開發(fā)規(guī)范實施,編寫大量注釋表面看會占用不少時間,但從長期的角度來看,它提高了團隊的開發(fā)效率,對二次開發(fā)維護也有非常重要的幫助。大家可以設(shè)想一下,幾十萬行的代碼,如果沒有好的注解,那就得天天在做猜迷游戲,經(jīng)常要與大家溝通,了解某個函數(shù)是如何使用的,或干脆不用別人已開發(fā)的功能,自己重新寫過,那太多的個性化會使項目將來維護起來特別麻煩,這將很大的浪費團隊開發(fā)效率。而項目在進行二次開發(fā)維護時,由于時間跨度或接手的人不同了,那他要了解之前的功能以及相關(guān)業(yè)務(wù)流程,那將是多少苦逼的事情。

  如果一個系統(tǒng)只需要100行代碼,那里問題也不大。如果有一千行代碼,那么認真研究一下也沒可以搞定。要是一萬行、十萬行以上代碼時,不要說別人要理解你開發(fā)的框架中,各個接口、類、函數(shù)是干什么用的,就算是自己過了段時間也會不清楚為什么代碼是這樣寫的,設(shè)置某個參數(shù)到底有什么用,某些函數(shù)是做什么用的......

  看過有園友在博客上說,只要命名規(guī)范,寫不寫注釋是無所謂的事情,呃......這個嘛要根據(jù)國情,國內(nèi)很多開發(fā)人員的E文并不怎么樣,當然也包括我在內(nèi),沒有注釋的話相信不少朋友會很暈,看得很吃力,除非公司能有非常好的文檔與足夠的時間給予學(xué)習(xí)。這可能也是我這菜鳥水平,沒辦法進那些高大上公司的原因,呵呵......

  講了一大堆看似無關(guān)的事情,其實主要目的是告訴初學(xué)者們,開發(fā)規(guī)范比你們想象中還重要,所以接下來就不要再懶惰了,從現(xiàn)在起認真要求自己,養(yǎng)成良好的開發(fā)習(xí)慣,對你的職業(yè)生涯的幫助將會非常大。

  那么本框架開發(fā)中,我們要使用什么樣的開發(fā)規(guī)范呢?

  網(wǎng)上很多規(guī)范內(nèi)容都非常詳細,并不一定適合本本項目,所以針對本項目的需求我對相關(guān)的規(guī)范文檔進行了一些修改。對于本文檔你只要了解就可以了,具體到編碼時你按我代碼中的風(fēng)格嘗試去編寫,慢慢你就可以掌握大部分的要求了,至于更詳細更規(guī)范的要求,等本項目完成后大家再繼續(xù)自己去進修吧o(∩_∩)o

  

  文檔下載地址:點擊下載

  

版權(quán)聲明:  本文由AllEmpty原創(chuàng)并發(fā)布于博客園,歡迎轉(zhuǎn)載,未經(jīng)本人同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責(zé)任的權(quán)利。如有問題,可以通過1654937@QQ.com 聯(lián)系我,非常感謝。

  發(fā)表本編內(nèi)容,只要主為了和大家共同學(xué)習(xí)共同進步,有興趣的朋友可以加加Q群:327360708 或Email給我(1654937@qq.com),大家一起探討。

  更多內(nèi)容,敬請觀注博客:http://m.survivalescaperooms.com/EmptyFS/


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 望都县| 南宫市| 青神县| 赫章县| 赤峰市| 富源县| 衡阳县| 丹凤县| 东乌珠穆沁旗| 富锦市| 江山市| 洱源县| 建水县| 蕲春县| 古蔺县| 永德县| 远安县| 焉耆| 南华县| 宁武县| 资溪县| 衡水市| 渑池县| 昆山市| 海丰县| 且末县| 麟游县| 鲁甸县| 海口市| 东海县| 九龙县| 桦甸市| 林口县| 青川县| 绥化市| 达孜县| 土默特左旗| 大兴区| 衡水市| 永丰县| 大同市|