濮阳杆衣贸易有限公司

主頁 > 知識庫 > 程序員 代碼是從頭編還是使用框架好呢?

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

熱門標(biāo)簽:怎么去掉地圖標(biāo)注文字 地圖標(biāo)注資源分享注冊 海南人工外呼系統(tǒng)哪家好 北京外呼系統(tǒng)咨詢電話 高德地圖標(biāo)注公司位置需要錢嗎 合肥阿里辦理400電話號 襄陽外呼增值業(yè)務(wù)線路解決方案 慶陽外呼系統(tǒng)定制開發(fā) 廊坊地圖標(biāo)注申請入口

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

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

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

框架VS自定義解決方案

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

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

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

自動化正在接管一切

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

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

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

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

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

什么是框架

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

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

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

框架是實(shí)現(xiàn)了某應(yīng)用領(lǐng)域通用功能的底層服務(wù)。使用這種框架的編程人員可以在一個(gè)通用功能已經(jīng)實(shí)現(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è)計(jì),可以降低開發(fā)難度。

從程序員角度看,使用框架最顯著的好處是重用,由于框架能重用代碼,因此從一已有構(gòu)件庫中建立應(yīng)用變得非常容易,因?yàn)闃?gòu)件都采用框架統(tǒng)一定義的接口,從而使構(gòu)件間的通信簡單。框架能重用設(shè)計(jì)。它提供可重用的抽象算法及高層設(shè)計(jì),并能將大系統(tǒng)分解成更小的構(gòu)件,而且能描述構(gòu)件間的內(nèi)部接口。這些標(biāo)準(zhǔn)接口使在已有的構(gòu)件基礎(chǔ)上通過組裝建立各種各樣的系統(tǒng)成為可能。只要符合接口定義,新的構(gòu)件就能插入框架中,構(gòu)件設(shè)計(jì)者就能重用構(gòu)架的設(shè)計(jì)??蚣苓€能重用分析。所有的人員若按照框架的思想來分析事物,那么就能將它劃分為同樣的構(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)度等方面。最后,框架實(shí)現(xiàn)這一目標(biāo)的方式是進(jìn)行有效的知識積累。軟件開發(fā)是一種知識活動,因此知識的聚集和積累是至關(guān)重要的??蚣苣軌虿捎靡环N結(jié)構(gòu)化的方式對某個(gè)特定的業(yè)務(wù)領(lǐng)域進(jìn)行描述,也就是將這個(gè)領(lǐng)域相關(guān)的技術(shù)以代碼、文檔、模型等方式固化下來。

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

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

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

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

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

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

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

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

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

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

標(biāo)簽:平頂山 綿陽 鶴崗 商丘 哈密 株洲 鎮(zhèn)江 臺州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《程序員 代碼是從頭編還是使用框架好呢?》,本文關(guān)鍵詞  程序員,代碼,是,從頭,編,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《程序員 代碼是從頭編還是使用框架好呢?》相關(guān)的同類信息!
  • 本頁收集關(guān)于程序員 代碼是從頭編還是使用框架好呢?的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    张家港市| 龙州县| 专栏| 建湖县| 黔西| 瓦房店市| 灵武市| 巨鹿县| 茌平县| 双城市| 郴州市| 清涧县| 延津县| 宜章县| 霍林郭勒市| 大足县| 仙游县| 临洮县| 锦屏县| 苍溪县| 威远县| 邮箱| 湘潭县| 鄄城县| 清河县| 珠海市| 雷波县| 潢川县| 河曲县| 北流市| 昌图县| 射阳县| 烟台市| 东阳市| 鄄城县| 滦平县| 会宁县| 晋宁县| 利川市| 蒲城县| 阿克陶县|