欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 計劃總結 > 工作總結 > 10.第六章 總結與展望

10.第六章 總結與展望

網站:公文素材庫 | 時間:2019-05-29 19:08:30 | 移動端:10.第六章 總結與展望

10.第六章 總結與展望

第六章總結與展望

第六章總結與展望

6.1對電子現金的總結

電子現金技術作為電子支付中最具潛力的技術之一,在隨著網絡普及和計算機、網絡通信技術的迅速發(fā)展,以Internet為基礎的電子商務在全球范圍內普及和迅速發(fā)展,與之相適應的電子支付系統(tǒng)成為產業(yè)界和學術界共同關注的熱點。電子支付的安全性影響著電子商務的普及和發(fā)展,電子支付技術實用化,必須把安全和效率結合起來。它具有與現實物理貨幣相似的特性,具有信用卡和電子支票無法具有的性能。

本文主要研究了有關電子現金的一些重要理論和關鍵技術問題,包括:1.論述了密碼學基礎的概念和理論,進而選擇了一種基于RSA公鑰加密算法作為本設計的基本算法。

2.討論了電子現金的安全性問題,并基于公鑰密碼體制原理,構造了一個電子現金方案。

3.討論了數字簽名技術原理及其應用,重點是在電子現金中RSA數字簽名的應用,為電子現金的成功運作提供了保障。

4.針對本設計中一些不完善的地方進行了論述,在以后的學習和生活中盡量去完善。

但是對于電子現金的應用方面,還有些不很樂觀。原因是:(1)只有少數商家接受電子現金,而且只有少數幾家銀行提供電子現金開戶服務;(2)成本較高,電子現金對于硬件和軟件的技術要求都較高;(3)存在貨幣兌換問題;(4)風險較大。

6.2對電子現金的展望

6.2.1電子現金的傳遞性的可用性研究

傳遞性是物理現金一個基本的特征,但在電子現金中還沒有應用,最主要的原因是:電子現金中為了能跟蹤重復花費的用戶,在電子現金中加入了盲化的用戶身份信息,在電子現金流動的過程中將加入使用過該電子現金的所有用

第六章總結與展望

戶身份信息,因此根據信息論的理論,電子現金的長度是不斷地增長的,每次交易都將造成大通信量問題,無法用于實際應用;另外電子現金無論是在構造還是存款過程中,相對于物理現金都是相當容易而有效的。

因此電子現金的傳遞性還有待于進一步研究。

6.2.2多銀行電子現金的研究

現有的電子現金方案都是由一個銀行發(fā)行的,但在現實生活中由多個電子銀行系統(tǒng)發(fā)行的電子現金較之單個銀行發(fā)行的電子現金是更適合的,因為在一個國家或地區(qū)具有電子現金發(fā)行能力的銀行可能不止一家。這多個銀行形成一個群體,它們受國家的中央銀行管理,每個銀行都可以發(fā)行電子現金。

所以由多個銀行發(fā)行的公平電子現金模型是電子現金系統(tǒng)研究的重要方向。

6.2.3可分電子現金系統(tǒng)的研究

可分電子現金系統(tǒng)能夠讓用戶進行多次合法的精確支付,減少提款次數,從而可以降低網絡通信量,提高系統(tǒng)效率,因此可分的電子現金系統(tǒng)是研究的重點。Okamoto和Ohta于1991年首次提出了一個可分電子現金系統(tǒng),該系統(tǒng)允許用戶將電子現金分成任意金額進行多次支付,直到與該電子現金的總額相等為止。為使銀行能夠有效地檢測用戶的重復支付,他們采用了二叉樹技術對電子現金進行表示,但這種技術導致電子現金的支付協(xié)議通信量大、計算復雜度高、效率低,盡管許多學者對該方案從不同的角度提出了改進,但都由于使用二叉樹表示使得支付協(xié)議的執(zhí)行效率仍然很低。

因此,到目前為止,可分電子現金系統(tǒng)依然是不實用的。關于這方面研究,還可以引入可信第三方來實現對超額支付者的識別,使電子現金的支付協(xié)議中沒必要包含進行重復支付檢查的信息,這樣就可以放棄可分電子現金的二叉樹表示技術,從而構造更簡單的可分電子現金系統(tǒng)。

今后為了設計更安全有效的包括電子現金在內的電子支付協(xié)議,應該加強針對實際應用環(huán)境的公鑰密碼的設計,研究包括算法優(yōu)化和軟硬件快速實現的公鑰密碼技術、設計新型分組密碼、研究分組密碼的軟硬件快速實現和專用芯

第六章總結與展望

