從開(kāi)發(fā)框架提高開(kāi)發(fā)效率說(shuō)起

在我們接觸的很多項(xiàng)目中抠璃,如果有一些參考性的項(xiàng)目框架站楚,那么做起開(kāi)發(fā)來(lái),事半功倍搏嗡,一般來(lái)說(shuō)搭建或者積累這些框架性的項(xiàng)目窿春,非一日之功拉一。一般我們可以把具體的項(xiàng)目分為Winfrom、Web旧乞、微信蔚润、或者Socket等方面,具體項(xiàng)目界面表現(xiàn)不同尺栖,但是界面層底下的應(yīng)該都是差不多的結(jié)構(gòu)嫡纠,能夠支持多種數(shù)據(jù)庫(kù)的接入,提供更好的接口封裝延赌,以便重用除盏,實(shí)現(xiàn)最優(yōu)化代碼的處理。
軟件系統(tǒng)隨著業(yè)務(wù)的發(fā)展皮胡,變得越來(lái)越復(fù)雜痴颊,不同領(lǐng)域的業(yè)務(wù)所涉及到的知識(shí)、內(nèi)容屡贺、問(wèn)題非常非常多蠢棱。如果每次都從頭開(kāi)發(fā),那都是一個(gè)很漫長(zhǎng)的事情甩栈,且并不一定能將它做好泻仙。基于穩(wěn)定成熟的框架量没,開(kāi)發(fā)項(xiàng)目玉转,技術(shù)和時(shí)間都有保障,同時(shí)可以利用前人高效的工具進(jìn)行輔助開(kāi)發(fā)殴蹄,從而事半功倍究抓。

1、框架的主要特點(diǎn)和要求

從一些資料來(lái)解讀下開(kāi)發(fā)框架的特點(diǎn)袭灯,如下所示:代碼模板化刺下、重用、高內(nèi)聚(封裝)稽荧、規(guī)范橘茉、可擴(kuò)展、可維護(hù)姨丈、協(xié)作開(kāi)發(fā)畅卓、通用性。
  1蟋恬、代碼模板化
  框架一般都有統(tǒng)一的代碼風(fēng)格翁潘,同一分層的不同類代碼,都是大同小異的模板化結(jié)構(gòu)歼争,方便使用模板工具統(tǒng)一生成拜马,減少大量重復(fù)代碼的編寫(xiě)箱歧。在學(xué)習(xí)時(shí)通常只要理解某一層有代表性的一個(gè)類,就等于了解了同一層的其他大部分類結(jié)構(gòu)和功能一膨,容易上手呀邢。團(tuán)隊(duì)中不同的人員采用類同的調(diào)用風(fēng)格進(jìn)行編碼,很大程度提高了代碼的可讀性豹绪,方便維護(hù)與管理价淌。
  2、重用
  開(kāi)發(fā)框架一般層次清晰瞒津,不同開(kāi)發(fā)人員開(kāi)發(fā)時(shí)都會(huì)根據(jù)具體功能放到相同的位置蝉衣,加上配合相應(yīng)的開(kāi)發(fā)文檔,代碼重用會(huì)非常高巷蚪,想要調(diào)用什么功能直接進(jìn)對(duì)應(yīng)的位置去查找相關(guān)函數(shù)病毡,而不是每個(gè)開(kāi)發(fā)人員各自編寫(xiě)一套相同的方法。
  3屁柏、高內(nèi)聚(封裝)
  框架中的功能會(huì)實(shí)現(xiàn)高內(nèi)聚啦膜,開(kāi)發(fā)人員將各種需要的功能封裝在不同的層中,給大家調(diào)用淌喻,而大家在調(diào)用時(shí)不需要清楚這些方法里面是如果實(shí)現(xiàn)的僧家,只需要關(guān)注輸出的結(jié)果是否是自己想要的就可以了。
  4裸删、規(guī)范
  框架開(kāi)發(fā)時(shí)八拱,必須根據(jù)嚴(yán)格執(zhí)行代碼開(kāi)發(fā)規(guī)范要求,做好命名涯塔、注釋肌稻、架構(gòu)分層、編碼匕荸、文檔編寫(xiě)等規(guī)范要求爹谭。因?yàn)槟汩_(kāi)發(fā)出來(lái)的框架并不一定只有你自己在用,要讓別人更加容易理解與掌握每聪,這些內(nèi)容是非常重要的旦棉。
  5齿风、可擴(kuò)展
  開(kāi)發(fā)框架時(shí)必須要考慮可擴(kuò)展性药薯,當(dāng)業(yè)務(wù)邏輯更加復(fù)雜、數(shù)量記錄量爆增救斑、并發(fā)量增大時(shí)童本,能否通過(guò)一些小的調(diào)整就能適應(yīng)?還是需要將整個(gè)框架推倒重新開(kāi)發(fā)脸候?當(dāng)然對(duì)于中小型項(xiàng)目框架穷娱,也不必考慮太多這些內(nèi)容绑蔫,當(dāng)個(gè)人能力和經(jīng)驗(yàn)足夠時(shí)水到渠成,自然就會(huì)注意到很多開(kāi)發(fā)細(xì)節(jié)泵额。
  7配深、可維護(hù)
  成熟的框架,對(duì)于二次開(kāi)發(fā)或現(xiàn)有功能的維護(hù)來(lái)說(shuō)嫁盲,操作上應(yīng)該都是非常方便的篓叶。比如項(xiàng)目要添加、修改或刪除一個(gè)字段或相關(guān)功能羞秤,只需要簡(jiǎn)單的操作缸托,十來(lái)分鐘或不用花太多的工夫就可以搞定。新增一個(gè)數(shù)據(jù)表和對(duì)應(yīng)的功能瘾蛋,也可以快速的完成俐镐。功能的變動(dòng)修改,不會(huì)對(duì)系統(tǒng)產(chǎn)生不利的影響哺哼。代碼不存在硬編碼等等佩抹,保證軟件開(kāi)發(fā)的生產(chǎn)效率和質(zhì)量。
  8取董、協(xié)作開(kāi)發(fā)
  有了開(kāi)發(fā)框架匹摇,我們才能組織大大小小的團(tuán)隊(duì)更好的進(jìn)行協(xié)作開(kāi)發(fā),成熟的框架將大大減輕項(xiàng)目開(kāi)發(fā)的難度甲葬,加快開(kāi)發(fā)速度廊勃,降低開(kāi)發(fā)費(fèi)用,減輕維護(hù)難度经窖。
  9坡垫、通用性
  同一行業(yè)或領(lǐng)域的框架,功能都是大同小異的画侣,不用做太大的改動(dòng)就可以應(yīng)用到類似的項(xiàng)目中冰悠。在框架中,我們一般都會(huì)實(shí)現(xiàn)一些同質(zhì)化的基礎(chǔ)功能配乱,比如權(quán)限管理溉卓、角色管理、菜單管理搬泥、日志管理桑寨、異常處理......或該行業(yè)中所要使用到的通用功能,使框架能應(yīng)用到某一行業(yè)或領(lǐng)域中忿檩,而不是只針對(duì)某公司某業(yè)務(wù)而設(shè)定(當(dāng)然也肯定存在那些特定功能的應(yīng)用框架尉尾,這只是非常少的特殊情況,不在我們的考慮范圍)燥透。

