日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

从零开始编写自己的C#框架(27)——什么是开发框架

發(fā)布時(shí)間:2025/3/8 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始编写自己的C#框架(27)——什么是开发框架 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

  做為一個(gè)程序員,在開發(fā)的過程中會(huì)發(fā)現(xiàn),有框架同無框架,做起事來是完全不同的概念,關(guān)系到開發(fā)的效率、程序的健壯、性能、團(tuán)隊(duì)協(xié)作、后續(xù)功能維護(hù)、擴(kuò)展......等方方面面的事情。很多朋友在學(xué)習(xí)搭建自己的框架,很多公司也在創(chuàng)建或使用自己的框架,網(wǎng)上開源的框架多如牛毛,每年新上線的各種框架也不知多少。而不停的重復(fù)造輪子,也讓更多的朋友鳥槍換炮,越跑越快,工作效率越來越高。那么什么是框架呢?

?

  什么是框架

  度娘上說:框架(Framework)是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法; 另一種定義認(rèn)為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架。前者是從應(yīng)用方面而后者是從目的方面給出的定義。

  可以說,一個(gè)框架是一個(gè)可復(fù)用的設(shè)計(jì)構(gòu)件,它規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組抽象類以及其實(shí)例之間協(xié)作的方法,它為構(gòu)件復(fù)用提供了上下文(Context)關(guān)系。因此構(gòu)件庫的大規(guī)模重用也需要框架。

  應(yīng)用框架指的是實(shí)現(xiàn)了某應(yīng)用領(lǐng)域通用完備功能(除去特殊應(yīng)用的部分)的底層服務(wù)。使用這種框架的編程人員可以在一個(gè)通用功能已經(jīng)實(shí)現(xiàn)的基礎(chǔ)上開始具體的系統(tǒng)開發(fā)。框架提供了所有應(yīng)用期望的默認(rèn)行為的類集合。具體的應(yīng)用通過重寫子類(該子類屬于框架的默認(rèn)行為)或組裝對(duì)象來支持應(yīng)用專用的行為。

  應(yīng)用框架強(qiáng)調(diào)的是軟件的設(shè)計(jì)重用性和系統(tǒng)的可擴(kuò)充性,以縮短大型應(yīng)用軟件系統(tǒng)的開發(fā)周期,提高開發(fā)質(zhì)量。與傳統(tǒng)的基于類庫的面向?qū)ο笾赜眉夹g(shù)比較,應(yīng)用框架更注重于面向?qū)I(yè)領(lǐng)域的軟件重用。應(yīng)用框架具有領(lǐng)域相關(guān)性,構(gòu)件根據(jù)框架進(jìn)行復(fù)合而生成可運(yùn)行的系統(tǒng)。框架的粒度越大,其中包含的領(lǐng)域知識(shí)就更加完整。

  框架,即framework。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。簡單說就是使用別人搭好的舞臺(tái),你來做表演。而且,框架一般是成熟的,不斷升級(jí)的軟件。

  上面是度娘百科——框架里講的內(nèi)容,講得挺理論挺全面的,直接復(fù)制了一些過來。

?

  簡單來講,軟件開發(fā)框架可以理解為我們起樓房時(shí),用梁+柱子+承重墻做起來的鋼筋混凝土結(jié)構(gòu)框架。而實(shí)現(xiàn)的軟件功能,也就像在這個(gè)框架結(jié)構(gòu)中所要實(shí)現(xiàn)的不同類型、功能的房子,比如停車場、商場、酒店、飯店、商住房......

  功能強(qiáng)大,結(jié)構(gòu)扎實(shí)的框架,可承載的類型就更多,適用性就更強(qiáng)。

  不論是什么開發(fā)框架,都是為現(xiàn)實(shí)不同的業(yè)務(wù)功能而創(chuàng)建的。好的開發(fā)框架能提高企業(yè)的競爭能力,包括降低開發(fā)成本、提高產(chǎn)品質(zhì)量、改善客戶滿意程度、控制開發(fā)進(jìn)度等。同時(shí),開發(fā)框架也是某一領(lǐng)域?yàn)閷?shí)現(xiàn)某種業(yè)務(wù)的知識(shí)積累,它是一種持續(xù)性的活動(dòng),隨著特定業(yè)務(wù)功能實(shí)現(xiàn)而創(chuàng)建,且跳出軟件開發(fā)周期而存活。一個(gè)成熟的框架,不單單只是代碼而已,它除了將某一領(lǐng)域業(yè)務(wù)的基礎(chǔ)功能以代碼的方式實(shí)現(xiàn)外,還必須編寫對(duì)應(yīng)的文檔、模型、流程圖、數(shù)據(jù)字典、開發(fā)使用說明.....等一系列的文檔來支撐,這樣的框架才更加成熟和健壯。