片以及設計一些與商用的具體應用環(huán)境密切相關的特殊數字簽名,比如盲簽名、代理簽名、群簽名、具有消息恢復功能的簽名等。這些密碼的基礎性工作,對于包括電子現金在內的電子支付技術的發(fā)展是非常必要的。

擴展閱讀:總結與展望

第五章系統(tǒng)測試與分析

一、軟件測試

經過需求分析、設計和編碼等階段的開發(fā)后,得到了源程序,開始進入到軟件測試階段。然而,在測試之前的各階段中都可能在軟件產品中遺留下許多錯誤和缺陷,如果不及時找出這些錯誤和缺陷,并將其改正,這個軟件產品就不能正常使用,甚至會導致巨大的損失。目前,程序的正確性證明尚未得到根本的解決,因此軟件測試仍是發(fā)現軟件中錯誤和缺陷的主要手段。

系統(tǒng)整體測試步驟:1、單元測試

單元測試是整體測試中的第一步,通常在編碼階段進行。在源程序代碼經過編譯、評審、確認沒有語法錯誤之后,便可開始進行單元測試。

2、集成測試

集成測試在單元測試完成之后,將所有的模塊概要設計要求組裝成系統(tǒng)時進行的測試,

主要目標是發(fā)現與接口有關的問題。3、確認測試

經過集成測試之后,接口錯誤已經發(fā)現被發(fā)現并改正了,接下便要進行確認測試。所謂確認測試就是驗證所開發(fā)軟件的功能性及其他特性是否符合軟件需求規(guī)格說明書的要求。所以,確認測試又被稱為有效性測試。

4、系統(tǒng)測試

系統(tǒng)測試是更大范圍內進行測試,它將經過確認測試的軟件作為整個基于計算機的系統(tǒng)的一個元素,在實際運行環(huán)境下,對系統(tǒng)進行的一系列集成和確認測試。

二、微博系統(tǒng)測試(一)注冊頁面的錯誤提醒和提交注冊信息測試

反復點擊注冊頁面的輸入框,檢測其失焦提醒錯誤的JS事件是否會失效。然后再分別依“”次增多地填入用戶名、密碼等,點立即注冊按鈕,看其是否提醒缺失的必填選項。接著,再新建一個合法賬戶,然后重新注冊個與其名字相同的賬戶,看系統(tǒng)是否提醒,并且不為其添加記錄。經過以上反復測試,該模塊測試成功。

(二)登錄功能及模塊進入身份限制的測試

使用建好的賬戶不停登錄退出系統(tǒng),檢測系統(tǒng)存儲的用戶信息是否變化。然后檢測,不同身份的用戶是否能進到其身份不符合的模塊。經過以上反復測試,該模塊測試成功。

(三)輸入模塊的測試

對于微博的發(fā)布各項比如表情,圖片,音頻等反復地測試,使用它們發(fā)送是否正常。經過以上反復測試,該模塊測試成功。

(四)我的首頁模塊的測試

對于登錄成功的用戶跳轉到用戶自己的微博首頁,會顯示校園即時微博信息,并且首頁鏈接到各項功能模塊,并且可以發(fā)布微博。測試各個功能模塊是否正常,若有問題,馬上修改。經過以上反復測試,該模塊測試成功。

(五)@提到我的模塊的測試

當別人發(fā)布的微博或者轉的微博含有@用戶名的信息,那么會給被@的用戶即時消息提醒,檢查此功能是否正常,如果沒有差錯則測試成功。經過以上反復測試,該模塊測試成功。

(六)微博正文模塊,包括轉發(fā)、收藏、評論的測試

是否可以正常轉發(fā)、收藏、評論別人的微博,檢查功能是否正常,如果沒有差錯則測試成功。經過反復測試,該模塊測試成功。第六章總結與展望二、總結

(一)、學習

通過這次的畢業(yè)設計,我主要是學習到了如何使用ROR進行WEB開發(fā),如何靈活使用CSS寫出想要的頁面樣式,同時也學習了軟件工程以及數據庫方面的知識。

在整個系統(tǒng)的開發(fā)中,遇到了很多的難題,比如如何正確的去統(tǒng)計轉發(fā)數量以及評論數量等。經過幾次的修改以及借鑒Sina微博的做法,才得以初步解決。也讓我對權限和授權的知識的認識更進了一步。而且自己學習使用PHOTOSHOP等工具,也是為了配合CSS讓自己的系統(tǒng)頁面更好看,有一個好的視覺效果,也是花了很長的時間。對UI設計也更有了解了。

(二)、反思