2沙咏、基于Winform混合式開(kāi)發(fā)框架和Bootstrap開(kāi)發(fā)框架的基礎(chǔ)分析

在很多場(chǎng)合辨图,一般如果是做Winform桌面的應(yīng)用,我會(huì)推薦客戶使用《Winform混合式開(kāi)發(fā)框架》肢藐,如果是基于Web的項(xiàng)目開(kāi)發(fā)故河,一般推薦客戶采用《Bootstrap開(kāi)發(fā)框架》。

  1. 《混合式開(kāi)發(fā)框架》混合了傳統(tǒng)《Winform開(kāi)發(fā)框架》吆豹、《WCF開(kāi)發(fā)框架》和Web API接口框架的特點(diǎn)忧勿,可以在直接訪問(wèn)數(shù)據(jù)庫(kù)、利用WCF服務(wù)獲取數(shù)據(jù)瞻讽、利用Web API服務(wù)獲取數(shù)據(jù)三者之間自由切換鸳吸,統(tǒng)一了系統(tǒng)界面層對(duì)業(yè)務(wù)服務(wù)的調(diào)用模式,所有組件模塊均實(shí)現(xiàn)三種方式的調(diào)用速勇,是一種彈性化非常好的框架應(yīng)用晌砾,既可用于單機(jī)版軟件或者基于局域網(wǎng)內(nèi)的應(yīng)用軟件,也可以用于分布式技術(shù)的互聯(lián)網(wǎng)環(huán)境應(yīng)用烦磁,是一種成熟穩(wěn)定养匈、安全高效的技術(shù)框架。




    由于混合型框架都伪,既可以用于傳統(tǒng)Winform系統(tǒng)開(kāi)發(fā)纫塌,也可以用于WCF分布式系統(tǒng)開(kāi)發(fā)戴已,還可以用于輕型高效的Web API的分布式系統(tǒng)開(kāi)發(fā)(目前廣泛應(yīng)用的接口方式),因此環(huán)境適應(yīng)性強(qiáng);而且由于模塊具有這些特點(diǎn)性宏,可重用性更高会通,特別對(duì)于通用性的模塊纸颜,更是具有無(wú)可替代的優(yōu)越性绍绘。

  2. 基于Metronic的Bootstrap開(kāi)發(fā)框架
    該開(kāi)發(fā)框架界面部分采用較新的Bootstrap技術(shù),采用當(dāng)前最新的Bootstrap3.x褐耳,集成了眾多功能強(qiáng)大的Bootstrap插件诈闺。
    Bootstrap是一個(gè)前端的技術(shù)框架,很多平臺(tái)都可以采用铃芦,JAVA/PHP/.NET都可以用來(lái)做前端界面雅镊,整合JQuery可以實(shí)現(xiàn)非常豐富的界面效果,目前也有很多Bootstrap的插件能夠提供給大家使用刃滓,本框架集合了眾多最為優(yōu)秀的插件仁烹,能給我們Web的用戶體驗(yàn)提升到一個(gè)前所未有的水平。
    Metronic是一個(gè)國(guó)外的基于HTML注盈、JS等技術(shù)的Bootstrap開(kāi)發(fā)框架整合晃危,整合了很多Bootstrap的前端技術(shù)和插件的使用叙赚,是一個(gè)非常不錯(cuò)的技術(shù)框架老客。本框架以這個(gè)為基礎(chǔ)僚饭,結(jié)合我對(duì)MVC的Web框架的研究,整合了基于MVC的Bootstrap開(kāi)發(fā)框架胧砰,使之能夠符合實(shí)際項(xiàng)目的結(jié)構(gòu)需要鳍鸵。
    框架后臺(tái)采用基于C#的MVC技術(shù),是目前.NET開(kāi)發(fā)最為成熟流行的技術(shù)尉间,框架后臺(tái)數(shù)據(jù)庫(kù)支持Oracle偿乖、SqlServer、MySql哲嘲、Sqlite贪薪、Access等常規(guī)數(shù)據(jù)庫(kù),可通過(guò)配置進(jìn)行自由切換眠副,使用Enterprise Library模塊進(jìn)行數(shù)據(jù)訪問(wèn)的控制画切,使得數(shù)據(jù)訪問(wèn)更方便輕松。


