freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于nodejs的小型框架設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(存儲(chǔ)版)

  

【正文】 及本地倉(cāng)庫(kù)。一旦使用版本控制系統(tǒng)關(guān)于工程,那么不管整個(gè)項(xiàng)目中的 文件如何改動(dòng)刪除,最后也可以完整的恢復(fù)原來(lái)的某個(gè)版本。 運(yùn)用各種插件幾乎能提供所有 IDE 所具備的功能。例如普通模式命令 dd刪除當(dāng)前行, dj代表刪除下一行 ,因?yàn)槭堑谝粋€(gè) d含義是刪除 ,j鍵代表移動(dòng)到下一行 ,組合后 dj刪除當(dāng)前行和下一行。除此以外,還將介紹在 Ubutun 下如何搭建 開(kāi)發(fā)平臺(tái)。如今不管哪個(gè)系統(tǒng)平臺(tái)下, javascript 開(kāi)發(fā) IDE 都很少,或者難以使用,缺乏有效的調(diào)試工具,編碼效率得不到提高。如果跟隨版本變化則框架的穩(wěn)定性無(wú)法保證。本框架將封裝 的底層接口,對(duì)請(qǐng)求數(shù)據(jù)等提供統(tǒng)一簡(jiǎn)潔的方式,從而較大幅度的提升開(kāi)發(fā)效率。 只提供底層的 接口。 ( 4)需要大量計(jì)算的程序 (在 版本以前)不支持多線(xiàn)程。 JavaScript 當(dāng)下支持的仍是定長(zhǎng)的 UCS2 編碼 而不是 UTF16,因此對(duì)于處理使用 UCS4 進(jìn)行編碼 的字符無(wú)能為力。明顯,漢字就不止這個(gè)數(shù)目。但如果面對(duì)的是單用戶(hù),譬如本地的命令行工具或者圖形界面,那么就不存在所謂的大量并發(fā)請(qǐng)求。 平臺(tái)的非擅長(zhǎng)領(lǐng)域 一個(gè)優(yōu)秀的平臺(tái)能夠吸引大量開(kāi)發(fā)者的關(guān)注。在 Windows 下, libuv 使用了 Windows 的 IOCP( Input/Output Completion Port,輸入輸出完成端口)機(jī)制,實(shí)現(xiàn)高性能,而對(duì)于 Linux、 UNIX,Mac OS X 等操作系統(tǒng), 的 libuv 庫(kù)通過(guò)使用 libeio 和 libev 的封裝來(lái)利用 kqueue 或 epoll?;谑录漠惒教幚頇C(jī)制的 對(duì)于所有的網(wǎng)絡(luò)通信、磁盤(pán)讀寫(xiě)、數(shù)據(jù)庫(kù)操作等都以異步請(qǐng)求的方式實(shí)現(xiàn),最后將執(zhí)行得到的結(jié)果交給事件循環(huán)進(jìn)行處理。 既可以在網(wǎng)絡(luò)環(huán)境下運(yùn)行也可以非網(wǎng)絡(luò)的環(huán)境下運(yùn)行,如即時(shí)編譯終端。因此,采用 web應(yīng)用或者企業(yè)應(yīng)用能夠較大程度的降低硬件成本和提高應(yīng)用處理業(yè)務(wù)的效率。由于javascript 在瀏覽器端具有極高的執(zhí)行效率,并且兼容多種流浪器,這促使其中一部分人思考是否可以把 javascript 放在服務(wù)端運(yùn)行,能夠像其他 web 語(yǔ)言一樣提供業(yè)務(wù)邏輯處理?;趯?duì)不同平臺(tái)現(xiàn)有框架分析提取出本框架的功能點(diǎn)。使得 javascript 也能實(shí)現(xiàn)了諸如文件系統(tǒng)、操作系統(tǒng)、網(wǎng)絡(luò)通信等功能。 剛推廣不久,國(guó)內(nèi)還比較缺少使用 做應(yīng)用開(kāi)發(fā)的框架,如果直接使用 底層 API 進(jìn)行應(yīng)用開(kāi)發(fā)有較大的困難,基于此點(diǎn),本論文開(kāi)發(fā)設(shè)計(jì)一個(gè)簡(jiǎn)單小型的 MVC框架,簡(jiǎn)化 的使用的同時(shí)提高開(kāi)發(fā)效率。javascript。 將 javascript 從瀏覽器移植到了普通服務(wù)器上 ,它運(yùn)行在 Chrome 的 V8 高速引擎上,實(shí)現(xiàn)了操作系統(tǒng)訪(fǎng)問(wèn)、網(wǎng)絡(luò)通信、文件讀寫(xiě)等功能。這是它和其他 web 語(yǔ)言如 PHP、 Perl 的不同所在。 最大的特點(diǎn)就是采用異步式 I/O 與事件驅(qū)動(dòng)的架構(gòu)設(shè)計(jì)。這樣做優(yōu)點(diǎn)在于能夠集中 CPU 和內(nèi)存資源快速處理某個(gè)事件,并且盡量讓耗費(fèi)資源的 I/O 操作并行執(zhí)行。 (1)大規(guī)模的社交網(wǎng)絡(luò) Web 應(yīng)用,如微博, FaceBook 等。盡管它是高性能的,新穎的,但也不得不寫(xiě)出難以理解的邏輯代碼。而到目前為止 的線(xiàn)程或進(jìn)程之間的通信還不方便,因?yàn)樗緵](méi)有資源鎖,所以號(hào)稱(chēng)不會(huì) 死鎖。最初的 Unicode 設(shè)計(jì)者認(rèn)為 65536 個(gè)字符足以表示全世界所有的文字,因 第 5 頁(yè) 共 63 頁(yè) 此那個(gè)時(shí)候兼容 Unicode 的系統(tǒng)或平臺(tái),如 Windows、 Java 和 JavaScript 在后來(lái)都遇到這個(gè)問(wèn)題。因此你無(wú)法處理罕見(jiàn)的字符的時(shí)候,想用 實(shí)現(xiàn)一個(gè)多語(yǔ)言的字典工具是不可能做到的,除非放棄使用 javascript 原有的 string 數(shù)據(jù)類(lèi)型,將所有的字符當(dāng)作二進(jìn)制的 Buffer 數(shù)據(jù)來(lái)處理。對(duì) 比而言, 其單線(xiàn)程性的特性,如果需要充分利用多核資源則需要使用多進(jìn)程的方法才能達(dá)到 理想情況下的單線(xiàn)程執(zhí)行過(guò)程會(huì)將 100%利用 CPU 核心資源,所有請(qǐng)求須等待當(dāng)前請(qǐng)求處理完畢后才進(jìn)入事件循環(huán)才能響應(yīng)。對(duì)于開(kāi)發(fā)效率有著嚴(yán)重的制約。 小型的 MVC 框架意味著該框架應(yīng)具有易用性和高效性,能夠很大程度上滿(mǎn)足大多數(shù)業(yè)務(wù)的邏輯。二是缺乏中文資料,有關(guān)資料只能去 的官方文檔查詢(xún)而且是英文。 ( 7)目前沒(méi)有任何一個(gè)官方文檔規(guī)定 的代碼風(fēng)格,為了保持框架代碼的可讀性和可維護(hù)性,需要定制某一標(biāo)準(zhǔn),方便今后的維護(hù)。 Vim 在程序員中被廣泛使用,與 Emacs 并列成為類(lèi) Unix 系統(tǒng)用戶(hù)最受歡迎的編輯器。寫(xiě)代碼的時(shí)候手需要時(shí)刻保持在鍵盤(pán)上 ,隨機(jī)定位代碼、隨機(jī)刪除代碼、移動(dòng)代碼、插入代碼的操作大大多于閱讀、翻頁(yè)操作,中間卡頓一下效率就大大降低了 。 git 簡(jiǎn)介 源 代碼版本控制系統(tǒng)介紹 源代碼版本控制是用來(lái)記錄若干源碼文件內(nèi)容變化,方便以后用來(lái)查看修改某特定版本代碼的系統(tǒng)。它當(dāng)初誕生的原因是為了更好的維護(hù)Linux 內(nèi)核源代碼。 圖 而 Git 關(guān)心的則是文件 數(shù)據(jù)的整體變化如圖 圖 git 總結(jié) 第 13 頁(yè) 共 63 頁(yè) Git 的設(shè)計(jì)顛覆了傳統(tǒng)版本控制的設(shè)計(jì)思想,對(duì)于文件控制的每環(huán)節(jié)的實(shí)現(xiàn)方式提供了新的設(shè)計(jì)方案。例如下面代碼,在大多數(shù)類(lèi) C 的語(yǔ)言中會(huì)出現(xiàn)變量未定義的錯(cuò)誤,而在 JavaScript 中卻完全合法: if (true) { var somevar = 39。滿(mǎn)足以下條件的變量屬于全局作用域: 第 14 頁(yè) 共 63 頁(yè) 在最外層定義的變量; 全局對(duì)象的屬性; 任何地方隱式定義的變量(未定義直接賦值的變量)。 閉 包 閉包( closure)是函數(shù)式編程中的概念,出現(xiàn)于 20 世紀(jì) 60 年代,最早實(shí)現(xiàn)閉包的語(yǔ)言是 Scheme,它是 LISP 的一種方言。因?yàn)榻^大多數(shù)面向?qū)ο笳Z(yǔ)言中的對(duì)象都是基于類(lèi)的,所以容易混淆類(lèi)的實(shí)例與對(duì)象的概念。 = 39。 } } 以上是一個(gè)簡(jiǎn)單的構(gòu)造函數(shù),接下來(lái)用 new 語(yǔ)句來(lái)創(chuàng)建對(duì)象: 第 16 頁(yè) 共 63 頁(yè) var xiaomin = new User(39。 在 JavaScript 中, call 和 apply 是兩個(gè)神奇的方法 .call 和 apply 的功能是以不同的對(duì)象作為上下文來(lái)調(diào)用某個(gè)函數(shù)。 ,因?yàn)闃?gòu)造函數(shù)內(nèi)的局部變量對(duì)其中定義的函數(shù)來(lái)說(shuō)也是可見(jiàn)的。這三類(lèi)對(duì)象中每一類(lèi)都有一個(gè) __proto__ 屬性,它指向該對(duì)象的原型,從任何對(duì)象沿著它開(kāi)始遍歷都可以追溯 到 。據(jù) Git 用戶(hù)調(diào)查, GitHub 是最流行的 Git 存取站點(diǎn)。 由于開(kāi)源軟件越來(lái)越受歡迎,跟隨著開(kāi)源協(xié)議也越來(lái)越多。 BSD 是對(duì)商業(yè)應(yīng)用非常友好的開(kāi)源協(xié)議。 第 19 頁(yè) 共 63 頁(yè) GPL 協(xié)議的主要內(nèi)容是只要在一個(gè)軟件中使用了具有 GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用 GPL 協(xié)議,既必須也是開(kāi)源和免費(fèi)。因此商業(yè)軟件還是可以引用這些具有 LGPL 協(xié)議的代碼庫(kù)。如下圖所示: 圖 圖 安裝完成后可以運(yùn)行命令 node v 來(lái)查看當(dāng)前 的版本,然后運(yùn)行 node 進(jìn)入到即時(shí)運(yùn)行狀態(tài) 輸入輸入代碼 (“ Hello world” )。 第 22 頁(yè) 共 63 頁(yè) 第三章 框架的設(shè)計(jì)與實(shí)現(xiàn) FastJsonWeb 作為以一個(gè)小型 MVC 框架,用來(lái)實(shí)現(xiàn)一般的小型高并發(fā)系統(tǒng),從實(shí)際需求角度出發(fā)應(yīng)該具備以下功能: ( 1)路 由映射功能。 ( 5)橫向切面請(qǐng)求攔截功能:在請(qǐng)求數(shù)據(jù)到達(dá)業(yè)務(wù)邏輯前完成對(duì)請(qǐng)求數(shù)據(jù)的初步處理,排除非法請(qǐng)求等。 第 24 頁(yè) 共 63 頁(yè) 服務(wù)端監(jiān)聽(tīng)示意圖 圖 主要流程: 當(dāng)服務(wù)端監(jiān)聽(tīng)都客戶(hù)端數(shù)據(jù)請(qǐng)求時(shí)講數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)給橫向切面請(qǐng)求攔截器。然后根據(jù)當(dāng)前系統(tǒng)時(shí)間判斷該 Session 數(shù)據(jù)對(duì)象是否過(guò)期,如果過(guò)期則清空該數(shù)據(jù)對(duì)象。 FastJsonWeb 文件目錄介紹 基本文件包括: 圖 其中 主要處理 Cookie 相關(guān)數(shù)據(jù)數(shù)據(jù)。 在 cookie 作為某個(gè)值的索引 返回值: 若 cookie數(shù)據(jù)對(duì)象中存在 key對(duì) 應(yīng)的值則返回該值,否則返回 undefined () 功能說(shuō)明: 獲取當(dāng)前的 Session 數(shù)據(jù)對(duì)象的 sid 參數(shù)說(shuō)明: 無(wú) 返回值: 若當(dāng)前 cookie 數(shù)據(jù)對(duì)象中存在 sid 則返回該 sid,否則返回 undefined (sid) 功能說(shuō)明: 在 Cookie 數(shù)據(jù)對(duì)象中存儲(chǔ) sid 的值(該方法不建議自己調(diào)用) 參數(shù)說(shuō)明: sid:當(dāng)前 session 對(duì)象的 sid 值 返回值: 無(wú) () 功能說(shuō)明: 將 Cookie 數(shù)據(jù)對(duì)象 寫(xiě)入到 response 返回?cái)?shù)據(jù)中 參數(shù)說(shuō)明: 無(wú) 返回值: 第 35 頁(yè) 共 63 頁(yè) 無(wú) 使用說(shuō)明:在文件頭部通過(guò) var cookie = required(“ ./cookie” )獲取 cookie對(duì)象 object 數(shù)據(jù)對(duì)象。)。), 39。 如: (onRequest).listen(8888)。), }。 所有訪(fǎng)問(wèn) 根目錄下的 pulic 文件夾下的資源 的 url 數(shù)據(jù)請(qǐng)求將已靜態(tài)資源文件形式返回 功能說(shuō)明: 第 36 頁(yè) 共 63 頁(yè) 配置業(yè)務(wù)邏輯處理對(duì)象與 url 地址的映射 舉例: ={ 39。 使用說(shuō)明: 一般不需要自行引用。 主要處理 Session 相關(guān)數(shù)據(jù) 靜態(tài)資源處理類(lèi) FastJsonWeb 的 API 說(shuō)明及使用說(shuō)明 構(gòu)造函數(shù): Cookie(request,response) 參數(shù)說(shuō)明: request: HttpRequest 對(duì)象 response:HttpResponse 對(duì)象 公開(kāi)方 法: (key,value) 功能說(shuō)明: 設(shè)置一個(gè) Cookie 鍵值對(duì)。同過(guò)基礎(chǔ)框架的畫(huà)圖說(shuō)明詳細(xì)介紹了各個(gè)功能實(shí)現(xiàn)細(xì)節(jié),以及數(shù)據(jù)流程。經(jīng)過(guò)一系列攔截器處理后,若數(shù)據(jù)請(qǐng)求流程依然存在,則從請(qǐng)求數(shù)據(jù)數(shù)據(jù)中解析出請(qǐng)求參數(shù)然后合成對(duì)象,傳給路由分發(fā)器。路由分發(fā)器根據(jù)相關(guān)配置判斷請(qǐng)求的屬性是業(yè)務(wù)數(shù)據(jù)請(qǐng)求還是靜態(tài)資源請(qǐng)求,傳遞給相應(yīng)的處理類(lèi)。 ( 3) Seesion 功能。下載安裝包 Windows Intaller(msi)。 打 開(kāi) 官 方 下 載 地 址 ,獲取系統(tǒng)相應(yīng)的安裝包,由于我們使用的是 Ubuntu系統(tǒng)所以選擇 的源代碼進(jìn)行編譯安裝。和 GPL 要求任何使用/修改 /衍生之 GPL 類(lèi)庫(kù)的的軟件必須采用 GPL 協(xié)議不同。 Apache Licence 也是對(duì)商業(yè)應(yīng)用友好的許可。 下面簡(jiǎn)單介紹一下幾種常見(jiàn)的開(kāi)源協(xié)議以及它們適用的范圍。與其他的代碼管理網(wǎng)站如 SourceFe 和 Google Code 提供的服務(wù)不同, GitHub 的獨(dú)特地方在于對(duì)項(xiàng)目進(jìn)行分支管理非常簡(jiǎn)單,具有很高的操作性。屬性繼承的本質(zhì)就是一個(gè)對(duì)象可以訪(fǎng)問(wèn)到它的原型鏈上任何一個(gè)原型對(duì)象的屬性。 JavaScript 中的對(duì)象一般分為三類(lèi),它們分別是構(gòu)造函數(shù)對(duì)象,用戶(hù)創(chuàng)建的對(duì)象和原型對(duì)象。因?yàn)樵诮^大多數(shù)的面向?qū)ο笳Z(yǔ)言中,對(duì)象是基于類(lèi)的(例如 Java 和 C++ ),對(duì)象是類(lèi)實(shí)例化的 結(jié)果。 上下文對(duì)象 在 JavaScript 中, this 關(guān)鍵字代表語(yǔ)境環(huán)境的上下文,即被調(diào)用函數(shù)所處的環(huán)境。] = false JavaScript 提供了構(gòu)造函數(shù) 。 JavaScript 具有函數(shù)式編程的特性, 所以函數(shù)也是一種變量,大多數(shù)時(shí)候不用與一般的數(shù)據(jù)類(lèi)型區(qū)分。 對(duì)象 第 15 頁(yè) 共 63 頁(yè) 提起面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,大多數(shù)人能夠立馬想到的是 C++、 Java 等強(qiáng)類(lèi)型語(yǔ)言, 以及 Python、 Ruby 等腳本語(yǔ)言,它們共有的特點(diǎn)是基于類(lèi)的面向?qū)ο?。在函?shù)中引用一個(gè)變量時(shí), JavaScript 會(huì)先搜索當(dāng)前函數(shù)作用域,或者稱(chēng)為“局部作用域”,如果沒(méi)有找到則搜索其上層作用域,一直到全局作用域。 全局作用域 在 JavaScript 中有一種特殊的對(duì)象稱(chēng)為 全局對(duì)象。正確使用作用域可以使代碼更清晰、易懂。已提交表示該文件已經(jīng)被安全地保存在本 地?cái)?shù)據(jù)庫(kù)中了;已修改表示修改了某個(gè)文件,但還沒(méi)有提交保存;已暫存表示把已修改的文件放在下次提交時(shí)要保存的清單中。版本控制系統(tǒng)可以通過(guò)比較文件細(xì)節(jié)變化找出該文件的最后修改人,同時(shí)還可以通過(guò)對(duì)比找出導(dǎo)致出現(xiàn)怪異問(wèn)題所在或者某個(gè)功能缺陷等等。 優(yōu)點(diǎn)總結(jié) 相對(duì)于傳統(tǒng)的 IDE, VIM 具有安裝包小,啟動(dòng)快,支持純終端編輯等優(yōu)點(diǎn)。 vim 的設(shè)計(jì)理念是命令的組合。工具有 vim 和 git,平臺(tái)主要是
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1