當然,由于各方面知識的不專業(yè),這樣的一個系統(tǒng)還不夠成熟。而且許多當初的設計的功能最后因為各種原因也未能加入。系統(tǒng)在一開始編寫時未能給那些功能預留擴展,這是我在詳細設計時候未設計完善所導致的,是一個很好的經驗教訓。希望以后自己有更好的設計。

一、展望

通過這一次畢業(yè)設計,使我認識到自己在計算機領域所擅長的以及所需要彌補的是什么。我喜歡著眼于一個軟件產品的UI,自己會學習各種相關的知識來完成一個自己設計的UI。而且CSS也是我自己擅長的。以后我會更努力學習關于產品UI的專業(yè)的知識,以從事于相關職業(yè),更好的做好產品的圖形界面設計。參考文獻

[1]、DaveThomas,DavidHansson等.應用Rails進行敏捷Web開發(fā).電子工業(yè)出版社.201*.

[2]、裴有福.Web技術大全.中國水利水電出版社.1998[3]、百度知道.

[4]、BaronSchwartz、PeterZaitsev、VadimTkachenko、Jeremy.高性能MySQL(第2版).電子工業(yè)出版社:201*

[5]、賈錚等.HTML+CSS網頁布局開發(fā)指南.清華大學出版社.201*[6]、鄧蔚等.編程紅寶書:Ruby完全自學手冊.機械工業(yè)出版社.201*[7]、柳靖等.RubyonRails快速Web應用開發(fā)實戰(zhàn)[M].電子工業(yè)出版社.201*

[8]、〔美〕杰克戴維斯.ThePhotoshopWow!Book.201*.致謝

經過一個學期的努力,畢業(yè)設計系統(tǒng)的開發(fā)暫時告一段落了。這次畢業(yè)設計,讓我充分的把這幾年所學到的專業(yè)知識融會貫通,從做需求分析、設計數據庫、到系統(tǒng)整體設計和具體的代碼實現。整個設計,讓我學到了許多以前在課堂上面學不到的知識,很大程度的加強了自己的實踐能力。在此,感謝我的指導老師許精明老師的指導和督促,在整個的開發(fā)步驟上,老師給我們列出了詳細的任務工作計劃,使我們在開發(fā)進程上,不致于茫然。在設計思路和系統(tǒng)功能結構方面,老師給我們提出了許多寶貴的意見,同時不斷地給我們提出更高的要求。另外,感謝在我的畢業(yè)設計過程中給過我?guī)椭乃型瑢W,是大家的幫助才得以完成我的這個系統(tǒng)。

同時在設計過程中,我也發(fā)現了自己的不足,因為是首次進行這樣的課題開發(fā),在代碼的實現上略現笨拙,整個程序在架構上也算不上完美,以致予一些最初設計的功能最終并未實現,但我相信通過今后的學習和實踐,自己在開發(fā)能力一定能夠得到大大的提高。

最后衷心感謝四年來辛勤教育我們的老師,感謝朝暮相處的同學以及在畢業(yè)設計中被我引用或參考的論著的作者,并向參與此次答辯的老師致以深深的謝意!

附錄二附錄文獻翻譯

模型、視圖和控制器Rails應用的架構

Rails應用的一個有趣特性是它在如何組織web應用上強制推行一些嚴格的限制。令人驚訝的是,這些限制讓創(chuàng)建應用變得方便,而且不止一點的方便。讓我們來看看是為什么。

3.1模型、視圖和控制器

讓我們回到1971年,TrygveReenskaug為開發(fā)交互應用創(chuàng)造了一種新架構。在他的設計中,應用被分解為三種組件:模型、視圖和控制器。

模型負責保存應用的狀態(tài),有時狀態(tài)是臨時的,僅與用戶交互時存在,有的狀態(tài)是持久的,通常被保存在應用之外的數據庫中。

但模型不僅僅只是數據,它實施與數據有關的所有業(yè)務邏輯。舉例來說,如果一個賬戶不應被用于一個小于20美元的訂單額度,模型將為賬戶施加該約束。這就是意義所在。通過在模型中制約業(yè)務邏輯規(guī)則,我們可以確保沒有任何其他東西會影響數據的穩(wěn)定性。模型同時作為數據庫和看守者而存在。

視圖負責更新用戶界面。通常它基于模型中的數據。舉例來說,某在線商店有個產品目錄要呈現給用戶,該目錄可通過模型得到。但取得目錄并以一定格式呈獻給最終用戶的卻是視圖,盡管視圖可能為用戶提供多種輸入數據的方法,但它本身并不管理這些輸入的數據。當數據呈現給用戶以后,視圖的工作就完成了?赡軙性S多視圖共享同一數據模型。在網絡商店案例中,一些視圖負責呈現商品目錄信息,而另一些視圖用于管理員增加或修改商品信息。