3囱怕、框架的各個(gè)特點(diǎn)的說(shuō)明

上面介紹了開(kāi)發(fā)框架的一些共性霍弹,概括總結(jié)幾點(diǎn):代碼模板化、重用娃弓、高內(nèi)聚(封裝)典格、規(guī)范、可擴(kuò)展台丛、可維護(hù)耍缴、協(xié)作開(kāi)發(fā)、通用性挽霉。
1)代碼模板化
我們的框架系列私恬,無(wú)論是Winform開(kāi)發(fā)框架,Web開(kāi)發(fā)框架炼吴、Bootstrap開(kāi)發(fā)框架等框架系列本鸣,都是一脈相承的特點(diǎn),所有類代碼都統(tǒng)一的代碼風(fēng)格硅蹦,各個(gè)項(xiàng)目以及分層目錄都是按照統(tǒng)一的命名方式進(jìn)行構(gòu)建荣德,易讀易理解,整個(gè)框架的代碼童芹,包括項(xiàng)目底層BLL涮瞻、DAL、Entity等層的代碼假褪,以及Winform界面層署咽、或者Web界面層,都可以利用工具統(tǒng)一生成(我們根據(jù)項(xiàng)目界面特點(diǎn)構(gòu)建對(duì)應(yīng)的模板文件),減少大量重復(fù)代碼的編寫(xiě)宁否。


這些結(jié)構(gòu)利于使用代碼生成工具(Database2Sharp窒升,我們?yōu)榭蚣芸焖匍_(kāi)發(fā)量身定做的軟件工具)進(jìn)行項(xiàng)目代碼的生成

2) 重用
由于我們?cè)陧?xiàng)目開(kāi)發(fā)中,采用了一些模塊化的方式來(lái)組裝項(xiàng)目慕匠,可以簡(jiǎn)單的理解為積木組合的方式饱须。如權(quán)限管理模塊、字典管理模塊台谊、自動(dòng)更新模塊蓉媳、人員管理模塊、通訊錄管理模塊锅铅、分頁(yè)控件酪呻、公用類庫(kù)等方面,這些可以在項(xiàng)目中根據(jù)情況采用對(duì)應(yīng)的模塊盐须,非常高效号杠,整個(gè)主體框架也有對(duì)應(yīng)接入這些模塊的案例代碼供參考,因此可以更加直觀明了丰歌。

