最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

程序員 代碼是從頭編還是使用框架好呢?

 更新時間:2017年08月23日 15:52:27   投稿:mdxy-dxy  
為什么框架發(fā)展得越來越好,因為越來越多的程序員選擇使用框架。當(dāng)處于實際的項目開發(fā)中,程序員就會發(fā)現(xiàn)項目周期短,使用框架可以最有效地節(jié)約時間。如果完全從頭開始編程,使用時間太多不說,對程序員的個人編碼水平也提出了很高的要求

在編碼的世界里,程序員永遠(yuǎn)不要期待東西保持靜止太久。技術(shù)已經(jīng)決定了我們?nèi)绾位印?chuàng)造、學(xué)習(xí)、生活等,并且不斷發(fā)展。對于程序員來說,只有靠近和依賴最新技術(shù)才能完成任務(wù)。而且最深刻的改變之一就是框架、編程語言以及兩者之間的范式轉(zhuǎn)變。

編程語言本質(zhì)上是與計算機通信的方式,并通過使用語法和語義告訴計算機要做什么。框架是匯集了一起完成任務(wù)的程序的集合,使編碼更有效率,并且通常使程序員的生活更容易。

當(dāng)然,二者絕不是對立的關(guān)系,只是編程社區(qū)中仍然存在一些爭議:到底是應(yīng)該自己從頭開始編寫代碼還是使用各種框架簡化編碼過程呢?有些很受歡迎的框架可能會給人帶來錯覺,比如Ruby on Rails和Angular.JS等,其實,編程語言和隨附的框架都在不斷上升和繁榮。

框架VS自定義解決方案

為什么框架發(fā)展得越來越好,因為越來越多的程序員選擇使用框架。當(dāng)處于實際的項目開發(fā)中,程序員就會發(fā)現(xiàn)項目周期短,使用框架可以最有效地節(jié)約時間。如果完全從頭開始編程,使用時間太多不說,對程序員的個人編碼水平也提出了很高的要求,一定要非常了解所用的編程語言才具備從頭開始的實力。

程序員:代碼是從頭編還是用框架好呢?

但是,如果使用框架沒有缺點,這篇文章就沒有存在的必要了。關(guān)鍵是,雖然框架做了很多基礎(chǔ)工作,但這并一定完全適合于項目所需,可能要進(jìn)行一些修改。而從頭開始編碼,自然是完全按照項目需求來的,甚至你會比框架發(fā)布者做得更好。

框架,比如Ruby on Rails可幫助用戶減少編碼細(xì)節(jié)問題,很多不好的編碼習(xí)慣都將被良好的框架清理。當(dāng)然,使用框架也需要對所用編程語言有一定了解才可以,您需要對Ruby有一個全面的認(rèn)識,才可以用好Rails。從一般設(shè)計到安全性問題,框架可以代替一些繁重的工作。

自動化正在接管一切

現(xiàn)在,自動化正在滲入整個編碼過程,程序員不需要再細(xì)細(xì)梳理數(shù)千行代碼,很多無意義的附加組件或錯誤被編譯器和自動化協(xié)議剝離,旨在刪除不必要的代碼段。這種演變要求程序員對特定代碼的準(zhǔn)確性要十分了解。

學(xué)習(xí)正確的工具

正如文章開頭所說,編程語言和框架都在不斷成長。而且其成長之一就是依賴于應(yīng)用程序接口(API)和算法來幫助程序員完成任務(wù)。例如,框架通常定義和實現(xiàn)算法,并且使得算法正確,這有時對編程成功至關(guān)重要,而不是語法細(xì)節(jié)。如果涉及到一些框架無法實現(xiàn)的功能,還是需要程序員親自動手??蚣苤皇强梢怨?jié)約時間的編程工具,在程序員的工作中扮演著“輔助”角色。

建議:使用正確的框架,結(jié)合部分自己編碼可以有效縮短項目開發(fā)周期,同時準(zhǔn)確率高,降低無效代碼數(shù)量!

程序開發(fā)為什么要使用框架

什么是框架

在的J2EE開發(fā)中,經(jīng)常會提到“框架”這個詞匯,例如Spring,Struts,Webx等等都稱之為J2EE開發(fā)框架。那么什么是框架呢?

框架的英文為Framework,帶有骨骼,支架的含義。

在軟件工程中,框架被定義為整個或部分系統(tǒng)的可重用設(shè)計,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法;另一種定義認(rèn)為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架。

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

框架是實現(xiàn)了某應(yīng)用領(lǐng)域通用功能的底層服務(wù)。使用這種框架的編程人員可以在一個通用功能已經(jīng)實現(xiàn)的基礎(chǔ)上開始具體的系統(tǒng)開發(fā)??蚣芴峁┝怂袘?yīng)用期望的默認(rèn)行為的類集合。具體的應(yīng)用通過重寫子類或組裝對象來支持應(yīng)用專用的行為。