控制器負責協(xié)調整個應用。它從外部世界(通常是用戶輸入)接收事件,與模型交互,并給用戶呈現相應視圖。

這三者模型、視圖與控制器都是從我們熟知的MVC框架中來的,要知道這三者是如何協(xié)同運作的,請看圖3-1。

MVC最初的設想是將其用于傳統(tǒng)的GUI應用,開發(fā)者們希望可以分離它們各自的表示,從而使維護和編寫代碼變得更容易。

每個概念或行為都可以在MVC框架中呈現,使用MVC就像在已放置好大梁的基礎上建造摩天大樓,有了它,構建其他部分就變得更容易了。在開發(fā)應用的過程中,我們將盡量使用Rails為構建應用的搭腳手架的能力。

ROR也是個MVC框架,Rails為你的應用實施一個框架開發(fā)模型、視圖及控制器。作為分離的功能區(qū),并且在程序運行時將它們聯(lián)接在一起。使用Rails的一個樂趣是這個聯(lián)接過程基于一個智能的框架。因此你不用去寫任何外部配置就可以讓它們運作。這是Rails“習慣優(yōu)于配置”哲學的一個體現。

在Rails應用中,送進來的請求最先傳遞給Router,Router用于發(fā)送和解析請求,最終,會在控制器的某段代碼中標識一個特定的方法(該方法在Rails中被稱為Action行為)。該行為會在請求中查看數據,還可能與模型交互,也可能使其他行為被喚醒。最終,該行為為視圖準備需要提交給用戶的信息。

Rails如圖3-2那樣處理請求,在本例中,應用開始時呈現商品目錄頁面,用戶只需點擊位于商品旁邊的[AddtoCart]按鈕,該按鈕傳遞信息給

:3000/line_items?

product_id=2,其中l(wèi)ine_items是我們應用中的一個資源,2是我們已選商品的內部ID。

路徑組件接收到送來的請求,并很快將其分解。該請求包含一個路徑(/line_items?product_id=2)以及一個方法(該按鈕執(zhí)行POST方法,其他常見方法還有PUT和DELETE)。在這個簡單例子中,Rails取得了路徑的第一部分line_items作為控制器名稱,以及product_id作為商品編號。按照慣例,POST方法與創(chuàng)建動作相關聯(lián)。(我們將在267頁談到命名慣例問題)

Create方法用于處理用戶請求。在本例中,該方法找到目前用戶的購物車,購物車是由模型控制的一個對象,接著它也要同時要求模型找到商品2的相關信息。然后該方法告訴購物車自己添加商品2的信息(看到模型是如何被用于保存所有交易信息了嗎?控制器告訴應用去做什么,模型知道該如何去做)。

現在購物車已將新商品包含在內,我們可以讓用戶看看它了?刂破鲉拘岩晥D代碼,但在此之前,它已為視圖從模型中讀取購物車對象做好了準備。在Rails中,這個約定通常是隱性的,又一次,是約定幫我們在視圖和控制器間建立聯(lián)接。

對于一個MVCweb應用來說,這已經夠用了。通過跟隨約定和合理劃分功能區(qū),你將發(fā)現代碼變得易于擴展和維護,看起來是筆劃算的交易不是嗎?如果MVC只是簡單將你的代碼劃分為適當功能區(qū),你可能會奇怪為何還需要ROR這么一個框架,答案很簡單:Rails為你包攬了所有瑣碎的家務活兒,那些將占用你大量時間的惱人細節(jié),使你將注意力集中在應用的核心功能上。讓我們來看看Rails是如何做到這點的。

3.2Rails支持模型

總的來說,我們希望在關系數據庫上保存應用的信息。訂單實體系統(tǒng)將在數據庫表中保存訂單,在線商品及用戶細節(jié)。甚至那些通常使用非結構化文本的應用,如weblog及一些新聞站點,都會使用數據庫作為它們的后臺存儲工具。

盡管一兩句話無法說明操作數據庫的SQL(結構化查詢語言),關系數據庫實際上是基于數據集理論被設計而成。理論上講這設計沒什么問題,但它很難與面向對象語言結合在一起。對象是關于數據和操作的,數據庫關于值的集合。在OO系統(tǒng)中,難以用代碼表達的操作可以在數據庫中輕松實現,反之,難以用關系數據庫實現的,可以用代碼表達。

隨著時間推移,人們發(fā)明了多種方法來整合這兩種途徑,來共同呈現數據。讓我們看看Rails采用了那種方法將關系數據庫映射到對象上面。

對象關系映射