而另一方面姨蟋,我們?cè)趯?duì)類的重用方面,也是精益求精立帖,盡量做到精簡(jiǎn)重復(fù)代碼眼溶,提高開(kāi)發(fā)效率的目的。
界面類提供封裝繼承晓勇,減少界面的一些繁瑣設(shè)置

基礎(chǔ)業(yè)務(wù)類堂飞,我們同樣也是采用重用基類方式,實(shí)現(xiàn)接口函數(shù)的封裝處理绑咱。

以及業(yè)務(wù)類繼承關(guān)系绰筛,當(dāng)然還有其他更多的,基本上都提供一些基類來(lái)處理描融,簡(jiǎn)化代碼铝噩。

3) 高內(nèi)聚(封裝)
從上面小節(jié)可以看出,整個(gè)框架宏觀方面分為多個(gè)功能模塊窿克,可以自由搭配使用骏庸;微觀方面都有一個(gè)繼承關(guān)系的基類來(lái)對(duì)相關(guān)的代碼進(jìn)行封裝處理,這樣開(kāi)發(fā)人員將各種需要的功能封裝在不同的模塊或者基類里面年叮,從而實(shí)現(xiàn)高內(nèi)聚的處理具被。





Web API的控制器設(shè)計(jì)對(duì)象繼承關(guān)系,如下所示:

4) 規(guī)范
我們的整個(gè)框架系列只损,嚴(yán)格執(zhí)行代碼開(kāi)發(fā)規(guī)范要求一姿,做好命名、注釋、架構(gòu)分層叮叹、編碼艾栋、文檔編寫(xiě)等規(guī)范要求,這樣我們只需要了解一個(gè)項(xiàng)目的結(jié)構(gòu)衬横,其他項(xiàng)目依次類推裹粤,就可以明確各個(gè)分層的意義终蒂,一葉知秋蜂林,管中窺豹就是這個(gè)道理,我們可以通過(guò)這些知識(shí)積累拇泣,指導(dǎo)我們其他同事進(jìn)行項(xiàng)目開(kāi)發(fā)噪叙,大家在規(guī)范上統(tǒng)一一致就可以步調(diào)統(tǒng)一,從而在單位內(nèi)部擁有更高的開(kāi)發(fā)效率霉翔。

其他框架的特點(diǎn)睁蕾,如可擴(kuò)展、可維護(hù)债朵、協(xié)作開(kāi)發(fā)子眶、通用性,也就不再贅述序芦,基本上臭杰,整個(gè)框架就是為了方便構(gòu)建項(xiàng)目而搭建,大的方面可以使用開(kāi)發(fā)好的模塊谚中,小的方面可以繼承封裝好的類庫(kù)渴杆,整個(gè)調(diào)用的邏輯過(guò)程也是經(jīng)過(guò)實(shí)踐的考驗(yàn),在眾多國(guó)內(nèi)外公司的項(xiàng)目中使用過(guò)宪塔,同時(shí)也獲得非常多的反饋磁奖,共同促進(jìn)整個(gè)框架體系的發(fā)展。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末某筐,一起剝皮案震驚了整個(gè)濱河市比搭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌南誊,老刑警劉巖敢辩,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異弟疆,居然都是意外死亡戚长,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)怠苔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)同廉,“玉大人,你說(shuō)我怎么就攤上這事∑刃ぃ” “怎么了锅劝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蟆湖。 經(jīng)常有香客問(wèn)我故爵,道長(zhǎng),這世上最難降的妖魔是什么隅津? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任诬垂,我火速辦了婚禮,結(jié)果婚禮上伦仍,老公的妹妹穿的比我還像新娘结窘。我一直安慰自己,他們只是感情好充蓝,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布隧枫。 她就那樣靜靜地躺著,像睡著了一般谓苟。 火紅的嫁衣襯著肌膚如雪官脓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天涝焙,我揣著相機(jī)與錄音卑笨,去河邊找鬼。 笑死纱皆,一個(gè)胖子當(dāng)著我的面吹牛湾趾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播派草,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼搀缠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了近迁?” 一聲冷哼從身側(cè)響起艺普,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鉴竭,沒(méi)想到半個(gè)月后歧譬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡搏存,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年瑰步,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片璧眠。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缩焦,死狀恐怖读虏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袁滥,我是刑警寧澤盖桥,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站题翻,受9級(jí)特大地震影響揩徊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嵌赠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一塑荒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猾普,春花似錦袜炕、人聲如沸本谜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乌助。三九已至溜在,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間他托,已是汗流浹背掖肋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赏参,地道東北人志笼。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像把篓,于是被迫代替她去往敵國(guó)和親纫溃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容