通俗的說,框架是完成是某種應(yīng)用的半成品,提供了一些常用的工具類和一些基礎(chǔ)通用化的組件,可以供開發(fā)人員在此基礎(chǔ)上,更便捷的完成各自特有的系統(tǒng)。

為什么要用框架

軟件系統(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,涉及到的知識,內(nèi)容,非常廣泛。這樣開發(fā)出完善健壯的軟件,對程序員的要求將會非常高。如果采用成熟,穩(wěn)健的框架,那么一些基礎(chǔ)的通用工作,比如,事物處理,安全性,數(shù)據(jù)流控制等都可以交給框架處理,那么程序員只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計,可以降低開發(fā)難度。

從程序員角度看,使用框架最顯著的好處是重用,由于框架能重用代碼,因此從一已有構(gòu)件庫中建立應(yīng)用變得非常容易,因為構(gòu)件都采用框架統(tǒng)一定義的接口,從而使構(gòu)件間的通信簡單。框架能重用設(shè)計。它提供可重用的抽象算法及高層設(shè)計,并能將大系統(tǒng)分解成更小的構(gòu)件,而且能描述構(gòu)件間的內(nèi)部接口。這些標(biāo)準(zhǔn)接口使在已有的構(gòu)件基礎(chǔ)上通過組裝建立各種各樣的系統(tǒng)成為可能。只要符合接口定義,新的構(gòu)件就能插入框架中,構(gòu)件設(shè)計者就能重用構(gòu)架的設(shè)計??蚣苓€能重用分析。所有的人員若按照框架的思想來分析事物,那么就能將它劃分為同樣的構(gòu)件,采用相似的解決方法,從而使采用同一框架的分析人員之間能進(jìn)行溝通。

一種技術(shù),最終都是為業(yè)務(wù)發(fā)展而服務(wù)的。從業(yè)務(wù)的角度來講。首先,框架的是為了企業(yè)的業(yè)務(wù)發(fā)展和戰(zhàn)略規(guī)劃而服務(wù)的,他服從于企業(yè)的愿景(vision);其次,框架最重要的目標(biāo)是提高企業(yè)的競爭能力,包括降低成本、提高質(zhì)量、改善客戶滿意程度,控制進(jìn)度等方面。最后,框架實現(xiàn)這一目標(biāo)的方式是進(jìn)行有效的知識積累。軟件開發(fā)是一種知識活動,因此知識的聚集和積累是至關(guān)重要的??蚣苣軌虿捎靡环N結(jié)構(gòu)化的方式對某個特定的業(yè)務(wù)領(lǐng)域進(jìn)行描述,也就是將這個領(lǐng)域相關(guān)的技術(shù)以代碼、文檔、模型等方式固化下來。

合理的使用框架可以帶來的好處

重用代碼大大增加,軟件生產(chǎn)效率和質(zhì)量也得到了提高;
代碼結(jié)構(gòu)的規(guī)范化,降低程序員之間溝通以及日后維護(hù)的成本;
知識的積累,可以讓那些經(jīng)驗豐富的人員去設(shè)計框架和領(lǐng)域構(gòu)件,而不必限于低層編程;
軟件設(shè)計人員要專注于對領(lǐng)域的了解,使需求分析更充分;
允許采用快速原型技術(shù); 有利于在一個項目內(nèi)多人協(xié)同工作;
大粒度的重用使得平均開發(fā)費用降低,開發(fā)速度加快,開發(fā)人員減少,維護(hù)費用降低,而參數(shù)化框架使得適應(yīng)性、靈活性增強。

框架分類

框架與類庫是不同的,框架強調(diào)的是軟件的設(shè)計重用性和系統(tǒng)的可擴充性,以縮短大型應(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ù)合而生成可運行的系統(tǒng)??蚣艿牧6仍酱螅渲邪念I(lǐng)域知識就更加完整。

J2EE有很多開源框架,一般每一種框架都會針對某一方面領(lǐng)域。

Struts是基于JavaEE應(yīng)用的MVC設(shè)計模式的應(yīng)用框架,減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化。

Hibernate是一個對象關(guān)系映射框架,目的是讓Java程序員可以使用對象編程思維來操縱數(shù)據(jù)庫。

Spring是一個綜合型框架,致力于J2EE應(yīng)用的各層的解決方案,而不是僅僅專注于某一層的方案??梢哉fSpring可以作為應(yīng)用開發(fā)的“一站式”選擇,并貫穿表現(xiàn)層、業(yè)務(wù)層及持久層。然而,Spring并不想取代那些已有的框架,它可以與其他框架無縫地整合。

考慮到面向的領(lǐng)域,以及實現(xiàn)編碼實現(xiàn),我們可以將將框架至少分為三類。

第一類是基礎(chǔ)類庫,主要包含多數(shù)項目所需要的類庫。(開發(fā)人員將其作為一個類庫使用,可以簡化一些常用的算法邏輯。)

第二類是基礎(chǔ)框架,該框架應(yīng)該整合或者實現(xiàn)J2EE開發(fā)所需要的常用功能。(此框架可以為各類WEB項目開發(fā)提供基礎(chǔ)支持。)

第三類是平臺框架,針對于某種特定領(lǐng)域,實現(xiàn)特定領(lǐng)域所需要的常用功能。(這個框架需要實現(xiàn)具體領(lǐng)域的業(yè)務(wù)的邏輯。并且應(yīng)該支持各類擴展)

相關(guān)文章

  • thymeleaf實現(xiàn)th:each雙重多重嵌套功能

    thymeleaf實現(xiàn)th:each雙重多重嵌套功能

    今天給大家分享一個使用 thymeleaf 實現(xiàn)一個動態(tài)加載一二級文章分類的功能,本文通過代碼講解的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-11-11
  • 微信小程序開發(fā)工具介紹

    微信小程序開發(fā)工具介紹

    這篇文章主要為大家介紹了微信小程序開發(fā)工具及基本的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • MobaXterm最新激活專業(yè)版

    MobaXterm最新激活專業(yè)版

    MobaXterm是一款遠(yuǎn)程終端控制軟件,集串口,SSH遠(yuǎn)程登錄和FTP傳輸三合一的工具,便攜版操作簡單,使用非常方便,這篇文章主要介紹了MobaXterm激活專業(yè)版,需要的朋友可以參考下
    2023-06-06
  • Git在項目協(xié)作開發(fā)中所解決問題

    Git在項目協(xié)作開發(fā)中所解決問題

    這篇文章主要為大家介紹了Git在項目協(xié)作開發(fā)中所解決問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 最新Adobe?2022全新上線?Adobe?2022永久免費使用教程

    最新Adobe?2022全新上線?Adobe?2022永久免費使用教程

    目前adobe2022的配置要求CPU至少是四核,運行內(nèi)存至少是16GB,只支持windows10系統(tǒng),版本號是1809以及更高的版本,下面跟隨小編看下最新Adobe?2022全新上線?Adobe?2022永久免費使用教程,感興趣的朋友一起看看吧
    2021-12-12
  • git pull時沖突的幾種解決方式(小結(jié))

    git pull時沖突的幾種解決方式(小結(jié))

    這篇文章主要介紹了git pull時沖突的幾種解決方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 如何用Idea或者webstorm跑一個Vue項目(步驟詳解)

    如何用Idea或者webstorm跑一個Vue項目(步驟詳解)

    這篇文章主要介紹了如何用Idea或者webstorm跑一個Vue項目,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • eBay 打造基于 Apache Druid 的大數(shù)據(jù)實時監(jiān)控系統(tǒng)

    eBay 打造基于 Apache Druid 的大數(shù)據(jù)實時監(jiān)控系統(tǒng)

    Apache Druid 是一個用于大數(shù)據(jù)實時查詢和分析的高容錯、高性能開源分布式時序數(shù)據(jù)庫系統(tǒng),旨在快速處理大規(guī)模的數(shù)據(jù),并能夠?qū)崿F(xiàn)快速查詢和分析。這篇文章主要介紹了eBay 如何打造基于 Apache Druid 的大數(shù)據(jù)實時監(jiān)控系統(tǒng)?需要的朋友可以參考下
    2019-06-06
  • svn 常用命令集合

    svn 常用命令集合

    SVN是subversion的縮寫,是一個開放源代碼的版本控制系統(tǒng),通過采用分支管理系統(tǒng)的高效管理,簡而言之就是用于多個人共同開發(fā)同一個項目,實現(xiàn)共享資源,實現(xiàn)最終集中式的管理
    2020-07-07
  • 分布式醫(yī)療掛號系統(tǒng)整合Gateway網(wǎng)關(guān)解決跨域問題

    分布式醫(yī)療掛號系統(tǒng)整合Gateway網(wǎng)關(guān)解決跨域問題

    這篇文章主要介紹了分布式醫(yī)療掛號系統(tǒng)整合Gateway網(wǎng)關(guān)解決跨域問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04

最新評論

江北区| 清流县| 来凤县| 阿尔山市| 信丰县| 中西区| 卓资县| 华坪县| 当雄县| 洱源县| 灌阳县| 博白县| 泗洪县| 稷山县| 镇原县| 宜宾市| 康平县| 益阳市| 灵璧县| 昆山市| 连山| 武宁县| 临洮县| 岫岩| 常德市| 大石桥市| 六盘水市| 呼玛县| 突泉县| 河池市| 勐海县| 奎屯市| 杂多县| 迭部县| 玛多县| 甘泉县| 江达县| 商河县| 乐都县| 南川市| 夹江县|