ORM庫將數據庫表映射為各種類,如果數據庫中有名為orders的表,我們的程序就會有個Order類,表中的行與該類的對象關聯(lián),一個特定的訂單表示Order類中的某個對象。在該對象中,屬性用于獲取和設置表中的特定列,Order對象中有內部方法用于獲取和設置賬戶信息、繳納稅金和其他操作。

此外,Rails中用于覆蓋數據庫表的類提供系列類級方法可以實現數據庫表的各種操作。舉例來說,我們要根據特定ID來找尋一個訂單。該操作被實現為一個可返回Order對象的類方法,在Ruby代碼中,它看起來像這樣:

有時這些類級方法返回的是一個對象集:

最后,與對象們都有可操作表中對應行的方法,可能最常用的就是保存,將其所在行保存進入數據庫。

所以,ORM層將數據庫映射為類,表中行映射為對象,列映射為對象屬性。類方法用于實現表級操作,實例方法用于實現列操作。

一個典型的ORM庫中,你需要提供配置參數明確數據庫實體與程序實體間的映射,使用這些ORM工具的程序員通常發(fā)現他們要創(chuàng)建和維護一大堆的XML配置文件。

ActiveRecord

ActiveRecord是個專用于Rails的ORM層,它跟從標準ORM模型。表映射為類,行映射為對象,列映射為對象屬性。它與大多數ORM庫最大的不同在于它的配置方式。通過約定和遵循合理框架,ActiveRecord大大減少了程序員配置文件的數量。

為了說明這一點,以下有個使用ActiveRecord來覆蓋Orders表的代碼:

這段代碼通過ID來取得訂單,它使用了Order類,并修改pay_type變量(我們現在先忽略創(chuàng)建數據庫連接的代碼)。ActiveRecord把我們從處理底層數據庫的麻煩中解放出來,讓我們集中精力在業(yè)務邏輯上。

但ActiveRecord能做的不止于此,正如你所見的那樣,在開發(fā)購物車應用時,你會看到這點。ActiveRecord與Rails框架的其他組件無縫的集成在一起,若一個表單發(fā)送的應用數據與業(yè)務模型有關,ActiveRecord可以將數據抽取到模型當中。ActiveRecord支持各種設定好的數據模型,若表單數據沒能通過驗證,Rails視圖就可以抽取并將錯誤顯示出來。ActiveRecord是RailsMVC架構穩(wěn)固的模型基礎。ActionPack:視圖與控制器

請考慮下這點,視圖和控制器在MVC框架中是聯(lián)系緊密的兩個部分,控制器為視圖提供數據,控制器從視圖產生的頁面中獲取事件,正因如此,Rails中對這兩者的支持被綁定到一個名為ActionPack的獨立組件中。

不要傻傻因為ActionPack是個獨立組件就以為你的視圖和控制器代碼會被搞得一團糟。恰恰相反,Rails給了二者足夠的獨立性,讓開發(fā)者為控制與顯示邏輯編寫界限清晰的代碼。

視圖支持

在Rails中,視圖負責創(chuàng)建部分或全部需要在瀏覽器中呈現的響應,無論是運行應用或發(fā)送郵件。簡單說來,視圖就是一塊HTML代碼用以顯示固定的文本塊。通常你可能想在其中嵌入動態(tài)代碼,而這些是由控制器中的行為方法創(chuàng)建的。

在Rails中,動態(tài)部分由模板生成,它有以下三個特性。最常用的叫模板模式,也叫做嵌入式ruby(ERb)。

將小片的Ruby代碼嵌入視圖文檔中,在很多方面都與其他web開發(fā)框架類似,如PHP或JSP。盡管這方法很靈活,但還是有些人認為它褻瀆了MVC的精神。通過在視圖中嵌入代碼,我們大膽嘗試了本應在模型或控制器中的增量邏輯,正如其他事物一樣,有節(jié)制的合理使用是明智的,濫用則造成問題。開發(fā)人員需把握二者之間的界限(我們會在第410頁,用ERB更新HTML代碼一節(jié)看到有關內容)。

XMLBuilder也可使用Ruby代碼構建XML文檔生成的XML結構會自動跟隨代碼結構,我們將從第408頁開始討論xml.builder模板。

Rails也提供RTS視圖,該視圖允許你在服務器端創(chuàng)建JavaScript代碼,然后在瀏覽器中顯示。這點對創(chuàng)建動態(tài)Ajax接口很有利,我們將從145頁討論這部分內容。

談談控制器

Rails控制器是應用的邏輯中心,它協(xié)調了用戶、視圖和模型三者間交互。然而Rails控制幕后大部分交互操作,讓你的代碼可集中于功能實現上。這使得Rails控制器代碼變得極易開發(fā)和維護?刂破饕灿糜诎仓靡幌盗兄匾嚓P服務:

它負責引導外部請求獲得內部行為,它可以很好管理用戶友好的URLs。它管理緩存,可以讓應用在大量請求訪問時表現良好。

它管理幫助模塊,該模塊可以在不增加大量代碼的情況下擴展視圖模板的性能。

它管理會話,讓應用在交互時保持連續(xù)的感覺。附錄一翻譯原文

Model,viewandcontrollerRailsapplicationframework

AninterestingfeatureofRailsapplicationsimposestringentrestrictionsonhowtoorganizethewebapplications.Surprisingly,theserestrictionscreateapplicationsbecomesconvenient,butmorethanalittleconvenient.Letuslookatwhy.

3.1model,viewandcontroller

Let"sgobackto1971,TrygveReenskaugcreatedanewframeworkforthedevelopmentofinteractiveapplications.Inhisdesign,theapplicationisbrokendownintothreecomponents:model,viewandcontroller.

Responsibleforthestatetosavetheapplicationmodel,sometimesthestateistemporary,onlywhentheuserinteraction,andsomestateislong-lasting,usuallystoredinthedatabaseoutsideoftheapplication.

Themodelisnotjustdata,itistheimplementationofallthebusinesslogicanddata.Forexample,ifanaccountshouldnotbeusedforanorderoflessthan$20amount,themodelwillaccounttoimposetheconstraints.Thisiswherethemeaning.Constraintsinthemodelbusinesslogicrules,wecanensurethatnootherthingswillaffectthestabilityofthedata.Modelatthesametimeasthedatabaseandthecaretakerthere.

Theviewisresponsibleforupdatingtheuserinterface.Itisusuallybasedonthedatamodel.Forexample,anonlinestore,acatalogtobepresentedtotheuser,thedirectorycanbeobtainedthroughthemodel.Butmadeandthecatalogwasdedicatedtotheenduser,butisaviewinacertainformat,althoughtheviewmayprovideuserswithavarietyofinputdata,butdoesnotitselfmanagetheseinputdata.Whenthedataafteritispresentedtotheuser,theviewoftheworkcompleted.Theremaybemanyviewsharethesamedatamodel.Inthecaseofonlinestores,someoftheviewresponsibleforshowingthecataloginformation,whileothersviewfortheadministratortoaddormodifytheproductinformation.

Thecontrollerisresponsibleforcoordinatingtheentireapplication.Itfromtheoutsideworld(normallyuserinput)toreceiveevents,interactingwiththemodel,andrenderedtotheuserview.

Three-model,viewandcontrollerarefromtheWearefamiliarwiththeMVCframework,andtoknowthesethreecollaboration,seeFigure3-1.

MVCwasoriginallyconceivedfortraditionalGUIapplications,developershopecanbeseparatedfromtheirrespectiverepresentation,sothatmaintenanceandcodeeasier.

EachconceptorbehaviorcanbepresentedintheMVCframeworkusingtheMVCashavebeenplacedgirdersonthebasisoftheconstructionofskyscrapers,andwithit,buildtheotherpartseasier.Inthedevelopmentandapplicationoftheprocess,wewilltrytouseRailsscaffoldingabilitytobuildapplications.

RORisaMVCframework,Railsimplementationofaframeworkforyourapplication-thedevelopmentofthemodel,viewandcontroller.Theprogramrunsasaseparatefunctionalarea,andtheyarelinkedtogether.Railsisafunconnectionprocessbasedonanintelligentframework.Soyoudonothavetowriteanyexternalconfigurationallowstheiroperation.ThisisamanifestationoftheRails"habitsoverconfiguration"philosophy.

Railsapplication,sentintherequestwasfirstpassedtotheRoutertheRouterisusedtosendtheresolutionrequest,andultimately,inthecontrollersectionofcodethatidentifiesaparticularmethod(themethodcalledActionbehaviorinRails).Theactwouldviewthedataintherequest,mayalsointeractwiththemodel,mayalsomakeotheractstobeawakened.Ultimately,thebehaviorfortheviewtopreparerequiredtouser.

submit

information

to

the

RailsinFigure3-2asprocessingtherequest,showingtheCatalogpageinthiscase,thebeginningoftheapplication,userssimplyclickonthegoodsnext[AddtoCart]button,thebuttontotransmitinformationto:3000/line_items?

theproduct_id=2,line_itemsisaresourceinourapplication,twointernalIDhasbeenchosenforthegoods.

