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

正文內(nèi)容

基于nodejs的小型框架設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文-預(yù)覽頁(yè)

 

【正文】 2)具有復(fù)雜邏輯的網(wǎng)站;如一般的MIS系統(tǒng)。 一個(gè)優(yōu)秀的平臺(tái)能夠吸引大量開發(fā)者的關(guān)注。只不過概念比較新潮,它不能完成所有的業(yè)務(wù)邏輯,或者說它不是萬(wàn)能的。例如在給用戶提供界面的時(shí)候后臺(tái)需要進(jìn)行某個(gè)計(jì)算,為了使用戶界面不出現(xiàn)阻塞狀態(tài),不得不開啟多線程或多進(jìn)程。 本身造成的,問題而是出在JavaScript 標(biāo)準(zhǔn)上。這是設(shè)計(jì)的問題,源于當(dāng)時(shí)設(shè)計(jì)者的主觀判斷。UTF16編碼采用定長(zhǎng)的雙字節(jié)編碼處理UCS2 以內(nèi)的字符,對(duì)于以外的部分則使用多字節(jié)的變長(zhǎng)編碼。包括Chrome的V8 引擎在內(nèi)。這個(gè)過程是復(fù)雜的線性的,假如拆分為非線性的邏輯,那么其復(fù)雜程度將提升幾個(gè)數(shù)量級(jí)。對(duì)比而言,如果需要充分利用多核資源則需要使用多進(jìn)程的方法才能達(dá)到%利用CPU核心資源,所有請(qǐng)求須等待當(dāng)前請(qǐng)求處理完畢后才進(jìn)入事件循環(huán)才能響應(yīng)。 開發(fā)框架的原因。對(duì)于開發(fā)效率有著嚴(yán)重的制約。借鑒這些其他平臺(tái)上現(xiàn)有的框架結(jié)構(gòu)和功能,設(shè)計(jì)開發(fā)FastJsonWeb框架。小型的MVC框架意味著該框架應(yīng)具有易用性和高效性,能夠很大程度上滿足大多數(shù)業(yè)務(wù)的邏輯。(1),API不穩(wěn)定,處在不斷更新變化中,如果采用某個(gè)固定版本,則可能存在bug或者無法使用新特性。二是缺乏中文資料。(4)缺乏有效的開發(fā)工具。(7),為了保持框架代碼的可讀性和可維護(hù)性,需要定制某一標(biāo)準(zhǔn),方便今后的維護(hù)。工具有vim和git,平臺(tái)主要是github與Ubuntu。Vim在程序員中被廣泛使用,與Emacs并列成為類Unix系統(tǒng)用戶最受歡迎的編輯器。vim的設(shè)計(jì)理念是命令的組合。寫代碼的時(shí)候手需要時(shí)刻保持在鍵盤上,隨機(jī)定位代碼、隨機(jī)刪除代碼、移動(dòng)代碼、插入代碼的操作大大多于閱讀、翻頁(yè)操作,中間卡頓一下效率就大大降低了。優(yōu)點(diǎn)總結(jié) 相對(duì)于傳統(tǒng)的IDE,VIM具有安裝包小,啟動(dòng)快,支持純終端編輯等優(yōu)點(diǎn)。 git簡(jiǎn)介源代碼版本控制系統(tǒng)介紹源代碼版本控制是用來記錄若干源碼文件內(nèi)容變化,方便以后用來查看修改某特定版本代碼的系統(tǒng)。版本控制系統(tǒng)可以通過比較文件細(xì)節(jié)變化找出該文件的最后修改人,同時(shí)還可以通過對(duì)比找出導(dǎo)致出現(xiàn)怪異問題所在或者某個(gè)功能缺陷等等。它當(dāng)初誕生的原因是為了更好的維護(hù)Linux內(nèi)核源代碼。已提交表示該文件已經(jīng)被安全地保存在本地?cái)?shù)據(jù)庫(kù)中了;已修改表示修改了某個(gè)文件,但還沒有提交保存;已暫存表示把已修改的文件放在下次提交時(shí)要保存的清單中。 git總結(jié)Git的設(shè)計(jì)顛覆了傳統(tǒng)版本控制的設(shè)計(jì)思想,對(duì)于文件控制的每環(huán)節(jié)的實(shí)現(xiàn)方式提供了新的設(shè)計(jì)方案。正確使用作用域可以使代碼更清晰、易懂。例如下面代碼,在大多數(shù)類 C 的語(yǔ)言中會(huì)出現(xiàn)變量未定義的錯(cuò)誤,而在 JavaScript 中卻完全合法:if (true) {var somevar = 39。 全局作用域在 JavaScript 中有一種特殊的對(duì)象稱為 全局對(duì)象。滿足以下條件的變量屬于全局作用域:在最外層定義的變量;全局對(duì)象的屬性;任何地方隱式定義的變量(未定義直接賦值的變量)。在函數(shù)中引用一個(gè)變量時(shí),JavaScript 會(huì)先搜索當(dāng)前函數(shù)作用域,或者稱為“局部作用域”,如果沒有找到則搜索其上層作用域,一直到全局作用域。閉包閉包(closure)是函數(shù)式編程中的概念,出現(xiàn)于 20 世紀(jì) 60 年代,最早實(shí)現(xiàn)閉包的語(yǔ)言是 Scheme,它是 LISP 的一種方言。對(duì)象提起面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,大多數(shù)人能夠立馬想到的是 C++、Java 等強(qiáng)類型語(yǔ)言,以及 Python、Ruby 等腳本語(yǔ)言,它們共有的特點(diǎn)是基于類的面向?qū)ο?。因?yàn)榻^大多數(shù)面向?qū)ο笳Z(yǔ)言中的對(duì)象都是基于類的,所以容易混淆類的實(shí)例與對(duì)象的概念。 JavaScript 具有函數(shù)式編程的特性,所以函數(shù)也是一種變量,大多數(shù)時(shí)候不用與一般的數(shù)據(jù)類型區(qū)分。 = 39。] = falseJavaScript 提供了構(gòu)造函數(shù)。}}以上是一個(gè)簡(jiǎn)單的構(gòu)造函數(shù),接下來用 new 語(yǔ)句來創(chuàng)建對(duì)象:var xiaomin = new User(39。上下文對(duì)象在 JavaScript 中,this 關(guān)鍵字代表語(yǔ)境環(huán)境的上下文,即被調(diào)用函數(shù)所處的環(huán)境。在 JavaScript 中,call 和 apply 和 apply 的功能是以不同的對(duì)象作為上下文來調(diào)用某個(gè)函數(shù)。因?yàn)樵诮^大多數(shù)的面向?qū)ο笳Z(yǔ)言中,對(duì)象是基于類的(例如 Java 和 C++ ),對(duì)象是類實(shí)例化的結(jié)果。,因?yàn)闃?gòu)造函數(shù)內(nèi)的局部變量對(duì)其中定義的函數(shù)來說也是可見的。JavaScript 中的對(duì)象一般分為三類,它們分別是構(gòu)造函數(shù)對(duì)象,用戶創(chuàng)建的對(duì)象和原型對(duì)象。這三類對(duì)象中每一類都有一個(gè) __proto__ 屬性,它指向該對(duì)象的原型,從任何對(duì)象沿著它開始遍歷都可以追溯到 。屬性繼承的本質(zhì)就是一個(gè)對(duì)象可以訪問到它的原型鏈上任何一個(gè)原型對(duì)象的屬性。據(jù)Git用戶調(diào)查,GitHub是最流行的Git存取站點(diǎn)。與其他的代碼管理網(wǎng)站如SourceForge和Google Code提供的服務(wù)不同,GitHub的獨(dú)特地方在于對(duì)項(xiàng)目進(jìn)行分支管理非常簡(jiǎn)單,具有很高的操作性。由于開源軟件越來越受歡迎,跟隨著開源協(xié)議也越來越多。下面簡(jiǎn)單介紹一下幾種常見的開源協(xié)議以及它們適用的范圍。BSD是對(duì)商業(yè)應(yīng)用非常友好的開源協(xié)議。Apache Licence也是對(duì)商業(yè)應(yīng)用友好的許可。 GPL協(xié)議的主要內(nèi)容是只要在一個(gè)軟件中使用了具有GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開源和免費(fèi)。和GPL要求任何使用/修改/衍生之GPL類庫(kù)的的軟件必須采用GPL協(xié)議不同。因此商業(yè)軟件還是可以引用這些具有LGPL協(xié)議的代碼庫(kù)。獲取系統(tǒng)相應(yīng)的安裝包。如下圖所示:安裝完成后可以運(yùn)行命令node v ,然后運(yùn)行node進(jìn)入到即時(shí)運(yùn)行狀態(tài)(“Hello world”)。下載安裝包Windows Intaller(msi)。第三章 框架的設(shè)計(jì)與實(shí)現(xiàn)FastJsonWeb作為以一個(gè)小型MVC框架,用來實(shí)現(xiàn)一般的小型高并發(fā)系統(tǒng),從實(shí)際需求角度出發(fā)應(yīng)該具備以下功能:(1)路由映射功能。(3)Seesion功能。(5)橫向切面請(qǐng)求攔截功能:在請(qǐng)求數(shù)據(jù)到達(dá)業(yè)務(wù)邏輯前完成對(duì)請(qǐng)求數(shù)據(jù)的初步處理,排除非法請(qǐng)求等。路由分發(fā)器根據(jù)相關(guān)配置判斷請(qǐng)求的屬性是業(yè)務(wù)數(shù)據(jù)請(qǐng)求還是靜態(tài)資源請(qǐng)求,傳遞給相應(yīng)的處理類。 服務(wù)端監(jiān)聽示意圖主要流程:當(dāng)服務(wù)端監(jiān)聽都客戶端數(shù)據(jù)請(qǐng)求時(shí)講數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)給橫向切面請(qǐng)求攔截器。經(jīng)過一系列攔截器處理后,若數(shù)據(jù)請(qǐng)求流程依然存在,則從請(qǐng)求數(shù)據(jù)數(shù)據(jù)中解析出請(qǐng)求參數(shù)然后合成對(duì)象,傳給路由分發(fā)器。然后根據(jù)當(dāng)前系統(tǒng)時(shí)間判斷該Session數(shù)據(jù)對(duì)象是否過期,如果過期則清空該數(shù)據(jù)對(duì)象。同過基礎(chǔ)框架的畫圖說明詳細(xì)介紹了各個(gè)功能實(shí)現(xiàn)細(xì)節(jié),以及數(shù)據(jù)流程。 FastJsonWeb文件目錄介紹基本文件包括:其中。 主要處理Session相關(guān)數(shù)據(jù) FastJsonWeb的API說明及使用說明 構(gòu)造函數(shù): Cookie(request,response) 參數(shù)說明: request:HttpRequest對(duì)象 response:HttpResponse對(duì)象 公開方法:(key,value) 功能說明: 設(shè)置一個(gè)Cookie鍵值對(duì)。 在cookie作為某個(gè)值的索引返回值: 若cookie數(shù)據(jù)對(duì)象中存在key對(duì)應(yīng)的值則返回該值,否則返回undefined() 功能說明:獲取當(dāng)前的Session數(shù)據(jù)對(duì)象的sid參數(shù)說明: 無返回值: 若當(dāng)前cookie數(shù)據(jù)對(duì)象中存在sid則返回該sid,否則返回undefined(sid) 功能說明: 在Cookie數(shù)據(jù)對(duì)象中存儲(chǔ)sid的值(該方法不建議自己調(diào)用)參數(shù)說明: sid:當(dāng)前session對(duì)象的sid值返回值: 無()功能說明:將Cookie數(shù)據(jù)對(duì)象寫入到response返回?cái)?shù)據(jù)中參數(shù)說明: 無返回值: 無使用說明:在文件頭部通過 var cookie = required(“./cookie”)獲取cookie對(duì)象 object數(shù)據(jù)對(duì)象。 使用說明: 一般不需要自行引用。)。所有訪問 根目錄下的pulic文件夾下的資源 的url數(shù)據(jù)請(qǐng)求將已靜態(tài)資源文件形式返回 功能說明: 配置業(yè)務(wù)邏輯處理對(duì)象與url地址的映射舉例: ={ 39。), 39。),}。如:(onRequest).listen(8888)。 需要存儲(chǔ)在Session中的值 返回值: 無getValue(key)功能說明: 獲取某個(gè)索引的Session值參數(shù)說明: key: 數(shù)據(jù)類型String。下面將介紹具體的格式。 ();結(jié)束。 。 }。 ()。 請(qǐng)求橫向切面攔截器請(qǐng)求橫向切面攔截器由于需要將請(qǐng)求鏈?zhǔn)降膫鬟f給已配置的攔截器。處理函數(shù)編寫完成后。比如開發(fā)用戶功能模塊時(shí),可能涉及到用戶的注冊(cè)、用戶的登陸,用戶信息修改等邏輯處理,從面對(duì)對(duì)象的角度來考慮 這些邏輯都應(yīng)該是同一個(gè)對(duì)象所擁有的,如果每個(gè)邏輯都對(duì)應(yīng)的寫一個(gè)邏輯處理對(duì)象,那么代碼就顯得非常的冗余。動(dòng)態(tài)方法調(diào)用主要對(duì)代碼編寫有兩個(gè)要求。通過函數(shù)名的差異進(jìn)行邏輯選擇。通過封裝底層API 實(shí)現(xiàn)的屬性注入功能 可以通過this關(guān)鍵是隨時(shí)使用用戶提交的參數(shù)。例如:://localhost:xxxx/User!add?=“huyinghuan”amp。第五章 實(shí)例介紹本章將簡(jiǎn)單的介紹如何使用該框架完成一個(gè)簡(jiǎn)單的用戶登錄功能。 獲取框架打開網(wǎng)址 下載框架核心文件包括 下載完這些文件后。此處我們?cè)O(shè)置為8888。:,錯(cuò)誤信息是 不能找到./action/nopath 模型, 啟動(dòng)失敗。然后配置了靜態(tài)資源文件夾并且配置了一個(gè)Hello的業(yè)務(wù)邏輯映射。:現(xiàn)在重新運(yùn)行控制臺(tái)命令 node 。在這個(gè)表單里設(shè)計(jì)到了屬性注入和動(dòng)態(tài)方法調(diào)用兩個(gè)功能。做完這些之后不能忘記在映射配置處理里面添加這個(gè)業(yè)務(wù)邏輯的映射關(guān)系。因此接下來修改用ajax效果來修改這個(gè)功能。完成業(yè)務(wù)功能的時(shí)候分別從兩種不同的方式實(shí)現(xiàn)。為保證論文的簡(jiǎn)潔性,在此不再贅述。 框架的不足 獲取方式困難 使用該框架需要從github上下載該框架的所有文件。 代碼效率低 由開發(fā)時(shí)間短。文檔結(jié)構(gòu)復(fù)雜 由于開框架還處理開發(fā)階段沒有封裝成npm包,導(dǎo)致一些實(shí)現(xiàn)核心功能的文件暴露在外面。這樣可能導(dǎo)致在訪問頻繁時(shí)可能出現(xiàn)崩潰的情況。日志功能缺少 。目前該功能是尚未擁有的。因此對(duì)于習(xí)慣使用模板開發(fā)的開發(fā)者來說是非常不方便的??蚣芪臋n和API說明缺乏沒有使用統(tǒng)一的格式或文件進(jìn)行該框架的結(jié)構(gòu)說明和介紹,也沒有系統(tǒng)詳細(xì)介紹該框架的API文檔。 框架的發(fā)展發(fā)布成npm包針對(duì)框架獲取方式繁瑣和文檔結(jié)構(gòu)不清晰問題,重新組織文件結(jié)構(gòu)將該框架打成npm包發(fā)布到npm官網(wǎng)。集成模板引擎集成多款模板引擎并配置成文件提供不同喜好的用戶選擇。重要的是有人愿意使用。該框架源代碼托管于github平臺(tái)上,便于隨時(shí)完善和修改,使得該框架更加簡(jiǎn)潔和高效。并且說明了開發(fā)這個(gè)框架的最終所希望的結(jié)果。[4] 《Git權(quán)威指南》 蔣鑫 著,機(jī)械工業(yè)出版社出版。xx老師以嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度精神深深影響了我,給我今后的工作和學(xué)習(xí)提供了強(qiáng)大的助力,在此,我要向他表示衷心的感謝與敬意。 最后,要向我的父母親致
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1