?

  為什么要使用框架

  軟件系統(tǒng)隨著業(yè)務(wù)的發(fā)展,變得越來越復(fù)雜,不同領(lǐng)域的業(yè)務(wù)所涉及到的知識(shí)、內(nèi)容、問題非常非常多。如果每次都從頭開發(fā),那都是一個(gè)很漫長的事情,且并不一定能將它做好。團(tuán)隊(duì)協(xié)作開發(fā)時(shí),沒有了統(tǒng)一標(biāo)準(zhǔn),大家各寫各的,同樣的重復(fù)的功能到處都是。由于沒有統(tǒng)一調(diào)用規(guī)范,很難看懂別人寫的代碼,出現(xiàn)Bug或二次開發(fā)維護(hù)時(shí),根本無從下手。(無框架不堪回首的黑暗日子請(qǐng)看前面章節(jié)的講述)

  而一個(gè)成熟的框架,它是模板化的代碼,它會(huì)幫我們實(shí)現(xiàn)很多基礎(chǔ)性的功能,我們只需要專心的實(shí)現(xiàn)所需要的業(yè)務(wù)邏輯就可以了。而很多底層功能操作,就可以完完全全不用做太多的考慮,框架已幫我們實(shí)現(xiàn)了。這樣的話,整個(gè)團(tuán)隊(duì)的開發(fā)效率可想而知。另外對(duì)于團(tuán)隊(duì)成員的變動(dòng),也不用太過擔(dān)心,框架的代碼規(guī)范讓我們能輕松的看懂其他開發(fā)人員所寫的代碼。

?

  搭建框架時(shí),我們要如何定位

  是不是框架的擴(kuò)展性、可移值性、功能越強(qiáng)大就越好呢?

  好的框架是相對(duì)的,它都有自己特定的應(yīng)用領(lǐng)域,合適才是最好。

  個(gè)人覺得在實(shí)際開發(fā)中要根據(jù)具體情況來看的,因?yàn)楣δ茉饺嫠膹?fù)雜度就越大,所需要的開發(fā)人員能力和技能就會(huì)要求更高,付出的成本也就最大。比如做一個(gè)還未發(fā)展起來的電商網(wǎng)就想 將系統(tǒng)做成像京東那樣,直接用京東分模塊分布式的框架來開發(fā),那得怎么來組建這個(gè)團(tuán)隊(duì)?更不用說開發(fā)成本了。就算團(tuán)隊(duì)有能力做到,也沒有那個(gè)必要這么去做,因?yàn)閺某杀绢A(yù)算和開發(fā)周期等方面來看,得不嘗失,更多的可能項(xiàng)目還未完成公司就給拖垮了。

   一般來說,一個(gè)中小型項(xiàng)目,1到5人左右的開發(fā)團(tuán)隊(duì),使用一般的三層結(jié)構(gòu)就可以了,不用去細(xì)想框架要分三層還是五層,每個(gè)層之間要怎么實(shí)現(xiàn)解耦,要用什么設(shè)計(jì)模式.....因?yàn)楫?dāng)今飛速發(fā)展的互聯(lián)網(wǎng)時(shí)代,快才是王道,做一個(gè)中小型項(xiàng)目能用一周完成的,絕不能拖了一個(gè)月還未做完。人工與時(shí)間成本才是重點(diǎn)中 的重點(diǎn),唯有快才能更好的生存下來并壯大。至于擴(kuò)展功能、接口、分布式、并發(fā)、大數(shù)據(jù)......等等問題,實(shí)際上過早考慮太多并不是好事情,有經(jīng)驗(yàn)的程序員在寫這個(gè)框架時(shí)早已留下擴(kuò)展方案或思路,而沒到這一層次的開發(fā)人員你想再多也可能想不明白,還不如先做出來積累一定經(jīng)驗(yàn)后再慢慢學(xué)習(xí),慢慢升級(jí)框架。

  當(dāng)然也不是說設(shè)計(jì)框架時(shí)不用考慮高內(nèi)聚低耦合,而是要根據(jù)自己的能力與經(jīng)驗(yàn)來設(shè)計(jì)出自己能把控的框架出來。因?yàn)榭蚣懿皇情_發(fā)出來后就不再變動(dòng),它也需要不停的進(jìn)行升級(jí),將你所學(xué)到的新知識(shí)新技術(shù)融合到框架中,使它的功能更加強(qiáng)大,更加健壯。而對(duì)于自己不能把控的框架,在團(tuán)隊(duì)協(xié)作開發(fā)和上生產(chǎn)環(huán)境后,你就發(fā)現(xiàn)有一大堆的坑等著你去填埋,這種框架只能拿來先練練手,有空再慢慢完善。

  框架通過小步快跑,不斷的迭代升級(jí)來慢慢擴(kuò)展的,當(dāng)項(xiàng)目上生產(chǎn)環(huán)境后,根據(jù)新的需求和所碰到的問題,去不停的調(diào)整,最終越來越強(qiáng)大。所有框架都是從1.0版本到2.0、3.0......發(fā)展而來,而不是直接跳過最初版本到最終成熟版本。

   所以說我們?cè)趧?chuàng)建一個(gè)框架時(shí),必須根據(jù)我們當(dāng)前個(gè)人的技術(shù)能力、團(tuán)隊(duì)成功技術(shù)水平、時(shí)間、投入成本、項(xiàng)目現(xiàn)狀(規(guī)模與需求復(fù)雜程度)、以后的發(fā)展前景來決定所要開發(fā)的框架的最終設(shè)計(jì)方案。當(dāng)然也不是說不能一步到位,心有多大世界就有多大,只要個(gè)人能力和團(tuán)隊(duì)能力配得上,老板資金成本雄厚,時(shí)間充足,直接上大項(xiàng)目使用超級(jí)框架也完全沒有問題。