Pathcomponentreceivesarequestsent,andwillsoonbeitsdecomposition.Therequestcontainsapath(/line_items?Theproduct_id=2)andamethod(thebuttontoexecutethePOSTmethod,theothercommonmethodsPUTandDELETE).Inthissimpleexample,Railshasachievedthefirstpartofthepath-line_itemsasthecontrollername,andproduct_idasacommoditynumber.Byconvention,thePOSTmethod,createactionassociated.(267itcomestonamingconventionproblems)

Createmethodsforhandlinguserrequests.Inthiscase,themethodfindsthecurrentuser"sshoppingcart,thecartisanobjectofcontrolbythemodel,thenitshouldalsorequirethemodeltofindtherelevantinformationofcommodity2.Thentoldcartaddcommodity2information(seethemodelishowtobeusedtosavealltransactioninformation?Controllertellstheapplicationwhattodo,themodelknowshowtodo).Shoppingcartnewproductshavebeenincluded,wecanlettheuserseeit.Controllertowake-upviewofthecode,butbeforeithastheviewisreadfromthemodeltheshoppingcartobjectready.InRails,thisagreementisusuallyhidden,onceagain,agreedtohelpustoestablishaconnectionbetweentheviewandcontroller.

ForaMVCwebapplication,whichisalreadygoodenough.Followtheconventionsandrationaldivisionoffunctionalareas,youwillfindthecodeeasytoextendandmaintain,itseemsispenbargainisnotit?IfMVCissimplyyourcodeintotheappropriatefunctionalarea,youmightwonderwhysuchaframeworkneedstoROR,theanswerissimple:Railssweptalltrivialchoreschildrenwhowilloccupyalotoftimeannoyingdetails,sothatyoufocusontheapplicationofcorefunctions.LetuslookatRailsishowtodoit.3.2Railssupportmodel

Overall,wehopethattheinformationstoredinarelationaldatabaseapplications.Orderphysicalsystemwillsavethedetailsoftheordersofgoodsanduserinthedatabasetable.Eventhosewhotypicallyuseunstructuredtextapplications,suchasweblogandnewssitewillusethedatabaseastheback-endstoragetools.

AlthoughoneortwowordscannotexplaintheoperationofthedatabaseSQL(StructuredQueryLanguage)relationaldatabaseisactuallybasedonthetheoryofdatasetstobedesigned.Intheory,thisdesignisnoproblem,butitisdifficulttocombinewithobject-orientedlanguage.Theobjectisadatabaseonthevalueofacollectionofdataandoperations.InOOsystems,itisdifficulttocodeexpressionoperationinthedatabaseeasily,andviceversa,itisdifficulttouserelationaldatabase,canbeexpressedincode.

Overtime,peopleinventedavarietyofmethodstointegratethesetwoapproachestogethertopresentthedata.LetuslookatRailsusesakindofrelationaldatabaseismappedtotheobjectabove.Object-relationalmapping

ORMlibrariesmapdatabasetablestoavarietyofclasses,ifthedatabasetablecalledorders,ourprogramwillhaveaOrderclass,rowinatableassociatedwiththeobjectofthatclass,aspecificorderthattheOrderclassobjects.Theobjectattributeisusedtoaccessandsetaspecificcolumninthetable,theOrderobjectinternalmethodsusedtogetandsettheaccountinformation,paytaxesandotheroperating

Railsprovidesaseriesofclass-levelmethodcanachieveavarietyofoperationofthedatabasetableusedtocovertheclassofthedatabasetable.Forexample,wefindanorderbasedonthespecificID.ThisoperationisimplementedasaclassmethodtoreturntheOrderobjectinRubycode,itlookslikethis:

Sometimesobjects:

these

class-level

method

returns

a

set

of

Finally,withtheobjecttohaveacorrespondingrowintheoperationaltable,maybethemostcommonlyusedistosave,saveitsrowintothedatabase.

ORMlayerdatabasemappingfortheclass,rowsinatablemappingobject,thecolumnismappedtoobjectproperties.Classmethodsfortable-leveloperations,andaninstancemethodforcolumnoperation.AtypicalORMlibrary,youneedtoprovidethemappingbetweentheconfigurationparametersexplicitlydatabaseentitiesandproceduresforentities,usingtheseORMtoolsprogrammersoftenfindtheywanttocreateandmaintainabunchofXMLconfigurationfiles.ActiveRecord

ActiveRecordistheRailsORMlayer,whichfollowthestandardORMmodel.Thetablemappingfortheclassmappingrowstoobjects,thecolumnismappedtoobjectproperties.ThebiggestdifferenceisthatwithmostoftheORMlibraryconfiguration.Conventionsandfollowthelogicalframework,ActiveRecord,greatlyreducingthenumberofprogrammersconfigurationfile.

