版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要如今社會(huì)高速發(fā)展,隨著科技水平的提高,網(wǎng)絡(luò)越來越發(fā)達(dá),隨之出現(xiàn)了越來越多的網(wǎng)絡(luò)社交平臺(tái)網(wǎng)站。而社交網(wǎng)站眾多的情況下,用戶們更傾向于方便快捷的社交網(wǎng)站。作為其代表的微博客充分滿足了現(xiàn)代快節(jié)奏高壓力社會(huì)下人們急劇上升的個(gè)人表達(dá)與傾訴溝通的需求,并因其擁有良好的界面交互,所以微博客系統(tǒng)更受現(xiàn)代網(wǎng)民的喜愛和青睞,我由此而開發(fā)出本系統(tǒng)給廣大用戶使用。本系統(tǒng)采用SpringBoot和MyBatis作為系統(tǒng)基礎(chǔ)架構(gòu),同時(shí)采用使用MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的存儲(chǔ),在前端的html頁面上使用了大量的JavaScript插件和JQuery框架等讓系統(tǒng)界面更加美觀友好,并是由Thymeleaf模板引擎進(jìn)行頁面的數(shù)據(jù)渲染,讓頁面與用戶的交互性更強(qiáng),同時(shí)也讓用戶擁有更好的使用體驗(yàn)。在系統(tǒng)通知功能中引入WebSocket協(xié)議,讓用戶之間的通信更加順暢便捷,保證了信息的準(zhǔn)確傳輸。而引入Redis數(shù)據(jù)庫,利用其數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),能夠很好地將數(shù)據(jù)保存在Redis數(shù)據(jù)中并實(shí)行自動(dòng)排序,能過很容易實(shí)現(xiàn)類似排行榜這樣的功能。在最為關(guān)心的系統(tǒng)安全方面,使用Shiro安全框架,將大大增加系統(tǒng)的安全性、健壯性??偟膩碚f,本微博客系統(tǒng)基本實(shí)現(xiàn)了博客系統(tǒng)的功能,系統(tǒng)安全性和界面美觀性也同時(shí)具備,相信用戶在使用到本博客系統(tǒng)時(shí),會(huì)感受到一個(gè)功能豐富,界面友好的系統(tǒng)。關(guān)鍵詞:社交平臺(tái)微博客系統(tǒng)SpringbootMyBatisMySQLWebSocket
AbstractNowadays,withtherapiddevelopmentofsociety,withtheimprovementoftechnologylevel,thenetworkismoreandmoredeveloped,andmoreandmorenetworksocialplatformwebsitesappear.Inthecaseofalargenumberofsocialnetworkingsites,userstendtobemoreconvenientandefficientsocialnetworkingsites.Asarepresentativeofthemicroblog,itfullymeetstheneedsoftherapidriseofpersonalexpressionandcommunicationunderthemodernfast-pacedandhighpressuresociety,andbecauseofitsgoodinterfaceinteraction,themicroblogsystemismorepopularandfavoredbymodernInternetusers,soIdevelopedthissystemforthemajorityofusers.ThesystemusesSpringBootandMyBatisasthesysteminfrastructure,usesMySQLdatabasefordatastorage,usesalargenumberofJavaScriptplug-insandjQueryonthefront-endHTMLpagetomakethesysteminterfacemorebeautifulandfriendly,andusestheThymeleaftemplateenginetorenderthepagedata,makingthepagemoreinteractivewiththeuser,andatthesametime,makingtheuserhavebetteruser'sexperience.WebSocketprotocolisintroducedintothesystemnotificationfunction,whichmakesthecommunicationbetweenusersmoresmoothandconvenient,andensurestheaccuratetransmissionofinformation.TheintroductionofRedisdatabase,usingthecharacteristicsofitsdatastructure,canwellsavethedatainRedisdataandimplementautomaticsorting,andcaneasilyachievesuchfunctionsasleaderboards.Inthemostconcernedsystemsecurity,usingShirosecurityframeworkwillgreatlyincreasethesecurityandrobustnessofthesystem.Ingeneral,thismicroblogsystembasicallyrealizesthefunctionsoftheblogsystem,andthesystemsecurityandinterfaceaestheticsarealsoavailable.Ibelievethatwhenusersusethisblogsystem,theywillfeelasystemwithrichfunctionsandfriendlyinterface.Keywords:socialplatformMicroblogsystemSpringBootMyBatisMySQLWebSocket目錄第一章緒論 [5]。4.1.2MyBatis持久層框架Mybatis是一款優(yōu)秀好用的持久層框架,非常適合與Springboot或Spring框架結(jié)合在一起使用,Mybatis支持定制化SQL和高級(jí)映射等特性,Mybatis與Springboot結(jié)合使用時(shí),只需要在Springboot配置文件上寫好相關(guān)的配置項(xiàng)即可完成環(huán)境搭建,能夠極其方便地操作數(shù)據(jù)庫數(shù)據(jù),并且框架比較簡(jiǎn)單,容易入門和便于上手使用。4.1.3MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫由于其免費(fèi),并且性能是非常高的,使用MySQL作為本系統(tǒng)的數(shù)據(jù)庫是極其合適的。并且MySQL數(shù)據(jù)庫的操作和安裝簡(jiǎn)單方便,便于系統(tǒng)的開發(fā)。4.1.4Redis存儲(chǔ)由于Redis數(shù)據(jù)庫擁有其獨(dú)特的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所以使用Redis的Zset結(jié)構(gòu)來存儲(chǔ)熱點(diǎn)微博是最合適不過了,也正是因?yàn)镽edis支持排行榜功能,所以選擇了Redis數(shù)據(jù)庫作為排行榜功能的開發(fā)工具。4.1.5WebSocket協(xié)議WebSocket是HTML5開始提供的一種在瀏覽器和服務(wù)器間進(jìn)行全雙工通信的協(xié)議。目前很多沒有使用WebSocket進(jìn)行客戶端服務(wù)端實(shí)時(shí)通信的web應(yīng)用,大多使用設(shè)置規(guī)則時(shí)間的輪詢,或者使用長(zhǎng)輪詢較多來處理消息的實(shí)時(shí)推送。這樣勢(shì)必會(huì)較大程度浪費(fèi)服務(wù)器和帶寬資源,而WebSocket正是來解決該問題而出現(xiàn),使得B/S架構(gòu)的應(yīng)用擁有C/S架構(gòu)一樣的實(shí)時(shí)通信能力[15]。WebSocket正是由于其對(duì)系統(tǒng)負(fù)擔(dān)較小,所以選用它,但由于其技術(shù)難度還是有點(diǎn)高,所以在使用方面并沒有涉及得很全面,而且需要花費(fèi)大量時(shí)間去研究和測(cè)試改正。4.2功能實(shí)現(xiàn)4.2.1“登錄注冊(cè)”功能的實(shí)現(xiàn)注冊(cè)流程圖,如圖4-2.1所示,用戶輸入賬號(hào)、密碼時(shí),前端會(huì)進(jìn)行JavaScript校驗(yàn),如果輸入不符合規(guī)則,則不能點(diǎn)擊注冊(cè)按鈕并出現(xiàn)提示信息。如果輸入格式正確時(shí),會(huì)把數(shù)據(jù)提交到后臺(tái)檢查此用戶名是否已被別人使用,如果此用戶名不可用則返回提示信息給前端,可用的話就會(huì)注冊(cè)成功,并且密碼以MD5并加鹽方式加密,以密文形式保存到數(shù)據(jù)庫,最后注冊(cè)成功會(huì)跳轉(zhuǎn)到登錄頁面。圖4-2.1注冊(cè)流程圖而前端的表單校驗(yàn),最為關(guān)鍵是表單的onsubmit事件,只有觸發(fā)這個(gè)事件,才會(huì)判斷是否會(huì)把表單提交到后臺(tái)。如果function的結(jié)果為false,則不能提交表單,同時(shí)出現(xiàn)提示信息;結(jié)果為true時(shí)才能提交表單。提交到后臺(tái)時(shí)會(huì)校驗(yàn)用戶名是否存在,如果存在則返回提示信息,用戶名不存在時(shí)則注冊(cè)成功,并把密碼加密。校驗(yàn)核心代碼如下圖4-2.1.2所示:圖4-2.1.2前端校驗(yàn)代碼其中登錄流程如圖4-2.1.3所示。其中登錄時(shí)在后臺(tái)的數(shù)據(jù)檢驗(yàn)交給了shiro安全框架來執(zhí)行,shiro框架會(huì)對(duì)登錄的密碼進(jìn)行加密,然后與數(shù)據(jù)庫中加密的密碼進(jìn)行比對(duì),如果匹配成功,那么就能直接跳轉(zhuǎn)到主頁。匹配失敗則會(huì)拋出異常返回給前端頁面。圖4-2.1.3登錄流程圖
登錄時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用shiro框架的校驗(yàn)方法login(),將用戶名密碼(token)傳給shiro框架。而shiro框架在調(diào)用login()方法時(shí),會(huì)調(diào)用shiro內(nèi)部的認(rèn)證方法來進(jìn)行身份認(rèn)證,我們只需自己寫一些業(yè)務(wù)代碼來把token拿來和數(shù)據(jù)庫查出的密碼進(jìn)行對(duì)比就行了,對(duì)比成功則能登錄成功,對(duì)比失敗就會(huì)拋出異常信息傳給前端,前端以信息提示的方式來提醒用戶。Shiro核心代碼如圖4-2.1.4至4-2.1.5所示:圖4-2.1.4登錄部分核心代碼當(dāng)調(diào)用Shiro的login()方法后,shiro將會(huì)調(diào)用它內(nèi)部的認(rèn)證方法doGetAuthenticationInfo來對(duì)傳進(jìn)來的token進(jìn)行驗(yàn)證,當(dāng)驗(yàn)證失敗是會(huì)立即拋出異常并攔截回登錄頁面,而驗(yàn)證成功則會(huì)放行。圖4-2.1.5shiro核心代碼4.2.2“微博客”功能的實(shí)現(xiàn)發(fā)送博客步驟為:用戶在輸入框中輸入發(fā)布的博客內(nèi)容,點(diǎn)擊輸入框右下角的發(fā)布按鈕,將輸入的內(nèi)容發(fā)送出去,然后就能在頁面上看到自己發(fā)送的博客了。其中此功能的實(shí)現(xiàn)過程中,在前端使用了大量的JavaScript插件使頁面更加美觀,交互性更好。而博客的發(fā)布,一定要在輸入框輸入文字才能夠發(fā)布博客,否則發(fā)布按鈕將不可選用。而發(fā)布成功后,頁面會(huì)重新加載并能顯示出自己發(fā)送的博客與其他用戶發(fā)送的博客,而博客則會(huì)以最新時(shí)間的順序進(jìn)行排序顯示出來。部分前端JavaScript插件代碼如下圖4-2.2.1所示,其中js文件、css文件的引入以及他們之間的加載順序可能會(huì)影響他們的正常顯示,所以為了能讓各個(gè)插件間能夠互相協(xié)調(diào)共處,需要花費(fèi)較多時(shí)間去對(duì)js、css文件的加載進(jìn)行合理排序。圖4-2.2.1前端JavaScript插件代碼發(fā)送微博客功能主要把著重點(diǎn)放在前端頁面上,主要是為了讓用戶有個(gè)良好的使用體驗(yàn),所以在前端使用了許多JQuery函數(shù)、JavaScript插件等讓頁面的元素隨著用戶的操作而發(fā)生相應(yīng)的變化。另外前端發(fā)送數(shù)據(jù)給后臺(tái)服務(wù)器時(shí),是通過Ajax方式發(fā)送,使用Ajax異步請(qǐng)求來發(fā)送數(shù)據(jù)給服務(wù)器,能夠?qū)崿F(xiàn)頁面的異步更新,這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,可以對(duì)網(wǎng)頁的某部分進(jìn)行更新,不再因等待服務(wù)器的響應(yīng)而進(jìn)入等待狀態(tài)。而后端在接收到前端傳過來的文字、文件、圖片等內(nèi)容后,會(huì)將其匯總在一起保存在一個(gè)微博對(duì)象中并將此對(duì)象存入數(shù)據(jù)庫對(duì)應(yīng)的表中進(jìn)行數(shù)據(jù)的持久化,這樣就能方便系統(tǒng)在顯示博客時(shí)能從數(shù)據(jù)庫中再次拿取數(shù)據(jù)出來了。后臺(tái)部分代碼如下圖4-2.2.2所示:圖4-2.2.2發(fā)送博客的代碼微博操作模塊實(shí)現(xiàn):微博操作模塊包括點(diǎn)贊、評(píng)論、回復(fù)評(píng)論、轉(zhuǎn)發(fā)、收藏等操作。(1)點(diǎn)贊:點(diǎn)贊的時(shí)候,點(diǎn)擊點(diǎn)贊按鈕,前端頁面會(huì)進(jìn)行樣式改變使其按鈕變?yōu)橐腰c(diǎn)贊,同時(shí)將一些數(shù)據(jù)傳入到后臺(tái),將這個(gè)用戶對(duì)這條微博點(diǎn)贊這個(gè)行為記錄到數(shù)據(jù)庫中,并且會(huì)記錄這個(gè)微博被點(diǎn)贊的次數(shù),每點(diǎn)擊一次會(huì)自動(dòng)+1,取消點(diǎn)贊就-1。當(dāng)用戶下一次登錄時(shí),會(huì)查出對(duì)這條微博是否點(diǎn)過贊,從而在點(diǎn)贊按鈕的樣式也會(huì)相應(yīng)改變?yōu)辄c(diǎn)贊/已點(diǎn)贊,同時(shí)也會(huì)查詢出對(duì)這條微博的點(diǎn)贊次數(shù)。部分核心代碼如圖4-2.2.3和4-2.2.4所示:圖4-2.2.3部分點(diǎn)贊代碼在顯示博客時(shí),會(huì)檢驗(yàn)當(dāng)前登錄用戶是否對(duì)顯示的博客進(jìn)行過點(diǎn)贊,如果點(diǎn)過贊,那么這條博客的點(diǎn)贊按鈕會(huì)顯示為已點(diǎn)贊,而以下代碼就是判斷用戶是否已點(diǎn)贊這條博客。圖4-2.2.4判斷是否點(diǎn)贊代碼(2)評(píng)論:對(duì)某條微博進(jìn)行評(píng)論,評(píng)論完時(shí)前端的JavaScript評(píng)論插件會(huì)立刻生成一個(gè)評(píng)論模塊在微博下方,同時(shí)把這條評(píng)論數(shù)據(jù)存進(jìn)數(shù)據(jù)庫使其持久化,在往后再次登錄時(shí),仍然能查看到評(píng)論。評(píng)論功能的關(guān)鍵點(diǎn)是要把評(píng)論關(guān)聯(lián)好哪一條微博,這樣在查詢微博的時(shí)候,只需查出和這條微博關(guān)聯(lián)的所有評(píng)論即可。微博和評(píng)論是一對(duì)多的關(guān)系,一條微博帶著多條評(píng)論。部分核心代碼如圖4-2.2.5所示:圖4-2.2.5部分評(píng)論代碼(3)回復(fù)評(píng)論:在評(píng)論時(shí),我們也可以對(duì)別人的評(píng)論進(jìn)行回復(fù),設(shè)計(jì)思路和評(píng)論功能相同,一條評(píng)論帶著多條回復(fù),當(dāng)點(diǎn)擊回復(fù)時(shí),前端會(huì)立即創(chuàng)建回復(fù)內(nèi)容模塊,同時(shí)我們將回復(fù)內(nèi)容的數(shù)據(jù)保存到數(shù)據(jù)庫中進(jìn)行持久化,下次登錄時(shí)還能查看到回復(fù)。其中在查詢時(shí),微博只需關(guān)注要查出他帶有的評(píng)論就行了,而評(píng)論也只需查出他自己帶有的回復(fù),就是查詢只需查出與他直接關(guān)聯(lián)的下一層,對(duì)于下層則不用關(guān)心。這樣查詢的話就能避免進(jìn)行多表聯(lián)查,使數(shù)據(jù)庫的查詢性能降低,使查詢速度大大提高。核心邏輯代碼如下圖4-2.2.6所示:圖4-2.2.6核心邏輯代碼(4)轉(zhuǎn)發(fā):轉(zhuǎn)發(fā)的本質(zhì)其實(shí)也就是發(fā)送一條博客,只是我們的博客內(nèi)容是另外一條博客,所以我們?cè)谵D(zhuǎn)發(fā)后,只需在一條微博里面再嵌套一條博客就可以。核心代碼如圖4-2.2.8所示,這里通過在博客實(shí)體類里面設(shè)置轉(zhuǎn)發(fā)的那條博客id,而在顯示博客的時(shí)候,服務(wù)器會(huì)專門查看這個(gè)轉(zhuǎn)發(fā)的博客id屬性是否為空,如果不為空的話則表示這條博客是屬于轉(zhuǎn)發(fā)博客,是一條轉(zhuǎn)發(fā)別人博客的博客,那么在頁面顯示時(shí)就會(huì)以一條博客里面再嵌套一條博客的形式來顯示。圖4-2.2.8核心代碼(5)收藏:收藏功能時(shí)為了讓用戶能夠?qū)ψ约合矚g的博客進(jìn)行收藏,方便下次查看。點(diǎn)擊收藏后,前端按鈕樣式會(huì)改變?yōu)橄鄳?yīng)的樣式,同時(shí)會(huì)將數(shù)據(jù)保存到收藏表中,下次登錄時(shí)會(huì)查看是否對(duì)這條微博進(jìn)行收藏,從而使前端頁面顯示出對(duì)應(yīng)的按鈕樣式,而取消收藏后,會(huì)將這條收藏記錄刪除。同時(shí)收藏后可以在自己的個(gè)人主頁中查看收藏的微博記錄。核心代碼如圖4-2.2.9所示:圖4-2.2.9收藏核心代碼4.2.3“消息通知”和“用戶私信”的功能實(shí)現(xiàn)生成消息通知的步驟及消息通知的實(shí)現(xiàn)消息通知產(chǎn)生的步驟過程為用戶對(duì)某條博客進(jìn)行了點(diǎn)贊、評(píng)論或轉(zhuǎn)發(fā)等操作時(shí),以及用戶發(fā)送私信給其他用戶時(shí),都會(huì)產(chǎn)生消息通知并發(fā)送給對(duì)方,對(duì)方如果此時(shí)在線的話,會(huì)立即受到消息提醒并可以查看消息通知的內(nèi)容;而如果對(duì)方此時(shí)不在線,那么他就不能夠立刻受到消息通知,只有當(dāng)他再次上線時(shí)才能收到消息提醒。消息通知模塊實(shí)現(xiàn)思路:通過在網(wǎng)上查詢消息通知模塊的資料,發(fā)現(xiàn)實(shí)現(xiàn)的方案主要有兩種:1.通過ajax長(zhǎng)輪詢,通過在ajax一直往后臺(tái)發(fā)送請(qǐng)求查看是否有關(guān)于“我”的消息通知。2.通過websocket的方式實(shí)現(xiàn)消息的在線發(fā)送。我之所以選擇websocket這種方式,是因?yàn)橥ㄟ^ajax長(zhǎng)輪詢這種方式會(huì)大大增加系統(tǒng)內(nèi)存資源的消耗,這不利于以后系統(tǒng)的擴(kuò)展以及優(yōu)化,而webSocket是html5一種新的協(xié)議,實(shí)現(xiàn)了瀏覽器與服務(wù)器之間的全雙工通信,能很好的節(jié)省服務(wù)器資源與帶寬,并在服務(wù)器端與瀏覽器端實(shí)現(xiàn)實(shí)時(shí)通行,他建立在TCP之上,同http一樣,通過tcp來傳輸數(shù)據(jù)。并且它有以下特點(diǎn):(1)只需要一次HTTP握手,所以說整個(gè)通訊過程是建立在一次連接/狀態(tài)中,服務(wù)器端會(huì)知道連接的信息,知道客戶端關(guān)閉請(qǐng)求,同時(shí)由服務(wù)器主動(dòng)推送,當(dāng)有信息需要發(fā)送時(shí),直接發(fā)送。(2)客戶端的連接通過session對(duì)象存儲(chǔ),能夠?qū)崿F(xiàn)實(shí)時(shí)推送,與Ajax淪陷和longpoll相比有明顯的優(yōu)勢(shì)。但是使用websocket來實(shí)現(xiàn)消息通知卻有一個(gè)缺點(diǎn):當(dāng)目標(biāo)用戶不在線時(shí),會(huì)發(fā)送消息失敗,造成用戶上線后收不到消息通知。所以我在websocket的基礎(chǔ)上進(jìn)行了改進(jìn),在通過websocket發(fā)送消息的同時(shí),將這條通知數(shù)據(jù)保存到數(shù)據(jù)庫,當(dāng)用戶上線加入websocket后,會(huì)立即將數(shù)據(jù)庫的消息查詢出來然后加入到websocket的onOpen()方法中,這樣的話當(dāng)成功加入websocket后會(huì)自動(dòng)調(diào)用到onOpen()方法將消息通過websocket發(fā)送給用戶,這樣一來用戶在一上線時(shí)就能收到消息通知了,產(chǎn)生消息的代碼如下圖4-2.3.2所示:圖4-2.3.2消息通知部分代碼當(dāng)用戶登錄成功后,或者說連接上服務(wù)器后,用戶會(huì)馬上進(jìn)行websocket的連接。而通過在websocket連接成功后會(huì)執(zhí)行的onOpen()方法里加入查詢數(shù)據(jù)庫的代碼,這樣就能保證用戶一旦登錄系統(tǒng),服務(wù)器就會(huì)先去數(shù)據(jù)庫中查詢關(guān)于這個(gè)用戶用戶的消息通知,并通過websocket發(fā)送給用戶。而由于websocket一次只能發(fā)送一條消息,但是本系統(tǒng)的消息通知有4種,那么可以直接將這四種信息以字符串的形式拼接起來,同時(shí)每種消息之間以一個(gè)特殊符號(hào)間隔開,這樣直接拼接成一個(gè)字符串傳給前端,由前端頁面對(duì)這個(gè)字符串按照特殊符號(hào)進(jìn)行分解解析,這樣就能將這個(gè)字符串分解成4種不同的信息了,就能夠把這四種不同的消息通知放在相對(duì)應(yīng)的頁面區(qū)域進(jìn)行顯示了。連接websocket成功后會(huì)執(zhí)行的代碼如下圖4-2.3.3所示:圖4-2.3.3連接成功時(shí)執(zhí)行的代碼用戶之間私信流程及其實(shí)現(xiàn):用戶之間的進(jìn)行私信時(shí)所執(zhí)行的流程為:用戶通過點(diǎn)擊其他用戶的頭像進(jìn)入到他人的個(gè)人首頁,通過點(diǎn)擊私聊按鈕建立起會(huì)話連接,一旦建立起會(huì)話連接,那么雙方就會(huì)強(qiáng)行關(guān)聯(lián)起來,雙方都把對(duì)方加入到自己的聊天對(duì)象列表中。其中一方發(fā)送消息時(shí),如果對(duì)方在線,那么websocket能直接發(fā)送聊天消息和通知消息給對(duì)方,同時(shí)將消息記錄保持到數(shù)據(jù)庫中。而如果對(duì)方不在線,那么websocket發(fā)送聊天消息和通知消息失敗,但是會(huì)把數(shù)據(jù)存到數(shù)據(jù)庫中。對(duì)方上線后會(huì)立即加入到websocket中,那么websocket連接成功時(shí)會(huì)發(fā)送一條消息給用戶,那么此時(shí)可以將保存到數(shù)據(jù)庫中的消息發(fā)送給用戶,使用戶能夠一上線就能收到私信消息提醒,同時(shí)如果用戶點(diǎn)擊消息提示,能夠直接進(jìn)入聊天頁面,并查詢數(shù)據(jù)庫獲得之前別人給我發(fā)送的消息內(nèi)容。通過將消息保存到數(shù)據(jù)庫,能使websocket發(fā)送失敗的消息保存起來,避免消息丟失,這樣就能解決對(duì)方不在線的情況下,消息發(fā)送出去而對(duì)方接收失敗的問題。如果不將消息存儲(chǔ)到數(shù)據(jù)庫的話,一旦用戶不在線,消息會(huì)發(fā)送失敗,這樣就非常影響用戶的使用體驗(yàn)。用戶只想發(fā)送一次消息,對(duì)方就一定能夠收到,不必要等到對(duì)方在線后才能發(fā)送信息。這樣的話,對(duì)于線上、線下都能夠保證消息的完整性了,不用再擔(dān)心因?yàn)椴辉诰€而造成發(fā)送不了消息或發(fā)送的消息丟失的問題。而正是因?yàn)閣ebsocket能夠在線發(fā)送信息,所以很多在線聊天網(wǎng)頁都會(huì)使用此技術(shù)來實(shí)現(xiàn)在線聊天。在本系統(tǒng)中也正是因?yàn)槿绱硕肓诉@種優(yōu)秀的技術(shù)來實(shí)現(xiàn)私聊功能。另外用戶與用戶一旦建立起會(huì)話連接,那么雙方之間的所有聊天內(nèi)容都會(huì)在這個(gè)會(huì)話中進(jìn)行記錄。而聊天對(duì)象之間之所以為強(qiáng)關(guān)聯(lián)是因?yàn)椋耗闩c對(duì)方建立起連接時(shí),對(duì)方也已和你建立起連接,所以一旦建立起會(huì)話連接,數(shù)據(jù)庫中就會(huì)保存兩條聊天對(duì)象記錄。建立會(huì)話連接的核心代碼如圖4-2.3.5所示:圖4-2.3.5建立會(huì)話連接的核心代碼當(dāng)用戶點(diǎn)擊發(fā)送按鈕發(fā)送消息時(shí),數(shù)據(jù)會(huì)傳到后臺(tái),后臺(tái)的處理邏輯為:將這條消息保存進(jìn)數(shù)據(jù)庫,同時(shí)將這條消息通過websocket發(fā)送給接收者,同時(shí)也將通知提醒的消息也發(fā)送給對(duì)方。發(fā)送消息的部分核心代碼如圖4-2.3.6所示:圖4-2.3.6發(fā)送消息的核心代碼私信模塊的存在問題:私信內(nèi)容消息和通知消息都是通過websocket的方法來發(fā)送給用戶的,但是兩個(gè)消息的內(nèi)容不同,而websocket一次只能發(fā)送一條消息,如何解決一次發(fā)送兩條內(nèi)容不同的消息呢?通過仔細(xì)的思考和研究,想出了解決辦法:既然websocket一次只能發(fā)送一條消息,那么使用兩個(gè)不同的websocket就能完美解決,一個(gè)websocket負(fù)責(zé)發(fā)送聊天內(nèi)容,另一個(gè)websocket發(fā)送消息通知。通過這種方法,讓著兩個(gè)服務(wù)各司其職,不同的信息就用對(duì)應(yīng)的服務(wù)來發(fā)送,不必再擔(dān)心消息發(fā)生發(fā)錯(cuò),或者消息混亂等情況的發(fā)生了。具體代碼如圖4-2.3.8至4-2.3.9所示:圖4-2.3.8負(fù)責(zé)消息通知的websocket部分代碼通過在注解@ServerEndpoint上填寫不同的映射路徑,那么前端在發(fā)送websocket的信息時(shí)就會(huì)根據(jù)不同的路徑來選擇不同的websocket服務(wù)器了。圖4-2.3.9負(fù)責(zé)聊天消息的websocke的部分代碼4.2.4“熱門博客”功能的實(shí)現(xiàn)熱門博客生成的步驟為:當(dāng)用戶對(duì)某條博客進(jìn)行操作時(shí),會(huì)提升這條博客的熱度,同時(shí)將其存儲(chǔ)在Redis數(shù)據(jù)庫中。因Redis的Zset數(shù)據(jù)結(jié)構(gòu)極其適合于實(shí)現(xiàn)排行榜功能,Zset自帶一個(gè)分?jǐn)?shù)計(jì)數(shù)器scores,所以使用Redis存儲(chǔ)熱門博客。設(shè)計(jì)實(shí)現(xiàn)思路為:當(dāng)用戶操作某條微博(點(diǎn)贊、評(píng)論、轉(zhuǎn)發(fā))時(shí),會(huì)在后臺(tái)將這條微博存到Redis的Zset集合中,同時(shí)設(shè)置它的scores加1。而熱門微博的排行榜就是從Redis數(shù)據(jù)庫中取出分?jǐn)?shù)最高的前10條微博進(jìn)行顯示的,并由于Redis數(shù)據(jù)庫的Zset集合是按照分?jǐn)?shù)的高低進(jìn)行排序存放的,因此在取出數(shù)據(jù)時(shí),這些數(shù)據(jù)自然就會(huì)按照分?jǐn)?shù)(熱度)的高低進(jìn)行排序,不需再寫邏輯代碼對(duì)他們進(jìn)行排序了。熱門博客排行榜的核心代碼如圖4-2.4.2所示:圖4-2.4.2核心代碼保存后,可以使用Redis的可視化工具RedisDesktopManager連接上Redis服務(wù)器,并查看數(shù)據(jù)是否存入Redis中。這里我是將微博客記錄的唯一id存進(jìn)Redis中,而查詢排行榜時(shí)就能通過主鍵來獲取整條微博客記錄信息了。Redis數(shù)據(jù)記錄如圖4-2.4.3所示:圖4-2.4.3Redis保存的數(shù)據(jù)圖4.2.5“搜索”功能的實(shí)現(xiàn)搜索功能的實(shí)現(xiàn)思路是通過輸入關(guān)鍵字,后臺(tái)通過數(shù)據(jù)庫的模糊查詢將所有內(nèi)容中帶有這個(gè)關(guān)鍵字的所有微博或用戶查詢出來。因這個(gè)模塊技術(shù)難度不高,所以設(shè)計(jì)和實(shí)現(xiàn)主要是注重前端的交互性就行。當(dāng)時(shí)為了讓用戶能有更好的使用體驗(yàn),避免查詢一次后搜索框的內(nèi)容清空,出現(xiàn)頻繁輸入搜索內(nèi)容的情況,這里將搜索內(nèi)容也直接傳到下一次跳轉(zhuǎn)頁面,部分核心代碼如圖4-2.5.1所示:圖4-2.5.1搜索核心代碼本系統(tǒng)的主要的功能就介紹到這里,還有很多小功能主要體現(xiàn)在前端的頁面上,為了讓用戶的體驗(yàn)性更好,頁面的功能也是極其重要的,所以在前端頁面上也是花費(fèi)大量的時(shí)間進(jìn)行改造,使用了很多JavaScript插件,使前端有個(gè)美觀操作界面。4.3數(shù)據(jù)庫的實(shí)現(xiàn)根據(jù)上面的功能需求并結(jié)合每個(gè)實(shí)體之間的關(guān)系,本系統(tǒng)一共創(chuàng)建12張數(shù)據(jù)庫表來支持功能的實(shí)現(xiàn),滿足功能上的數(shù)據(jù)需求。每張表的實(shí)現(xiàn)都會(huì)對(duì)應(yīng)一個(gè)功能或者多個(gè)功能,而一個(gè)功能可能也會(huì)操作多張表的數(shù)據(jù)來實(shí)現(xiàn)其功能要求。以下表3-4.1至3-4.12分別介紹了每張表的字段、數(shù)據(jù)類型以及每個(gè)字段的使用含義。 聊天對(duì)象表(chatlist)主要是用于存儲(chǔ)用戶的聊天對(duì)象的,每個(gè)用戶都會(huì)有很多聊天對(duì)象,通過將這些對(duì)象放在一個(gè)專門的表中存放,便于后臺(tái)代碼在執(zhí)行相應(yīng)功能時(shí),能夠快速查找到這些對(duì)象的信息,如表3-4.1。表3-4.1chatlist聊天對(duì)象信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idint11是Id唯一字段meint255否me本人(我)的idyouint255否you聊天對(duì)象的idsessionIDvarchar255否sessionID會(huì)話id(這次談話的id)lastTimeTalkdatetime0否lastTimeTalk最后一次聊天的時(shí)間sxMessageint255否sxMessage未查看的新信息數(shù)聊天記錄表(chatrecord)主要用于存儲(chǔ)用戶的聊天消息的,在用戶再次聊天時(shí),能夠讓用戶查看到上次的聊天記錄,避免的聊天信息的丟失,在進(jìn)入聊天時(shí),后臺(tái)會(huì)根據(jù)雙方的用戶id,到這張記錄表去查找消息記錄返回給前端,如表3-4.2。表3-4.2chatrecord聊天記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idint11是Id唯一字段sessionIdvarchar255否sessionId會(huì)話id(這次談話的id)sendManint255否sendMan發(fā)送消息者idreceiveManint255否receiveMan接收消息者idcontantvarchar255否contant消息內(nèi)容sendTimedatetime0否sendTime發(fā)送消息的時(shí)間收藏記錄表(collect)用于存放用戶收藏的博客記錄,用戶在收藏某條博客后,點(diǎn)擊個(gè)人收藏頁面時(shí),后代會(huì)聰哥這張表中查找出收藏的博客并返回給頁面顯示,如表3-4.3。表3-4.3collect收藏記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述collectIDvarchar255是collectID唯一字段userIDint255否userID收藏者idwbIDvarchar255否wbID被收藏的微博id關(guān)注記錄表(gz)用于記錄用戶與用戶之間的關(guān)注情況,如果用戶關(guān)注了對(duì)方,那么后臺(tái)會(huì)記錄這條數(shù)據(jù),在用戶再次查看某位用戶時(shí),將知道是否關(guān)注對(duì)方,如表3-4.4。表3-4.4gz關(guān)注記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idint11是Id唯一字段gzUsernamevarchar255否gzUsername關(guān)注人的usernamegzedUsernamevarchar255否gzedUsername被關(guān)注人的username回復(fù)評(píng)論表(hfpllist)用于記錄用戶回復(fù)評(píng)論的內(nèi)容,當(dāng)用戶再次查看某條評(píng)論的回復(fù)時(shí),后臺(tái)將查詢這張表的數(shù)據(jù)并返回給頁面,如表3-4.5。表3-4.5hfpllist回復(fù)評(píng)論記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idvarchar11是Id唯一字段plIDvarchar255否plID會(huì)話id(這次談話的id)plzIDint11否plzID發(fā)送消息者idusernamevarchar255否username接收消息者idhfContentvarchar255否hfContent回復(fù)內(nèi)容hfpltimedatetime0否hfpltime發(fā)送消息的時(shí)間點(diǎn)贊消息通知表(likemessage)用于保存用戶點(diǎn)贊后產(chǎn)生的消息通知記錄,如表3-4.6。表3-4.6likemessage點(diǎn)贊消息通知記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idint80是Id唯一字段likeUserNamevarchar255否likeUserName點(diǎn)贊者用戶名likedUsernamevarchar255否likedUsername被點(diǎn)贊者的用戶名dzWeibovarchar255否dzWeibo被點(diǎn)贊的那條微博iddzTimedatetime0否dzTime點(diǎn)贊時(shí)間點(diǎn)贊記錄表(love)用于記錄用戶的點(diǎn)贊情況,如果對(duì)某條博客點(diǎn)贊后,會(huì)將記錄保存到這張表,下次查看時(shí)能知道是否會(huì)這條博客點(diǎn)過贊,如表3-4.7。表3-4.7love點(diǎn)贊記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述dzIDvarchar255是dzID唯一字段userIDvarchar255否userID點(diǎn)贊者idwbIDvarchar255否wbID點(diǎn)贊的那條微博id評(píng)論記錄表(pllist)用于記錄用戶的評(píng)論消息,如果對(duì)某條博客評(píng)論后,會(huì)將記錄保存到這張表,下次查看評(píng)論時(shí)能后臺(tái)會(huì)查看這張表并返回評(píng)論記錄給頁面,如表3-4.8。表3-4.8pllist評(píng)論信息記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idvarchar80是Id唯一字段weiboidvarchar255否weiboid被評(píng)論的微博idusernamevarchar11否username評(píng)論者的用戶名useridint255否userid評(píng)論者的idplContentvarchar255否plContent評(píng)論的內(nèi)容plTimedatetime0否plTime評(píng)論的時(shí)間評(píng)論消息通知表(plmessage)用于記錄用戶的收到的評(píng)論通知,當(dāng)有人評(píng)論了用戶的某條博客時(shí),將這記錄存放在這張表,如表3-4.9。表3-4.9plmessage評(píng)論消息通知記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idint11是Id唯一字段plUsernamevarchar255否plUsername評(píng)論者用戶名pledUsernamevarchar255否pledUsername被評(píng)論者的用戶名plWeibovarchar255否plWeibo被評(píng)論的那條微博idplTimedatetime0否plTime評(píng)論時(shí)間。plContentvarchar255否plContent評(píng)論內(nèi)容用戶信息表(user)用于存放用戶的個(gè)人信息,包括頭像、賬號(hào)密碼等,如表3-4.10。表3-4.10user用戶信息記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idint11是Id唯一字段usernamevarchar255否username用戶名passwordvarchar255否password密碼saltvarchar255否salt加鹽headImgNamevarchar255否headImgName頭像圖片名personal_labelvarchar255否personalLabel個(gè)性簽名webNamevarchar255否webName網(wǎng)名namevarchar255否name真實(shí)名字cityvarchar255否city城市g(shù)enderInt255否gender姓名(0:男,1:女)birthdaydate0否birthday生日likeCountint255否likeCount點(diǎn)贊消息提醒數(shù)量plCountint255否plCount評(píng)論消息提醒數(shù)量zfCountint255否zfCount轉(zhuǎn)發(fā)消息提醒數(shù)量chatMessageint255否 chatMessage私信消息提醒數(shù)量博客信息表(weibo)用于記錄用戶發(fā)送過的博客記錄,當(dāng)用戶發(fā)送一條博客后會(huì)將這條博客保存到此表,在頁面顯示時(shí)就會(huì)查詢這張表獲取博客記錄,如表3-4.11。表3-4.11weibo博客信息記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述weibo_idvarchar255是weiboId唯一字段user_idint11否userId該條微博的作者id。contentvarchar255否content微博文字內(nèi)容postTimedatetime0否postTime發(fā)送時(shí)間pic1varchar255否pic1發(fā)送的圖片名稱pic2varchar255否pic2發(fā)送的圖片名稱pic3varchar255否pic3發(fā)送的圖片名稱pic4varchar255否pic4發(fā)送的圖片名稱Pic5varchar255否Pic5發(fā)送的圖片名稱Pic6varchar255否Pic6發(fā)送的圖片名稱videovarchar255否video上傳的視頻文件名musicvarchar255否music上傳的音樂文件名zanint11否zan該條微博的點(diǎn)贊數(shù)zfwbidvarchar255否zfwbid轉(zhuǎn)發(fā)的微博id轉(zhuǎn)發(fā)消息通知表(zfmessage)用于記錄用戶的收到的轉(zhuǎn)發(fā)通知,當(dāng)有人轉(zhuǎn)發(fā)了用戶的某條博客時(shí),將這記錄存放在這張表,如表3-4.12。表3-4.12zfmessage轉(zhuǎn)發(fā)消息通知記錄信息表鍵名數(shù)據(jù)類型長(zhǎng)度是否主鍵實(shí)體類字段名描述idint11是Id唯一字段zfUsernamevarchar255否zfUsername轉(zhuǎn)發(fā)者用戶名zfedUsernamevarchar255否zfedUsername被轉(zhuǎn)發(fā)者的用戶名zfWeibovarchar255否zfWeibo轉(zhuǎn)發(fā)的那條微博idzfTimedatetime0否zfTime轉(zhuǎn)發(fā)時(shí)間4.4實(shí)現(xiàn)效果以上功能的實(shí)現(xiàn)效果全部在前端的頁面上得到了體驗(yàn),每個(gè)功能都會(huì)與某個(gè)頁面,某個(gè)按鈕或者某塊區(qū)域直接關(guān)聯(lián)起來。部分功能效果如圖4-3.1至4-3.5所示:注冊(cè)時(shí),如果輸入不規(guī)范,會(huì)以紅色字段提示用戶輸入錯(cuò)誤,如果輸入規(guī)范則不會(huì)提示。圖4-3.1注冊(cè)功能效果圖用戶點(diǎn)擊表情按鈕,可以選著一個(gè)表情發(fā)送出去,表情可以為動(dòng)態(tài)圖,也可以為靜態(tài)圖,選著表情后會(huì)以一個(gè)特殊的文字顯示在輸入框中,發(fā)送后經(jīng)前端表情插件解析后重新識(shí)別為表情圖片。圖4-3.2表情功能效果圖點(diǎn)贊后點(diǎn)贊按鈕里面數(shù)字加1,并且心形變?yōu)閷?shí)體,當(dāng)取消點(diǎn)贊時(shí)按鈕數(shù)字則減1,而心形會(huì)變?yōu)榭招?。圖4-3.3點(diǎn)贊功能效果圖用戶點(diǎn)擊評(píng)論按鈕后會(huì)彈出評(píng)論框,在評(píng)論框中輸入評(píng)論內(nèi)容,點(diǎn)擊綠色評(píng)論按鈕發(fā)送評(píng)論信息,評(píng)論消息會(huì)立即顯示在評(píng)論框下方。圖4-3.4評(píng)論功能效果圖當(dāng)用戶收到消息通知時(shí),會(huì)在頁面的左上方通知區(qū)域出現(xiàn)紅色圓圈,圓圈內(nèi)的數(shù)字表示總消息數(shù)量,鼠標(biāo)放在通知區(qū)域會(huì)顯示詳細(xì)的通知消息,如贊、評(píng)論等,哪個(gè)區(qū)域有紅色圓圈,表示對(duì)應(yīng)哪個(gè)模塊有消息。圖4-3.5消息通知功能效果圖用戶私聊頁面,在頁面的左側(cè)為用戶的聊天對(duì)象列表,右側(cè)為聊天框。圖4-3.6私信功能效果圖4.4本章總結(jié)本章主要詳細(xì)介紹各個(gè)功能的實(shí)現(xiàn)過程和實(shí)現(xiàn)思路,并且介紹了各功能的實(shí)現(xiàn)情況以及實(shí)現(xiàn)出來的效果。
第五章系統(tǒng)測(cè)試任何系統(tǒng)都要經(jīng)過反復(fù)的測(cè)試,多次測(cè)試后才算開發(fā)成功。本系統(tǒng)開發(fā)完成后對(duì)各個(gè)功能進(jìn)行了測(cè)試,并對(duì)測(cè)試出現(xiàn)的問題、bug等進(jìn)行改進(jìn),使系統(tǒng)更加強(qiáng)大牢固。5.1測(cè)試用例結(jié)果通過對(duì)本系統(tǒng)的各項(xiàng)功能進(jìn)行多次測(cè)試,得出了測(cè)試用例結(jié)果,下表為本系統(tǒng)的測(cè)試功能用例表,將會(huì)介紹各個(gè)功能的測(cè)試情況,如下所示:表5-1測(cè)試功能用例表需求功能名稱測(cè)試用例名稱執(zhí)行說明執(zhí)行情況是否通過登錄注冊(cè)登錄與注冊(cè)測(cè)試測(cè)試用戶是否可以使用正常注冊(cè)賬號(hào)和進(jìn)行登錄,輸入錯(cuò)誤時(shí)是否出現(xiàn)提示良好是發(fā)送表情功能表情功能測(cè)試測(cè)試用戶能否正常使用表情功能,點(diǎn)擊表情按鈕能否正常彈出表情框,發(fā)送表情后能否正常顯示良好是發(fā)送圖片,視頻、音樂發(fā)送多種不同形式的博客測(cè)試測(cè)試用戶能否正常發(fā)送圖片、視頻、音樂等格式的博客,能否正常查看圖片、視頻,能否聆聽到音樂良好是搜索博客和用戶搜索測(cè)試測(cè)試用戶能否通過輸入關(guān)鍵字搜索出博客、用戶,搜素出來的結(jié)果與搜索詞是否符合良好是個(gè)人中心個(gè)人中心模塊測(cè)試測(cè)試用戶點(diǎn)擊頭像圖標(biāo)能否進(jìn)入到個(gè)人主頁,能否在個(gè)人主頁查看自己發(fā)送過的博客,能否查看收藏的博客良好是熱門排行榜功能熱門排行榜測(cè)試測(cè)試多個(gè)用戶對(duì)同一條博客進(jìn)行點(diǎn)贊、評(píng)論等操作,能否讓此條博客進(jìn)入到熱門排行榜良好是私聊私聊功能測(cè)試測(cè)試用戶向另一個(gè)用戶進(jìn)行私聊時(shí),對(duì)方能否接收到消息,對(duì)方發(fā)送消息多來時(shí),自己是否也能收到良好是收藏功能收藏功能測(cè)試測(cè)試用戶點(diǎn)擊收藏按鈕后,能否在個(gè)人收藏中查看到本條收藏博客良好是轉(zhuǎn)發(fā)功能轉(zhuǎn)發(fā)功能測(cè)試測(cè)試用戶能否正常轉(zhuǎn)發(fā)某條博客,點(diǎn)擊轉(zhuǎn)發(fā)按鈕能否正常彈出轉(zhuǎn)發(fā)框,轉(zhuǎn)發(fā)后能否正常顯示轉(zhuǎn)發(fā)的內(nèi)容良好是回復(fù)功能回復(fù)功能測(cè)試測(cè)試用戶能否正常對(duì)某條評(píng)論進(jìn)行回復(fù),回復(fù)內(nèi)容能否正常顯示良好是評(píng)論功能評(píng)論功能測(cè)試測(cè)試用戶能否對(duì)某條博客進(jìn)行評(píng)論,評(píng)論的內(nèi)容能否正常顯示在博客下方良好是消息通知消息通知測(cè)試測(cè)試用戶對(duì)某條博客點(diǎn)贊、評(píng)論時(shí),該博客作者能否收到消息通知,別人私聊用戶時(shí),用戶能否收到私聊的通知提醒。良好是5.2測(cè)試效果對(duì)于功能測(cè)試方面,在微博功能測(cè)試中,測(cè)試內(nèi)容為發(fā)送50條微博客,發(fā)送的內(nèi)容包括文字、圖片、音樂、視頻等,查看發(fā)送的內(nèi)容是否可以正確、按時(shí)間順序進(jìn)行有序的排序,并且對(duì)于發(fā)送的圖片、視頻、音樂、表情等能否正常查看。測(cè)試效果如圖5-1所示。圖5-2微博客功能測(cè)試效果圖而私信功能和消息通知功能的測(cè)試,通過在兩個(gè)不同的瀏覽器或者在兩臺(tái)電腦上登錄兩個(gè)不同的賬號(hào),私信對(duì)方進(jìn)行聊天,查看能否接收到通知消息,點(diǎn)擊消息提示時(shí)能夠查看到消息記錄,測(cè)試效果如圖5-2所示:圖5-3私信與消息通知功能測(cè)試效果圖對(duì)于搜索功能的測(cè)試,分別進(jìn)行50次搜索,對(duì)搜索得到的內(nèi)容,查看是否含有搜索的關(guān)鍵字,同時(shí)要查看結(jié)果展示是否正確,頁面排版是否美觀等,測(cè)試效果如圖5-3所示。圖5-4搜索功能測(cè)試效果圖熱門微博客排行功能的測(cè)試,分別使用多個(gè)用戶對(duì)微博客進(jìn)行點(diǎn)贊、評(píng)論、轉(zhuǎn)發(fā)等,然后查看對(duì)于多人操作的微博客能否出現(xiàn)在排行榜中,測(cè)試效果如圖5-4所示。圖5-5搜索功能測(cè)試結(jié)果圖經(jīng)過對(duì)每個(gè)功能的多次測(cè)試,找出了這些功能出現(xiàn)的問題和bug并修改,經(jīng)過修改后,目前所有功能均能正常運(yùn)行使用,而頁面的跳轉(zhuǎn)、頁面上的樣式變化等業(yè)務(wù)異常,數(shù)據(jù)庫的讀寫操作也正常,基本能夠滿足用戶的目標(biāo)所需。不過由于本次測(cè)試其性能次數(shù)有限,可能存在局限性。第六章總結(jié)通過分析研究目前流行的社交博客平臺(tái),參考這些系統(tǒng)的優(yōu)秀、前沿的技術(shù)和功能,發(fā)揚(yáng)他們的優(yōu)點(diǎn)、改正他們的缺點(diǎn),并結(jié)合自身的實(shí)際情況開發(fā)了一個(gè)微博客系統(tǒng)。本微博客系統(tǒng)能夠讓用戶在上下班路上、周末休息等有限時(shí)間內(nèi)充分接收外界網(wǎng)絡(luò)的信息,不僅可以消遣時(shí)間,也能了解網(wǎng)絡(luò)咨詢等。本系統(tǒng)在設(shè)計(jì)上,把信息內(nèi)容設(shè)置得“精致玲瓏”,文字輸入限制在140個(gè)字以內(nèi),圖片上傳限制在6張以內(nèi),這樣的設(shè)計(jì)會(huì)讓在顯示的時(shí)候一條博客顯得精短,不會(huì)一整條就占用一個(gè)頁面的顯示。同時(shí)在用戶之間的交流互動(dòng),也不僅僅只是在評(píng)論中進(jìn)行,更應(yīng)該可以像聊天工具一樣自由地交流,所以私聊功能由此而出現(xiàn)。而為了讓用戶能夠第一時(shí)間了解當(dāng)前的熱點(diǎn)新聞,我們?yōu)榇硕龀鰺狳c(diǎn)排行榜功能,這些功能的主要目的都是為了讓用戶能夠在最短的時(shí)間內(nèi)清楚地知道外界的信息,查看自己想要的信息。本系統(tǒng)以SpringBoot作為核心框架,通過SpringBoot與其他框架的整合,構(gòu)建起了整個(gè)系統(tǒng)的架構(gòu)。首先引入Mybatis框架,能夠讓系統(tǒng)可以對(duì)數(shù)據(jù)庫進(jìn)行操作和查看;另外引入ApacheShiro安全框架,能夠讓系統(tǒng)的安全性得到很大的提高;引入WebSocket技術(shù),能夠使用戶之間的通訊更加快速準(zhǔn)確,保證信息的正確傳遞,另外還能減少系統(tǒng)資源,提高系統(tǒng)性能。而為了實(shí)現(xiàn)排行榜功能,為此引入Redis數(shù)據(jù)庫,由于Redis的基于鍵值對(duì)形式的非關(guān)系型數(shù)據(jù)庫,所以在存儲(chǔ)數(shù)據(jù)時(shí)是極其快的,并且其擁有獨(dú)特的存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)Zset,非常適合用來存儲(chǔ)那些排行榜上的數(shù)據(jù)。本系統(tǒng)在頁面上進(jìn)行了的大量的優(yōu)化和調(diào)整,使頁面能夠以較為美觀地呈現(xiàn)給用戶,讓用戶能有良好的使用體驗(yàn),并且每個(gè)功能都會(huì)有一部分的頁面與之對(duì)應(yīng),用戶通過頁面來直接使用功能,使功能的特性更加直觀地呈現(xiàn)出來。在開發(fā)完成后,測(cè)試環(huán)節(jié)是最重要的一步,可以說一個(gè)系統(tǒng)的好壞與它有沒有經(jīng)過測(cè)試有必要聯(lián)系。所以本系統(tǒng)經(jīng)過大量反復(fù)的測(cè)試,對(duì)功能邏輯、對(duì)頁面等進(jìn)行測(cè)試,將發(fā)現(xiàn)的問題、bug、錯(cuò)誤等,全部加以修改優(yōu)化,為了能讓用戶更加順暢、更好地使用本博客系統(tǒng)所必須做的一步??偟膩碚f,本微博客系統(tǒng)實(shí)現(xiàn)了目前社交平臺(tái)的大部分功能,能夠滿足用戶的日常使用需求,同時(shí)對(duì)于未實(shí)現(xiàn)的功能或者難以實(shí)現(xiàn)的功能,會(huì)在未來出現(xiàn)更好的技術(shù)或者擁有更多的資源支持時(shí),會(huì)考慮將這些功能都實(shí)現(xiàn)起來,使系統(tǒng)更加的完善和強(qiáng)大。參考文獻(xiàn)[1]趙一凡、卞良、叢昕.《基于MD5的加鹽消息摘要Java實(shí)現(xiàn)》[J]2018年3月15日[2]CayS.Horstmann.《Java核心技術(shù)卷I:基礎(chǔ)知識(shí)》[M].\o"機(jī)械工業(yè)出版社"機(jī)械工業(yè)出版社2016年9月1日[3]CraigWalls.《SpringBoot實(shí)戰(zhàn)》[M].\o"人民郵電出版社"人民郵電出版社2016年9月1日[4]瘋狂軟件.《SpringBoot2企業(yè)應(yīng)用實(shí)戰(zhàn)》[M].\o"電子工業(yè)出版社"電子工業(yè)出版社2018年5月1日[5]黃健宏.《Redis設(shè)計(jì)與實(shí)現(xiàn)》[M].
\o"機(jī)械工業(yè)出版社"機(jī)械工業(yè)出版社2014年6月1日[6]明日科技.《MySQL從入門到精通》[M].\o"清華大學(xué)出版社"清華大學(xué)出版社2017年8月1日[7]劉增輝.《MyBatis從入門到精通》[M].\o"電子工業(yè)出版社"電子工業(yè)出版社2017年7月1日[8]許曉斌.《Maven實(shí)戰(zhàn)》[M].\o"機(jī)械工業(yè)出版社"機(jī)械工業(yè)出版社2011年1月1日[9]歐陽照,王英翠.社交網(wǎng)絡(luò)中“點(diǎn)贊”現(xiàn)象探微[J].今傳媒,2015,23(06):11-13.[10]劉學(xué)峰武漢市信息中心.新媒體評(píng)論有講究[N].中國(guó)新聞出版廣電報(bào),2019-10-22(008).[11]趙安琪,張鵬洲.基于社交媒體的電影網(wǎng)絡(luò)傳播影響力分析——以新浪微博為例[J].現(xiàn)代電影技術(shù),2019(09):10-17.[12]BruceEckel.《Java編程思想》[M].機(jī)械工業(yè)出版社2007年6月1日黃俊爽,李聰,李相儉,etal.淺談Java面向?qū)ο蟪绦蛟O(shè)計(jì)[J].科技信息,2010(13):47-47.[13]闞道遠(yuǎn),夏玉婷.微型博客——網(wǎng)絡(luò)輿論引導(dǎo)的新視點(diǎn)[J].思想政治工作研究,2009(08):38-41.[14]孫曉韻.重大突發(fā)事件的新浪微博傳播研究——以8·12天津港爆炸事故為例[J].東南傳播,2019(08):121-124.[15]高檔妮.新媒體閱讀對(duì)讀者時(shí)空體驗(yàn)的重構(gòu)——以新浪微博為例[J].出版廣角,2019(13):71-73.[16]馬梓雨,朱瑾.網(wǎng)絡(luò)社交平臺(tái)評(píng)論治理策略研究——以新浪微博為例[J].現(xiàn)代商業(yè),2019(02):178-180.[17]李興華,馬超.大學(xué)生在新型社交媒體上的行為習(xí)慣及引導(dǎo)策略研究——以微博、微信、QQ等網(wǎng)絡(luò)即時(shí)社交平臺(tái)為例[J].教育教學(xué)論壇,2018(38):57-58.[18]莫路.論Vlog的傳播特征及其局限——以微博社交平臺(tái)為例[J].衛(wèi)星電視與寬帶多媒體,2019(11):68-69.[19]黎映伶.自媒體短視頻類垂直內(nèi)容深耕策略研究——以新浪微博用戶“papi醬”為例[J].新媒體研究,2019,5(07):82-83.[20]吳英文.微博客文學(xué)價(jià)值體認(rèn)與學(xué)理維度探析[J].名作欣賞,2019(27):15-17+47.[21]陳肇珅.社交平臺(tái)的信息影響力——以新浪微博為例[J].電視指南,2017(13):229+239.[22]黃文杰.“95后”大學(xué)生社交媒體使用現(xiàn)狀——基于部分大學(xué)的實(shí)證調(diào)查[J].東南傳播,2020(02):116-119.[23]林聚任,邢國(guó)鑫.點(diǎn)贊之交:城市居民新型網(wǎng)絡(luò)社交對(duì)線下社交網(wǎng)的影響——基于JSNET2014的數(shù)據(jù)分析[J].社會(huì)發(fā)展研究,2019,6(04):96-111+240.[24]田豐.網(wǎng)絡(luò)社交為何讓我們?cè)絹碓焦陋?dú)[J].人民論壇,2019(31):70-71.[25]安納.被虛妄的網(wǎng)絡(luò)表情綁架違背人際交流的初衷[N].中國(guó)青年報(bào),2019-11-21(002).[26]歐亞非.以熱門事件為例探析如何引導(dǎo)微博輿論場(chǎng)[J].視聽,2018(10):127-128.[27]王健.景觀社會(huì)中青年網(wǎng)絡(luò)社交的文化反思[J].當(dāng)代青年研究,2019(04):92-96+117.[28].Vlog流行,年輕人的網(wǎng)絡(luò)社交悄悄改變[J].新聞?wù)搲?2019(03):110.[29]林愛珺,張博.作為話語的表情包:網(wǎng)絡(luò)表情包的符號(hào)消費(fèi)與社會(huì)學(xué)反思[J].現(xiàn)代傳播(中國(guó)傳媒大學(xué)學(xué)報(bào)),2019,41(08):35-40.[30]惠苗,賴道健.基于WebSocket協(xié)議的即時(shí)通訊系統(tǒng)的開發(fā)[J].榆林學(xué)院學(xué)報(bào),2019,29(06):76-79.44致謝通過5個(gè)月的時(shí)間學(xué)習(xí)、研究,終于把這個(gè)系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)出來了,而我的大學(xué)生涯也即將結(jié)束。時(shí)間過得飛快,一眨眼我也快畢業(yè)了,在大學(xué)期間所學(xué)到的專業(yè)知識(shí)對(duì)這個(gè)系統(tǒng)帶來了極大的幫助,而同學(xué)們給的建議和幫助也帶我?guī)砗艽蟮膯l(fā)。首先我要感謝我的老師,無論是平時(shí)上課的科任老師還是畢業(yè)設(shè)計(jì)的指導(dǎo)老師,他們都會(huì)耐心、詳細(xì)地給我們講解專業(yè)知識(shí),遇到問題向他們請(qǐng)教時(shí),他們也會(huì)耐心地給我們解答。正是因?yàn)樗麄?,我才能學(xué)會(huì)這么多專業(yè)知識(shí)。在此,謹(jǐn)向老師們致以衷心的感謝和最崇高的敬意。其次,感謝我的同學(xué)們,在這四年的生活里,我們經(jīng)常一起談?wù)搶W(xué)習(xí)的方法、心得,讓我知道如何更高效地學(xué)習(xí)編程、怎么優(yōu)雅地編程。我們一起討論當(dāng)前的技術(shù)以及未來的技術(shù)趨向,共同探索程序員行業(yè)的發(fā)展。當(dāng)我遇到問題時(shí),他們都能耐心地指導(dǎo)我如何解決,甚至還給出很多建議和改進(jìn)。同時(shí)也要感謝我的父母對(duì)我這二十多年的付出和教導(dǎo),沒有他們就沒有現(xiàn)在的我。而現(xiàn)在我也要用豐富的知識(shí)來報(bào)答他們!最后,我要向在百忙之中抽時(shí)間對(duì)本人論文答辯進(jìn)行審閱、評(píng)議的各位老師再次表示感謝!
HYPERLINK如何選擇組裝電腦配件
如何選擇組裝的電腦配件.
第一,選擇好CPU平臺(tái),就是INTER還是AMD,看你是要配什么樣的電腦,高端還是低端的,兩個(gè)平臺(tái)都高低的產(chǎn)品。第二,選擇主板了,主板的品牌比較多,質(zhì)量,價(jià)格也不一,當(dāng)你第一步卻定了,那么主板也就相應(yīng)的卻定下來了,以INTER為例,只可以選擇775接口的主板(早期有478接口的,不推薦),主板的選擇主要有兩種,一是集成顯卡,二是不集成顯卡。集成顯卡的話,就可以省下顯卡的錢,但是對(duì)游戲玩家不推薦。那么當(dāng)然是選擇不集成顯卡的主板了,而且最好選擇一線品牌,如華碩,技嘉等。主板里,還有個(gè)蕊片組的選擇。關(guān)于蕊片組,各個(gè)品牌的主板命名有些不一樣,主流是INTER965,945,915,VIA的KT890,還有NFORCE4,NFORCE5。等。比較難說清楚。最好是選擇INTER的蕊片組,雖然價(jià)格會(huì)稍高一些。推薦945,技術(shù)比較成熟。第三,顯卡的選擇。顯卡主要還是有兩類品牌,GEFORCE和ATI,兩個(gè)品牌有高,中,低的顯卡。顯卡選擇要看你個(gè)人喜歡了,預(yù)算充足的話,最好是買中,高端的顯卡。
第四,就是內(nèi)存了,內(nèi)存關(guān)系電腦的穩(wěn)定性。當(dāng)然是要好一點(diǎn)的。買一線品牌的?,F(xiàn)在配電腦,主流是DDR667,DDR800DDR1333第五,顯示器的選擇,推薦液晶。如何選擇硬件組裝電腦這是一個(gè)老生常談的問題了,這也是一個(gè)讓高手們顯示自己硬件功底的問題,同時(shí)這還是一個(gè)讓很多新手為之焦頭爛額的問題。該怎么配?具體配什么?怎樣配才能盡量減小瓶頸?本文就將從內(nèi)到外,從理論到實(shí)踐,為朋友們抽絲剝繭一一道來。
一、CPU
作為一臺(tái)電腦最關(guān)鍵的組成部分,CPU確實(shí)起著舉足輕重的作用,但體現(xiàn)一臺(tái)電腦的綜合速度,并不是僅僅依靠CPU的,常??吹胶芏嘈率謧?cè)谂潆娔X的時(shí)候,把CPU選的很好,但其他的東西諸如內(nèi)存、主板、硬盤等都選的不太理想,好像這臺(tái)電腦速度的快慢就體現(xiàn)在CPU速度的快慢上似的。甚至很多著名的品牌機(jī)廠商,都推出過類似“P4+256M內(nèi)存”的這種跛腳配置。其實(shí)對(duì)于一般的家用電腦而言,一個(gè)真正會(huì)配的高手,是不會(huì)把大量的錢花在CPU上的。家用電腦,畢竟不是做密集型科學(xué)計(jì)算用的,它講求的是多種媒體的配合工作,講求的是能一邊下載文件、一邊上網(wǎng)瀏覽網(wǎng)頁、一邊聽音樂、一邊還能打開其他的程序,在這種情況下,提升內(nèi)存的容量比提升CPU的主頻對(duì)速度的影響要明顯的多?,F(xiàn)今的中國(guó)家庭用戶,很多家長(zhǎng)對(duì)于電腦一竅不通,他們只聽說“奔四”代表著速度快,并不知道整機(jī)速度的快慢除了CPU以外,還有很多其他的因素影響著它。但在買電腦的時(shí)候,最后做決定并掏錢的人,往往都是這些啥都不懂的家長(zhǎng)們,于是就出現(xiàn)了上面的一幕:品牌機(jī)廠商為了能有更好的銷路、兼容機(jī)裝機(jī)店的銷售人員為了能拿到更多的獎(jiǎng)金,開始違背良心來配置出這種高主頻處理器、低容量?jī)?nèi)存的跛腳電腦。說嚴(yán)重點(diǎn),這是屬于對(duì)消費(fèi)者的不負(fù)責(zé)任,是一種商業(yè)欺詐行為!同樣5000元的配置,高手配出來的賽揚(yáng),比新手配出來的P4還要快很多,曾經(jīng)有一家全球著名的硬件網(wǎng)站在2003年的時(shí)候刊登過一篇關(guān)于配置家用電腦時(shí)各硬件占用總預(yù)算百分比的文章,文中很明確的提到了CPU的價(jià)錢最好不要超過總預(yù)算的10%-15%,我們雖然不能說他肯定完全正確,但至少人家是通過很多調(diào)查后得出的結(jié)論,有借鑒的理由。反觀現(xiàn)在的很多所謂的“低價(jià)奔四電腦”、“3999元買P4品牌機(jī)”之類的廣告,我想說的就是:你花了3999元,只買了一塊P4的處理器,其他的什么都沒有了!
二、內(nèi)存
對(duì)于配置一臺(tái)電腦來說,內(nèi)存是重頭戲,容量、速度、類型等等每一項(xiàng)指標(biāo)都對(duì)最終的整機(jī)綜合速度起著至關(guān)重要的影響,尤其是內(nèi)存的帶寬和容量。對(duì)于內(nèi)存帶寬而言,很多人都認(rèn)為400MHz、533MHz前端總線的賽揚(yáng)四或P4,配單通道的DDR內(nèi)存就足夠了,雙通道DDR內(nèi)存是配合800MHz以上前端總線的P4處理器用的,其實(shí)這樣就大錯(cuò)特錯(cuò)了,哪怕是最老的賽揚(yáng)四,都需要雙通道的DDR內(nèi)存才能達(dá)到它的帶寬!也就是說,你如果選擇賽揚(yáng)四1.8G,必須配合865以上的主板和至少雙通道DDR200的內(nèi)存,才能滿足它的帶寬要求!稍微計(jì)算一下就可以得知:賽揚(yáng)四1.8G的前端總線是400MHz,它的內(nèi)存帶寬理論值是400MHz×64bit÷8=3.2G/s,但當(dāng)它裝在845系列的主板上時(shí),由于845主板的限制,即使你插上能符合它帶寬要求的DDR400內(nèi)存,也只能運(yùn)行在DDR266上,這時(shí)的內(nèi)存所能提供的帶寬是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通過BIOS里的內(nèi)存調(diào)節(jié)選項(xiàng)往上調(diào)節(jié)一檔(也只能調(diào)節(jié)一檔而已),讓內(nèi)存運(yùn)行在DDR333下,所能提供的帶寬也僅僅是333MHz×64bit÷8=2.66G/s,離3.2G/s還是有一定的距離,而內(nèi)存帶寬的降低,能非常明顯的降低整機(jī)的綜合速度,運(yùn)行任何程序都能明顯的感覺出來!所以如果想滿足賽揚(yáng)1.8G處理器的內(nèi)存帶寬要求,你必須要為它配置865以上的主板和雙通道的內(nèi)存才行!P4亦是如此。很多人也許會(huì)問:那845系列的主板是配什么處理器的呢?我想回答你的就是:845系列的主板是屬于“不能用”的主板,因?yàn)樘幚砥饔肋h(yuǎn)比主板發(fā)展的快,當(dāng)初Intel造出845系列的芯片組是為了能給當(dāng)時(shí)的賽揚(yáng)和P4提供一個(gè)過渡的平臺(tái),不至于讓它們成為“沒有主板配合”的處理器而已,也是為了能在低端市場(chǎng)分一杯羹,而現(xiàn)今865甚至9xx系列的主板橫行的時(shí)候,845系列的主板確實(shí)是屬于“不能用”的主板了,滿足不了任何一款處理器的內(nèi)存帶寬,造成性能上的嚴(yán)重低下,試問這種主板你會(huì)選擇么?即使配臺(tái)2000多元的超低價(jià)電腦,也不要去選擇845系列的主板,至少需要865以上的和雙通道內(nèi)存才行,因?yàn)閮?nèi)存帶寬是一個(gè)非常影響系統(tǒng)性能的參數(shù),倘若一味的為了省錢而配置845系列的主板,那就得不償失了。
內(nèi)存的容量方面,應(yīng)每個(gè)人對(duì)電腦的使用方向不同,容量的要求也是不同的,現(xiàn)在配置的家用電腦,筆者建議:如果不打游戲,或者是打打掃雷、紙牌之類的游戲,平時(shí)注重于上網(wǎng)瀏覽或者是聊天、看電影之類的應(yīng)用的話,內(nèi)存容量不應(yīng)該低于1G;如果是偶爾打打單機(jī)游戲或者是網(wǎng)絡(luò)游戲,內(nèi)存容量應(yīng)該選擇在2G左右,如果是經(jīng)常打大型的游戲或是進(jìn)行HDTV視頻編輯等應(yīng)用,那么4G的內(nèi)存是必不可少的。
三、主板
一臺(tái)電腦的穩(wěn)定性和兼容性,一大部分是看主板的,一款優(yōu)秀的主板不僅需要擁有上等的用料和優(yōu)良的做工,還需要擁有合理的走線設(shè)計(jì),那些沒有技術(shù)實(shí)力的三、四線主板廠家生產(chǎn)的主板,多數(shù)是采用公版走線,而且用料非常差,穩(wěn)定性不堪一擊,這種類型的主板,筆者建議寧愿不買電腦也不要配這種主板,否則以后將會(huì)是個(gè)淘氣的祖宗。對(duì)于家庭用戶,主板方面一定不能省錢,預(yù)算夠的話最好能買個(gè)一線的主板品牌,如果預(yù)算實(shí)在不足,二線的主板是底線了,不要再往下選擇了,畢竟家用電腦是用來使用的,不是用來整天維修的。再談到主板的用料,筆者常??吹胶芏嘈率衷谂渲弥靼宓臅r(shí)候,貌似老鳥似的說某某品牌的主板好,某某品牌的不好,試問你知道它好在哪里么?不好在哪里么?這個(gè)就要看主板的用料了,雖然用料好的主板并不能代表一定是高檔主板,但最少能代表它的電氣性能出色。舉一個(gè)很簡(jiǎn)單的例子吧:有A、B兩款主板,A主板的處理器供電濾波電容采用的是日系電容,B主板的處理器供電濾波電容采用的是臺(tái)系電容,那么基本上可以肯定的是:如果在電源輸出電壓的波動(dòng)范圍比較大的情況下,A主板就比較能耐得住,而B主板就很容易產(chǎn)生電容鼓包、漏夜等情況。不要小看這小小的電容,筆者從一個(gè)開維修店的朋友那里得知,來維修主板的人,有80%的都是這幾個(gè)小電容損壞,究其原因,就是電源選擇的不好,導(dǎo)致了輸出電壓的不穩(wěn)定,久而久之最終導(dǎo)致這幾個(gè)小電容爆漿,并且詳細(xì)敘述了主板的品牌:“一線廠家的×碩牌主板就很少出現(xiàn)這種情況,但同樣為一線廠家的×星牌主板,經(jīng)常遇到!原因就是前者的大部分主板使用的是日系電容,而后者的大部分主板為了省錢,選用的是臺(tái)系電容!”廠家的廣告不能信,宣傳也不能信,看到一個(gè)產(chǎn)品的廣告之后,你所能相信的唯一一點(diǎn)就是:地球上有這么個(gè)產(chǎn)品的存在!然后其他的就統(tǒng)統(tǒng)都不能信了!網(wǎng)上有好多所謂的“評(píng)測(cè)”文章,都是槍手寫的,基本上沒有任何參考余地,只能作為一篇小說來讀,一款主板的真正性能,只有你自己使用了之后才能知道。廠家為了銷量、商家為了利潤(rùn),他們能把最最垃圾的主板宣傳為最頂級(jí)的產(chǎn)品,筆者曾經(jīng)就看到過一款四線品牌的主板廠商,在對(duì)其主流主板的廣告上說“最優(yōu)秀的設(shè)計(jì)、最精湛的工藝、最穩(wěn)定的性能”……結(jié)果一看報(bào)價(jià):550元/塊……其他的話我也不想多說了,只想問問這家廠商:你這么垃圾的主板都用了三個(gè)“最”字,那么華碩的同芯片組主板,售價(jià)是你三倍的,應(yīng)該用什么詞語來描述了??中國(guó)有一句古話:一分錢一分貨,說的非常正確!不要認(rèn)為價(jià)格高的主板就是暴利產(chǎn)品,從市場(chǎng)經(jīng)濟(jì)學(xué)上說,暴利產(chǎn)品是不會(huì)被市場(chǎng)所接受的,之所以他能存活到今天,而且售價(jià)依然是這么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售價(jià)高,在此,筆者奉勸大家一句:買主板千萬不要憑僥幸心理,認(rèn)為自己能花很少的錢買到很好的東西,只有錯(cuò)買的沒有錯(cuò)賣的,商家永遠(yuǎn)都比你精明!主板上面還是老老實(shí)實(shí)的多花點(diǎn)錢來買個(gè)一線產(chǎn)品吧,否則以后有你吃苦的時(shí)候!
四、硬盤
現(xiàn)在的電腦,硬盤的速度當(dāng)之無愧的成為了“第一大瓶頸”,無論你是再高的高手,配電腦的時(shí)候也無法消除這個(gè)瓶頸的存在,我們只有盡量的減小…再減小……。對(duì)于家用電腦的硬盤來說,容量和速度是兩個(gè)非常重要的參數(shù),容量上而言,筆者建議:如果你的電腦只是上網(wǎng)瀏覽瀏覽、偶爾打打小游戲的,那么160G的硬盤是個(gè)不錯(cuò)的選擇;如果你常常下載軟件或電影,那么250G的硬盤是個(gè)不錯(cuò)的選擇,如果你是個(gè)下載狂人,那么400G的硬盤比較適合你;如果你有DV或者是經(jīng)常編輯大型的視頻文件,那么400G×2比較適合你,如果你是個(gè)玩HDTV的人,那么恭喜你,400G×4也許你都不夠用。對(duì)于硬盤容量上的選擇,你不能考慮現(xiàn)在是否夠用,你應(yīng)該考慮未來的1年里是否夠用,大概的公式是:現(xiàn)在需要的容量×3。也就是說,如果你現(xiàn)在感覺80G的硬盤差不多夠用了,那么你就需要買個(gè)250G的硬盤。如果你現(xiàn)在感覺120G的硬盤夠用了,那么就去買個(gè)400G的硬盤吧。硬盤另外的一個(gè)參數(shù)就是速度,受到內(nèi)部傳輸率等諸多因素的限制,一塊硬盤的實(shí)際傳輸速度是不可能達(dá)到它的接口速度的,現(xiàn)在的并口硬盤基本上都是ATA133了,串口硬盤也都是150了,但民用級(jí)硬盤的實(shí)際傳輸速度最快的也還沒突破66M/s,所以跟內(nèi)存相比,硬盤的速度是電腦中最大的瓶頸,那么怎么來減小這個(gè)瓶頸呢?于是人們就發(fā)明了RAID,就是磁盤陣列(當(dāng)然RAID不是僅僅為了這個(gè)而發(fā)明的),用兩塊一模一樣的硬盤來組成RAID0,速度理論上能提高1倍,雖然實(shí)際上是不可能達(dá)到1倍的,但至少能非常非常明顯的感覺到了硬盤速度的提升,筆者建議:如果你買的主板是帶有RAID功能的,并且你需要保存的數(shù)據(jù)不是很重要的話,那么強(qiáng)烈建議你在預(yù)算允許的情況下購(gòu)買兩塊硬盤來組建RAID0,這將使你能親身體會(huì)到飛機(jī)與火車的速度差別!但最好是串口的,如果是并口的話,因?yàn)椴⒖谧叩氖荘CI總線,由于PCI總線上的設(shè)備比較多,所以速度不可能達(dá)到比較高的地步,但如果是串口的話,那么硬盤的速度提升將更加明顯!
五、顯示器
顯示器方面,筆者想澄清一個(gè)觀念:曾經(jīng)聽過非常多的人說液晶顯示器保護(hù)眼睛,因?yàn)闆]有輻射和閃爍……包括很多業(yè)內(nèi)人士都這么認(rèn)為的,其實(shí)錯(cuò)了,液晶顯示器比普通的CRT還要傷眼睛!因?yàn)閭劬Σ粌H僅是輻射和閃爍,還有對(duì)比度、亮度等參數(shù),雖然液晶顯示器的輻射和閃爍比CRT要小的多,但它那要命的對(duì)比度、那要命的色澤度、還有那大于每平方米300cd的亮度,這些都會(huì)對(duì)眼睛造成很大的傷害,并且你即使將液晶顯示器的亮度和對(duì)比度調(diào)節(jié)到最低,也還是非常的刺眼。德國(guó)的一家權(quán)威機(jī)構(gòu)做過一項(xiàng)調(diào)查:液晶顯示器用久了會(huì)使人的眼睛感覺到疲倦,甚至頭痛等癥狀,而使用相同時(shí)間的CRT顯示器,卻基本沒有這些情況出現(xiàn)?,F(xiàn)在的通過TCO03認(rèn)證的CRT顯示器,其實(shí)外露的輻射已經(jīng)相當(dāng)小了,基本上對(duì)人已經(jīng)沒有多大的傷害了,閃爍感也可以通過調(diào)節(jié)刷新率來降低,筆者實(shí)在是搞不懂為什么很多人非要去選擇液晶顯示器,還非要說液晶顯示器不傷眼睛??一個(gè)最差的17寸液晶顯示器的價(jià)格,能買一臺(tái)不錯(cuò)的、通過TCO03標(biāo)準(zhǔn)的19寸CRT了,顯示面積也差不多大,而且CRT又比液晶更保護(hù)眼睛,液晶顯示器唯一的一個(gè)優(yōu)點(diǎn)就是占用空間小而已,其他的統(tǒng)統(tǒng)是缺點(diǎn),為什么不選擇CRT呢??說到TCO03標(biāo)準(zhǔn),現(xiàn)在很多的號(hào)稱是通過TCO03認(rèn)證的顯示器,其實(shí)都是貼牌的,都沒有真正的通過,關(guān)于怎樣鑒別一臺(tái)TCO03的顯示器,網(wǎng)上已經(jīng)有很多文章可以搜索到,筆者在此不想過多敘述,只是提醒大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年陜西寧陜縣文化旅游投資開發(fā)有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 2025年版?zhèn)€人房產(chǎn)出售交易資金監(jiān)管及風(fēng)險(xiǎn)控制合同
- 2025年全球及中國(guó)阻燃塑料膜行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球3D激光雷達(dá)掃描儀行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球低截止光纖行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)有機(jī)硅柔性皮膚粘合劑行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025版無證二手房交易合同糾紛調(diào)解及賠償協(xié)議3篇
- 委托接送子女上下學(xué)合同
- 教育政策解讀與匯報(bào)策略
- 二零二五年度廚師個(gè)人工作室聘用合同規(guī)范4篇
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 玩具有害物質(zhì)風(fēng)險(xiǎn)評(píng)估-洞察分析
- 2024年河南省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 企業(yè)合規(guī)管理實(shí)務(wù)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
- Hypermesh lsdyna轉(zhuǎn)動(dòng)副連接課件完整版
- 小學(xué)六年級(jí)數(shù)學(xué)計(jì)算題100道(含答案)
評(píng)論
0/150
提交評(píng)論