?

  框架和設(shè)計(jì)模式   度娘上說:框架、設(shè)計(jì)模式這兩個(gè)概念總?cè)菀妆换煜?#xff0c;其實(shí)它們之間還是有區(qū)別的。構(gòu)件通常是代碼重用,而設(shè)計(jì)模式是設(shè)計(jì)重用,框架則介于兩者之間,部分代碼重用,部分設(shè)計(jì)重用,有時(shí)分析也可重用。在軟件生產(chǎn)中有三種級(jí)別的重用:內(nèi)部重用,即在同一應(yīng)用中能公共使用的抽象塊;代碼重用,即將通用模塊組合成庫或工具集,以便 在多個(gè)應(yīng)用和領(lǐng)域都能使用;應(yīng)用框架的重用,即為專用領(lǐng)域提供通用的或現(xiàn)成的基礎(chǔ)結(jié)構(gòu),以獲得最高級(jí)別的重用性。   框架與設(shè)計(jì)模式雖然相似,但卻有著根本的不同。設(shè)計(jì)模式是對(duì)在某種環(huán)境中反復(fù)出現(xiàn)的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用代碼表示,也能直接執(zhí)行或復(fù)用,而對(duì)模式而言只有實(shí)例才能用代碼表示;設(shè)計(jì)模式是比框架更小的元素,一個(gè)框架中往往含有一個(gè)或多個(gè)設(shè)計(jì)模式,框架總是針對(duì)某一特定應(yīng) 用領(lǐng)域,但同一模式卻可適用于各種應(yīng)用。可以說,框架是軟件,而設(shè)計(jì)模式是軟件的知識(shí)。

?

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

  1、代碼模板化

  框架一般都有統(tǒng)一的代碼風(fēng)格,同一分層的不同類代碼,都是大同小異的模板化結(jié)構(gòu),方便使用模板工具統(tǒng)一生成,減少大量重復(fù)代碼的編寫。在學(xué)習(xí)時(shí)通常只要理解某一層有代表性的一個(gè)類,就等于了解了同一層的其他大部分類結(jié)構(gòu)和功能,容易上手。團(tuán)隊(duì)中不同的人員采用類同的調(diào)用風(fēng)格進(jìn)行編碼,很大程度提高了代碼的可讀性,方便維護(hù)與管理。