Toillustratethis,thefollowingcodetocovertheOrderstableusingtheActiveRecord:

ThecodetogettheorderbyID,usetheOrderclass,andmodifypay_typevariables(whichwefirstignorethecodetocreateadatabaseconnection).ActiveRecordusfreefromthetroubleofdealingwiththeunderlyingdatabase,letusconcentrateonthebusinesslogic.ActiveRecordcandomorethanthat,asyoucansee,inthedevelopmentofashoppingcartapplication,youwillseethis.ActiveRecordandothercomponentsoftheRailsframeworkforseamlessintegrationwithaformtosendapplicationdataandbusinessmodelsrelatedtoActiveRecorddatacanbeextractedtothemodel.ActiveRecordsupportsavarietyofpredetermineddatamodel,theformdatadoesnotpassverification,theRailsviewcanextractanddisplaytheerrorout.

ActiveRecordisthebasisofthesolidmodelRailsMVCarchitecture.ActionPack,:viewandcontroller

PleaseconsiderthatunderthispointofviewandthecontrollerintheMVCframeworkiscloselylinkedtotwopartsofthecontrollerfortheviewtoprovidedataaccesstoeventsgeneratedbythecontrollerfromtheviewpageandthatiswhythesebothRailsthesupportisboundtoaActionPackindependentcomponent.

DonotbefooledbecauseActionPackisanindependentcomponentandthinkthatyourviewandcontrollercodewillbeamess.Onthecontrary,theRailstobothsufficientindependence,thepreparationofclearboundariesofthecodeallowsdeveloperstocontrolanddisplaylogic.ViewsupportInRails,theviewisresponsibleforcreatingpartoralloftheneedtoberenderedinthebrowserresponse,whetheritisrunningtheapplicationorsende-mail.Simplyput,theviewisanHTMLcodeforafixedblockoftext.Normallyyoumightwanttoembeddeddynamiccode,andthesearecreatedbythecontrollerbehavior.

InRails,thedynamicpartsaregeneratedbythetemplate,ithasthefollowingthreecharacteristics.Themostcommonlyusediscalledthetemplatepattern,alsoknownasembeddedruby(ERbtem).

EmbedasmallpieceofRubycodetoviewdocumentinmanywayssimilartootherwebdevelopmentframeworkssuchasPHPorJSP.Althoughthismethodisveryflexible,butstillsomepeoplethinkthatitdesecratedthespiritoftheMVC.Embedcodeintheview,wehaveaboldattempttoincrementallogicofthemodelorcontroller,likeotherthings,therationaluseofrestraintiswise,abuseiscausingtheproblem.Developersneedtograsptheboundariesbetweenthetwo(410,ERBupdatetheHTMLcodefortheonetoseethecontent).

CanalsobeXMLBuilderRubycodetobuildanXMLdocument-thestructureofthegeneratedXMLwillautomaticallyfollowthecodestructure,wewill408discussxml.buildertemplate.

RailsalsoprovidestheRTSview,whichallowsyoutocreateserver-sideJavaScriptcode,andthendisplayedinthebrowser.ThisisverybeneficialtocreateadynamicAjaxinterface,from145todiscussthispart.

Talkaboutthecontroller

Railscontrollerapplicationlogiccenter,whichcoordinatestheinteractionbetweenusers,viewandmodelthethree.However,mostoftheRailscontrolbehindthescenestointeroperate,sothatyourcodecanbefocusedonthefunctionrealization.ThismakestheRailscontrollercodetobecomeeasilydevelopandmaintain.Thecontrollerisalsousedforplacementofaseriesofimportantservices:Itisresponsiblefordirectingexternalrequestsforaccesstointernalbehavior,itcanbeagoodmanagementofuser-friendlyURLs.

Itmanagesthecache,youcanlettheapplicationrequestsaccesstoalargenumberofgoodperformance.

Itmanagestohelpthemodule,themodulecanincreasetheperformanceofanexpandedviewofalargenumberofcodetemplates.

Itmanagessessions,applicationsinteracttomaintainacontinuoussense.附錄三附圖或程序清單

一、功能一附圖或程序清單二、功能二附圖或程序清單

友情提示:本文中關于《10.第六章 總結與展望》給出的范例僅供您參考拓展思維使用,10.第六章 總結與展望:該篇文章建議您自主創(chuàng)作。

來源:網絡整理 免責聲明:本文僅限學習分享,如產生版權問題,請聯(lián)系我們及時刪除。


10.第六章 總結與展望》由互聯(lián)網用戶整理提供,轉載分享請保留原作者信息,謝謝!
鏈接地址:http://www.7334dd.com/gongwen/731478.html