?

  2、重用

  開發(fā)框架一般層次清晰,不同開發(fā)人員開發(fā)時(shí)都會(huì)根據(jù)具體功能放到相同的位置,加上配合相應(yīng)的開發(fā)文檔,代碼重用會(huì)非常高,想要調(diào)用什么功能直接進(jìn)對(duì)應(yīng)的位置去查找相關(guān)函數(shù),而不是每個(gè)開發(fā)人員各自編寫一套相同的方法。

  3、高內(nèi)聚(封裝)

  框架中的功能會(huì)實(shí)現(xiàn)高內(nèi)聚,開發(fā)人員將各種需要的功能封裝在不同的層中,給大家調(diào)用,而大家在調(diào)用時(shí)不需要清楚這些方法里面是如果實(shí)現(xiàn)的,只需要關(guān)注輸出的結(jié)果是否是自己想要的就可以了。

  4、規(guī)范

  框架開發(fā)時(shí),必須根據(jù)嚴(yán)格執(zhí)行代碼開發(fā)規(guī)范要求,做好命名、注釋、架構(gòu)分層、編碼、文檔編寫等規(guī)范要求。因?yàn)槟汩_發(fā)出來的框架并不一定只有你自己在用,要讓別人更加容易理解與掌握,這些內(nèi)容是非常重要的。

  5、可擴(kuò)展

  開發(fā)框架時(shí)必須要考慮可擴(kuò)展性,當(dāng)業(yè)務(wù)邏輯更加復(fù)雜、數(shù)量記錄量爆增、并發(fā)量增大時(shí),能否通過一些小的調(diào)整就能適應(yīng)?還是需要將整個(gè)框架推倒重新開發(fā)?當(dāng)然對(duì)于中小型項(xiàng)目框架,也不必考慮太多這些內(nèi)容,當(dāng)個(gè)人能力和經(jīng)驗(yàn)足夠時(shí)水到渠成,自然就會(huì)注意到很多開發(fā)細(xì)節(jié)。

  7、可維護(hù)

  成熟的框架,對(duì)于二次開發(fā)或現(xiàn)有功能的維護(hù)來說,操作上應(yīng)該都是非常方便的。比如項(xiàng)目要添加、修改或刪除一個(gè)字段或相關(guān)功能,只需要簡單的操作,十來分鐘或不用花太多的工夫就可以搞定。新增一個(gè)數(shù)據(jù)表和對(duì)應(yīng)的功能,也可以快速的完成。功能的變動(dòng)修改,不會(huì)對(duì)系統(tǒng)產(chǎn)生不利的影響。代碼不存在硬編碼等等,保證軟件開發(fā)的生產(chǎn)效率和質(zhì)量。

  8、協(xié)作開發(fā)

  有了開發(fā)框架,我們才能組織大大小小的團(tuán)隊(duì)更好的進(jìn)行協(xié)作開發(fā),成熟的框架將大大減輕項(xiàng)目開發(fā)的難度,加快開發(fā)速度,降低開發(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)用框架,這只是非常少的特殊情況,不在我們的考慮范圍)。

?

  至于框架怎么一步步設(shè)計(jì)與開發(fā),請(qǐng)看后續(xù)章節(jié)

?

?

  以上就是我對(duì)開發(fā)框架的一些理解,如果您覺得有不對(duì)的地方,歡迎拍墻

?

?

?

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

?

  發(fā)表本編內(nèi)容,是為了和大家共同學(xué)習(xí)共同進(jìn)步,有興趣的朋友可以加加Q群:327360708 ,大家一起探討。

  在佛山工作的朋友也可以加入:佛山IT朋友群 263767221,大家可以共享資源共同進(jìn)步,有空大家可以約出來認(rèn)識(shí)一下,交流一下技術(shù),哈哈

?

  更多內(nèi)容,敬請(qǐng)觀注博客:http://www.cnblogs.com/EmptyFS/

?

只有將自己置空,才能裝進(jìn)更多的東西

轉(zhuǎn)載于:https://www.cnblogs.com/FinleyJiang/p/7600913.html

總結(jié)

以上是生活随笔為你收集整理的从零开始编写自己的C#框架(27)——什么是开发框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。