基于Golang的社區論壇系統設計與開發_第1頁
基于Golang的社區論壇系統設計與開發_第2頁
基于Golang的社區論壇系統設計與開發_第3頁
基于Golang的社區論壇系統設計與開發_第4頁
基于Golang的社區論壇系統設計與開發_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于Golang的社區論壇系統設計與開發【摘要】隨著我國計算機應用的普及和互聯網的飛速發展,BBS逐漸被人們所認可。1997年,論壇(BBS)真正在中國起飛。2001年,戴志康發布了Discuz軟件,鼓勵建立中文論壇,真正開創了中文論壇的新紀元。在社區論壇系統中人們可以通過網絡日志記錄自己的學習過程并與他人分享,從而更有利于人與人之間建立學習興趣小組為專業的學習提供更多的便捷,從而提高交流效率。在社區網絡系統中,用戶可以獲得信息檢索檢索、信息發布、科研討論等各種信息服務。本系統主要描述的是利用Golang語言及其框架Gin結合Vue3.0Axios等主流技術,使用前后端分離模式開發出一套Web體系的社區論壇系統。讓諸多用戶可以在系統中進行文章的發表及其對文章知識的見解,同時也可以與其他用戶在論壇之中進行友好的互動交流,從而在系統中獲取可信、可靠的知識,以及不斷的提升技術能力等諸多用處。【關鍵詞】論壇系統;Golang語言;Gin框架;Vue3.0技術概述1.1研究背景及意義由于我國計算機應用的大面積普及和互聯網技術也在飛速的蓬勃發展,BBS逐漸進入人們的眼簾并被人們所認可。1997年,論壇(BBS)真正在中國起飛。2001年,戴志康發布了Discuz軟件,鼓勵建立中文論壇,這才真正開創了中文論壇的新紀元[1]。早期的社區論壇在本質上類似于大街小巷的公告牌,它的功能只能用來發布新消息。隨著我國信息量急劇增長,信息化建設也在不斷深入,互聯網技術的發展也帶動了社區論壇的發展。在人們的現實生活中交流上難免會存在時間和空間的局限性以及交流人群存在單一性、交流范圍狹窄,這些因素使人們無法辨認所獲取消息的時效性、準確性、真實性。隨著BBS被廣泛應用在個人電腦上,論壇才開始真正的流行起來。社區論壇不僅僅是一個能同時向無數個人提供開放性的討論系統,還是個擁有強大的、實時的交互功能和信息交流的多功能集一身的優質平臺,可以在此論壇上發表自己的所思所想、技術經驗乃至自己的人生感悟等。人們可以通過社區論壇的交流擴大交流面,與此同時又能積極而及時地參與討論,每個用戶也可從不同方面獲取自己所需要的各種信息,增強個人與個人之間的交流聯系。社區論壇不僅僅是打破了地域限制以及時間限制并且使信息得到了共享,讓每個用戶都可以在論壇上在以不涉及他人利益以及觸犯法律法規的前提下自由地發表自己的意見與觀點暢所欲言,并且能直接與其他用戶在線上進行實時的有效的高質量的溝通,以便進行學術上、生活上的交流探討,從而改變了人們的思維方式。同時社區論壇也是宣傳個人技能的重要手段之一,它已經成為現代人溝通和獲取信息來源的重要組成部分。1.2研究概括1978年在美國芝加哥開發出一套基于8080芯片的CBBS/Chicago(ComputerizedBulletinBoardSystem/Chicago),這是最早開發的一套BBS系統[2]。我國的論壇系統在1997年達到一個發展頂峰,各種論壇系統大量涌現,論壇功能不斷改進,內容涉及領域幾乎無所不包。1983年,經過CPCUG的不懈努力和ThomasMach的辛勤付出,終于在千辛萬苦之下完成了BBS-System-RBBS-PC個人計算機的第一版。他也因此贏得了BBS創始人的美譽。據不完全統計,每年使用BBS的網民數量逐年增加,由此可見BBS論壇在互聯網中有著舉足輕重的地位。由于網上論壇具有實用性強、操作簡單等特性,它在未來發展的道路上肯定會向著個性化和專業化方向發展。1.3論文結構本文章主要描述的是利用Golang語言及其框架Gin結合Vue3.0Axios等主流技術,使用前后端分離模式開發出一套Web體系的論壇系統。讓諸多用戶可以在系統中進行文章的發表及其對文章知識的見解,同時也可以與其他用戶在論壇之中進行友好的互動交流,從而在系統中獲取可信、可靠的知識,以及不斷的提升技術能力等諸多用處。文章結構安排如下:第1章緒論簡要介紹了研究背景和選題的重要性,分析了國內外該選題的研究現狀,明確了文章的主要內容和結構。第2章可行性研究,探討論壇系統在社會、技術和運營方面的可行性。并簡要介紹了開發系統中使用的技術選項。第3章進行論壇系統的需求分析,在論壇的基本需求提取出系統的功能模型的基礎上以及系統的用戶需求功能模型聯合E-R模型、數據流等方式設計出數據庫。第4章對于論壇系統的構想和實施,通過需求分析得出論壇系統的功能模塊,然后進行構想和實施。第5章系統測試,簡述軟件測試的意義與目的,表明常見的軟件測試方法,并且編寫軟件測試用例。從而得到軟件測試結論。第6章總結與展望,本系統和論文工作進行總結經驗以及對未來的展望。

2關鍵技術介紹2.1系統相關技術介紹2.1.1GolangGolang是Google開源的一種靜態強類型、并發型、編譯型等功能特性的編程語言[3]。垃圾回收功能是Golang特點之一,其為內存進行管理,減少了開發者在開發時為內存管理額外增加的心智負擔。Golang的并行模型也是其優點之一,以Hoare的CSP通信順序進程論文為基礎。通過Goroutine和channel等為并發、并行開發提供了非常高效且穩定的技術支持。2.1.2JsonWebTokenJsonWebToken是用以產生訪問令牌的開源標準之一,是目前最流行的跨域認證解決方案。原理是當服務器認證身份后,生成一個Json對象,由此信息經過數字簽名后,回送給用戶,因此可以信任及驗證,此后用戶與服務端進行通信時,都發送這個Json對象進行身份認定。從而使服務器編程無狀態不需要依賴傳統的session機制,并較容易的實現擴展。JsonWebToken可以使用HMAC算法、RSA或者ECDSA的公鑰/密鑰的方式對其進行簽名,因此經常使用在授權、信息交換等場景中。2.1.3對象存儲服務OOS對象存儲是計算機數據存儲架構之一,將數據進行管理時將數據當作一個對象,其通常包括元數據、數據本身及唯一標識。對象存儲的實現可以在多個層面,含括接口層面、軟件系統層面、物理設備層面。每種情況都試圖實現其他存儲架構不具備的能力。目前各個云服務商提供的安全、海量、高持久、低成本的云存儲服務,具有與平臺無關的特性,可以在任何應用、任何地點、任何時間訪問任意類型的數據。2.1.4MVCMVC是一種設計模式,它使應用程序強制性輸入、處理和輸出分離開[4]。目前單體應用開發設計規范還是以MVC為主,其三層架構,其主要思想是將一個系統劃分為模型、視圖、控制器三個模塊。它們各自處理好自己負責的部分。訪問數據的對象和與請求相關的不同業務邏輯可以稱為模型,模型表示企業數據和業務規則。視圖是數據的可視化,規劃視圖之間的集成邏輯在視圖中顯示模型顯示在控制器中由模型的業務邏輯更新的視圖顯示日期和類似內容不影響顯示層。提高了代碼的復用性,減少了耦合。2.1.5MVVMMVVM為Model、View以及ViewModel的縮寫。它本質上是MVC的增強版本,MVC是現代信息技術發展起來的一種軟件設計規范,常用于前后端分離的應用系統中。使MVC規范分離,但對于前端來說,獲取數據后還需要對DOM進行操作在前端頁面的開發中,一個基于MVVM的框架逐漸將小時slen模型展示到了軸視圖的邊界的分離。ViewModel執行模型和數據庫的規劃。當模型數據發生更新時,同步ViewModel視圖,當視圖更新時,ViewModel的數據也會發生更新。2.1.6Redis在Java開發的項目管理工具中尤為出色及廣泛使用的工具是Maven,提供了創建完整生命周期框架的機會。而大多數框架均提供了Maven依賴地址,所以開發人員在搭建環境使只需引入依賴地址而不再像平常一樣需要下載到本地在進行導入Jar包等即占空間又繁重的操作使JavaEE開發更加便捷。2.1.7Vue3.0漸進式前端框架中Vue社區是較為壯大的,Vue的核心開發規范設計原則是自底向上擴展。完整的文檔和前端技術,只需要簡單的前端基礎知識,便可以上手學習使用Vue進行開發。其目標是簡單的實現數據與視圖組件的綁定,目前足夠任何規模的前端頁面開發,是大中小公司的最佳選擇。2.1.8ElementUI諸多的組件框架中,ElementUI是采用Vue作為基礎框架實現的樣式組件庫,能夠很好的設計企業級后臺、前臺應用[5]。極大時間的減少時間成本以及人力成本,與Vue框架配合十分便捷的開發出各式應用。2.1.9AxiosAxios是前端Ajax框架可以異步運行并發起HTTP請求,使數據請求可以同時請求渲染,是目前為止前后端分離技術主要實施方案。較少用戶頁面的等待時間,提高用戶的體驗感,能夠接受批處理,截取返回值,對請求進行數據加載等。2.1.10MysqlMySQL是許多數據庫管理系統中的關系實現。由于其開源和快速的功能,它被廣泛使用。它使用SQL對數據庫進行管理,并且具有查詢優化算法以提高查詢效率的功能。底層源代碼采用C/C++開發設計,同時提供多種編程語言的數據庫操作接口,方便了應用系統開發過程中開發者數據的基本存儲需求。主要的功能為將各種類型的數據庫建立聯系并讓它們溝通,及時獲取彼此想得到的關鍵信息為在短時間做出更好更快更準確無誤的決策。2.1.11XORMxorm是Go語言ORM庫之一。它簡單而強大,可以使數據庫操作變得非常容易。支持Struct與數據庫表的靈活映射,支持自動同步,支持事務,支持原始SQL語句和ORM操作混合執行,支持schema支持,支持通過xor[6]m。io在數據庫上自動生成xorm倉庫結構/reverse,支持保存版本(即樂觀鎖),通過socket內置支持xorm。io/builderSQLBuilder等功能。2.1.12郵箱服務SMTPSMTP的全稱是“SimpleMailTransferProtocol”,即簡單郵件傳輸協議。它是一組用于將郵件從源地址轉發到目標地址的規范,以及通過它控制郵件傳輸的方法。SMTP屬于TCP/IP協議族,它可以幫助每臺計算機在發送或傳輸信件時找到下一個目的地。SMTP服務器是遵循SMTP協議的外發郵件服務器。SMTP身份驗證只是意味著您需要在連接到SMTP服務器之前提供您的帳戶名和密碼,以便垃圾郵件發送者無法訪問它。添加SMTP認證的主要目的就是為了防止用戶受到垃圾郵件的騷擾而造成不必要的困擾。

3需求分析3.1社會可行性伴隨著互聯網技術爆發性發展,論壇早已成為具有普遍性且簡便的網絡交流方式之一。在各種論壇中,各種信息服務可以供用戶十分便捷的預覽,例如:對信息查詢、信息發布、知識探討、聊天交友等等。由于社會對網絡對普及,論壇這種網上交流方式在我們生活中涵蓋了各個方面,已經變成當今不可缺少信息資源之一。另一方面,根據國家法律、政策等,該系統由本人開發,在法律各方面不受限制。現在論壇系統是人們在上網時刻不可或缺的工具之一,因此該論壇系統的開發在社會方面是可行的。3.2技術可行性本系統由Golang、Gin、JsonWebToken、XORM、Mysql、Redis、Vue3.0、ElementUI、Axios、OOS、STMP等技術開發。使用Vue3.0、ElementUI、Axios等技術對前端界面進行設計并實現。其中XORM、Mysql等技術完成數據層的存儲、更新、查詢等功能。使用Golang及其框架Gin為Web服務提供輕便、穩定、跨平臺、可移植等多種特效,為軟件開發提供十分便捷的環境以及穩定的技術支持。使用JsonWebToken對賬號進身份認證。為使該系統的可靠性在業界能夠得到保證,因此使用Gin+JsonWebToken+XORM+Redis+Vue3.0+ElementUI等技術,確保系統的技術可行。3.3操作可行性在如今快速發展的互聯網時代,上網查詢信息就如同家常便飯般,在生活中十分普及,以及這是一個可視化操作,只需操控鍵盤及鼠標在論壇上進行信息查詢、瀏覽等等,因而本系統在操作方面不具備任何困難。論壇系統為廣大人民群眾提供了一個可以平等交流,自由發表言論的相對綠色健康的平臺,成為人與人之間彼此溝通進行信息交流統籌的主要方式之一,在論壇系統中人們可以各抒己見,現如今人們離不開互聯網,也離不開交流,身處論壇系統中會讓身處各地的使用者感覺彼此的距離不再是那么的遙不可及。3.4系統功能模塊概述和分析論壇系統主要包括文章發布、文章修改、文章更新、分類搜索、關注文章、發表評論、回復評論、注冊登錄等基本功能。本系統在設計及開發等過程之中,十分嚴格的按照軟件技術規范要求進行一步一步開發,使用規范來提高軟件內聚性降低代碼之間的耦合程度,系統的穩定性、可擴展性等得到顯著提高[6]。本論壇系統的界面設計風格在簡約的同時又不失美觀,既給使用者提供了各類信息的快速來源又使信息更加方便、便捷又安全。論壇系統主要功能如下:1.用戶管理:注冊用戶信息、登錄、退出登陸、修改密碼、修改個人信息、郵箱認證2.論壇:發布文章、刪除文章、發表評論、回復評論3.5系統功能模塊設計用戶通過登陸按鈕進行頁面的跳轉,首次可通過免密碼登陸用手機號作為賬號,隨后輸入驗證碼,方可進入主頁。主頁有文章、評論、登陸、用戶四大模塊,根據系統分析繪制出以下的系統的功能模塊圖,如下圖3-1所示。圖3-1論壇功能模塊圖根據系統分析繪制出以下的用戶系統的用例圖,如下圖3-2所示。圖3-2用戶系統用例圖對于圖3-2用戶系統用例圖能夠再進行細化。具體細分為,用戶的相關用例有:注冊、登錄、修改個人信息、修改用戶昵稱、修改用戶頭像、發布帖子、瀏覽帖子、回復帖子,如下圖3-3所示。圖3-3用戶用例圖3.6數據庫分析用大量數據對手機及其進行處理并存儲是所有系統的基礎功能之一,所以數據庫系統成為任何軟件系統的基礎部件。在本次系統開發中將Mysql作為論壇系統的數據庫管理系統。3.6.1概念模型設計概念模型設計是在數據庫分析之后對信息的抽取、建模,對數據庫的物理實現并不存在必要關聯,概念模型使數據庫設計人員能夠在設計概念模型的過程中,對問題模型的見解再多進一步從而轉化為數據庫設計,通常將現實世界的問題抽象、處理并設計出概念模型[7]。(1)實體(entity)客觀世界中唯一存在的對象,抽象的概念或者具體的人、事、物均可用實體表示。(2)聯系(relationship)客觀世界中事物之間是有聯系的,基本聯系的方式目前主要有一個對一個,一個對多個,多個對多個三種。(3)屬性(attribute)屬性是實體特征對的表示,一個實體可以同時擁有多個屬性。E-R圖是實體-聯系圖的簡記,一般我們用E-R圖來建立關系數據模型,E-R圖包含了實體、關系和屬性三個組成結構。在本論壇系統中數據表的設計如下所示,創建人、創建時間、更新時間在各個表中,按分析主要實體有:用戶實體、文章實體、評論實體、文章和評論中間表、文章和分類中間表、分類實體、文章和關注中間表、評論父子間層級中間表。各個實體具有的屬性值如下:用戶表用戶的信息應該具有唯一標識以及對用戶對信息描述及其擁有的賬號密碼信息。應包含屬性:用戶唯一標識、昵稱、郵箱地址、手機號、密碼、頭像、狀態、個人信息描述,如下圖3-4所示。圖3-4用戶實體文章表文章表應該具有文章內容、文章的描述、文章的標題、創建人、創建人信息、是否私有、文章的關注數、文章的評論數等。應包含屬性:文章唯一標識、標題、描述、內容、創建者唯一標識、創建者昵稱、創建者頭像、私有標識、目錄、評論數、關注數,如下圖3-5所示。圖3-5文章實體文章關注表文章關注表對用戶及其關注的文章做唯一關聯防止出現重復記錄用戶關注事件。應包含屬性:文章關注唯一標識、文章唯一標識、用戶唯一標識,如下圖3-6所示。圖3-6文章關注表分類表用戶在發表文章時,可以對文章進行分類,從而達到對文章快速檢索,突出文章要表達對相關內容。應包含屬性:分類唯一標識、分類名,如下圖3-7所示。圖3-7分類實體文章分類表文章分類表用來對文章及其分類作唯一記錄。以便可以通過分類來快速檢索出想要了解的知識其他相關內容。應包含屬性:文章分類唯一標識、分類唯一標識、文章唯一標識,如下圖3-8所示。圖3-8分類文章中間表評論表用戶在閱讀文章知識時,有可能產生疑惑或者文章內容有出錯或者有更好的實現方式時,均可以在文章下方中發表評論,從而在網上互相交流探討知識。應包含屬性:評論唯一標識、文章唯一標識、評論用戶唯一標識、評論用戶昵稱、評論用戶頭像、父級評論唯一標識、回復者唯一標識、回復者昵稱、回復者頭像、評論狀態,如下圖3-9所示。圖3-9評論實體評論信息用戶可以對論題進行評論,并回復其他用戶的評論,管理員可以管理評論。應包含屬性:唯一標識、論題標識、是否是根評論、根評論標識、評論內容、狀態。評論層級表用于在閱讀文章時,同時可以閱讀到其他用戶對文章發表的評論內容,若用戶對該評論內容有更深的見解或者有疑問均可以對評論在進行評論,所以添加評論層級表來標識評論之間的層級關系,可以更方便的檢索、組織用戶評論的層級關系。應包含屬性:評論層級唯一標識、父級評論唯一標識、子級評論唯一標識,如下圖3-10所示。圖3-10評論層級中間表E-R模型的聯系是用于實體與實體之間的聯系,可以用于兩個實體之間也可以用于多個實體之間。是對局部結構中任一兩個實體類型,根據需求分析結果構建它們之間的聯系。如果有聯系需要進一步確認關系是一對一,一對多,還是多對多。通過對數據流程分析,建立了系統的全局E-R模型。如下圖3-11所示。圖3-11全局E-R模型3.6.2數據庫表設計E-R模型和數據庫管理系統依據數據庫表的設計使產品能夠支持的數據模型相適應,對功能方面、性能方面要充分評估及檢查是否滿足用戶需求。本系統數據庫主要有七張數據庫表,這七張數據庫表分別為:用戶表user,文章表article,文章關注中間表article_star,評論信息表comment,評論層級中間表comment_index,分類表category,分類和文章中間表category_article,這主要的七張表的內容具體如下表所示:用戶表:user用戶表包括唯一標識、昵稱、手機聯系方式、郵箱地址、密碼、描述、狀態、頭像、創建時間以及更新時間,如下表3-1所示。表3-1用戶表屬性名屬性類型描述Idint(11)NOTNULL唯一標識Nicknamevarchar(255)NULL昵稱Phonevarchar(255)NULL手機聯系方式Emailvarchar(255)NULL郵箱地址Passwordvarchar(255)NULL密碼DescriptionText描述Statustinyint(1)NULL狀態Avatarvarchar(255)NULL頭像create_timetimestampNULL創建時間update_timetimestampNULL更新時間文章表:article文章表包括唯一標識、標題、內容、描述、狀態、用戶唯一標識、用戶昵稱、用戶頭像、回復用戶唯一標識、回復用戶昵稱、回復用戶頭像、創建時間、文章是否私有、目錄、更新時間、文章評論數、文章關注數等,如下表3-2所示。表3-2文章表屬性名屬性類型描述Idint(11)NOTNULL唯一標識Titlevarchar(255)NULL標題ContenttextNULL內容DescriptiontextNULL描述StatusTinyintNULL狀態user_idint(11)NULL用戶唯一標識user_namevarchar(255)NULL用戶昵稱user_avatarvarchar(255)NULL用戶頭像reply_idint(11)NULL回復用戶唯一標識reply_namevarchar(255)NULL回復用戶昵稱reply_avatarvarchar(255)NULL回復用戶頭像create_timetimestampNULL創建時間is_privatetinyint(1)NULL文章是否私有CataloguelongtextNULL目錄update_timetimestampNULL更新時間comment_numint(64)NULL文章評論數star_numint(64)NULL文章關注數文章關注中間表:article_star文章關注中間表包括唯一標識、文章唯一標識、用戶唯一標識、創建時間以及更新時間,如下表3-3所示。表3-3文章關注中間表屬性名屬性類型描述Idint(11)NOTNULL唯一標識article_idint(11)NULL文章唯一標識user_idint(11)NULL用戶唯一標識create_timetimestampNULL創建時間update_timetimestampNULL更新時間評論信息表:comment評論信息表包括唯一標識、文章唯一標識、父級評論唯一標識、用戶唯一標識、用戶昵稱、用戶頭像、回復用戶唯一標識、回復用戶昵稱、回復用戶頭像、創建時間、評論內容、評論狀態、更新時間等,如下表3-4所示。表3-4評論信息表屬性名屬性類型描述Idint(11)NOTNULL唯一標識article_idint(64)NULL文章唯一標識parent_idint(64)NULL父級評論唯一標識user_idint(11)NULL用戶唯一標識user_namevarchar(255)NULL用戶昵稱user_avatarvarchar(255)NULL用戶頭像reply_idint(11)NULL回復用戶唯一標識reply_namevarchar(255)NULL回復用戶昵稱reply_avatarvarchar(255)NULL回復用戶頭像create_timetimestampNULL創建時間ContentText評論內容StatusTinyint評論狀態update_timetimestampNULL更新時間評論層級中間表:comment_index評論層級中間表包括唯一標識、父級評論唯一標識、子級評論唯一標識、提交時間以及更新時間,如下表3-5所示。表3-5評論層級中間表屬性名屬性類型描述Idint(11)NOTNULL唯一標識parent_idint(11)NULL父級評論唯一標識child_idInt(11))NULL子級評論唯一標識create_timetimestampNULL提交時間update_timetimestampNULL更新時間分類表:category分類表包括唯一標識、分類名、創建時間以及更新時間,如下表3-6所示。表3-6分類表屬性名屬性類型描述Idint(11)NOTNULL唯一標識Namevarchar(255)NULL分類名create_timetimestampNULL創建時間update_timetimestampNULL更新時間分類和文章中間表:category_article分類和文章中間表包括唯一標識、父級唯一標識、文章唯一標識、創建時間以及更新時間,如下表3-7所示。表3-7分類和文章中間表屬性名屬性類型描述Idint(11)NOTNULL唯一標識category_idint(11)NOTNULL分類唯一標識article_idint(64)NULL文章唯一標識create_timetimestampNULL創建時間update_timetimestampNULL更新時間

4論壇平臺設計與實現論壇平臺提供文章瀏覽、論壇登陸、個人信息查看、個人信息修改以及郵箱認證等功能,界面美觀、布局清晰、條理清楚能使用戶在使用平臺式論壇時更加快地上手。4.1首頁設計首頁的布局分頭部、中部、尾部三部分,如下圖4-1所示。圖4-1首頁頁首布局元素頭部布局中首要元素是網站導航:網站導航部分提供首頁、文章、用戶信息的跳轉標識,用戶在瀏覽論壇時可通過導航直接跳轉到存在的相應頁面中瀏覽相應的功能。中部布局元素中部布局元素添加了對Algorithm、GameProgramming、ApplicationProgramming等信息描述,對論壇是什么類型的論壇進行補充。頁腳布局元素頁腳布局中元素有展示關于論壇連接以及一些相關的論壇推薦等。4.2文章模塊文章模塊為論壇系統提供文章詳情瀏覽、文章發布、文章修改、文章關注、文章排行榜等功能。并且可通過分類或者文章標題或者分類加文章標題的形式進行文章的搜索,在文章排行榜還能看到排名前10的受關注文章列表。4.2.1文章列表當用戶點擊導航欄中的文章標識時,論壇就會跳轉到文章列表頁面。文章列表按線性布局加分頁的方式進行展示。在當前頁面中還可以看到關注前10的排行榜信息,以及用戶可以點擊分類選擇及輸入文章標題進行文章的搜索,如圖4-2所示。圖4-2文章列表界面4.2.2文章詳情當點擊某個文章時可跳轉到文章詳情頁面中,查看文章的詳細信息。例如發布人信息、文章標題、文章描述、文章內容、文章目錄等等,如圖4-3所示。圖4-3文章詳細信息界面4.2.3文章關注在文章詳情列表中,我們可以點擊星號進行文章關注,如圖4-4所示。圖4-4文章關注界面4.3評論模塊用戶在瀏覽文章時,如果對文章有更好的見解或者存在疑問時均可在文章詳情中發表自己的評論,并且在評論中對評論有疑問或者有更深的見解也可以對評論進行回復。4.3.1評論列表評論模塊處于文章的詳情頁中,如圖4-5所示。圖4-5評論列表4.4登陸注冊模塊登陸模塊功能包括手機號加驗證碼方式進行登陸、手機號加密碼方式進行登陸、手機號加驗證碼方式進行用戶注冊、郵箱地址加密碼方式進行登陸四種模式。4.4.1登陸頁面在登陸的時候,如果用戶沒有本論壇的用戶和密碼,則需要先進行注冊操作。在注冊頁面用戶可以通過以下三種方式進行登陸:手機號加驗證碼方式進行登陸、手機號加密碼方式進行登陸、郵箱地址加密碼方式。如果注冊的信息合法則注冊成功,如果信息不合法則必須重新填寫正確的注冊信息,一直到注冊成功。一旦注冊成功會自動跳轉至論壇首頁頁面。登陸完成后才可以進行后續的文章發布、文章關注、文章評論、個人信息查詢、個人信息修改等諸多論壇系統功能,如圖4-6、圖4-7、圖4-8所示。圖4-6手機號加驗證碼登陸頁面圖4-7手機號加密碼登陸頁面圖4-8郵箱地址加驗證碼登陸頁面4.4.2注冊頁面用戶可以通過手機號加驗證碼的方式進行登陸,若是首次登陸則會進行系統賬號的注冊。系統首先會自動默認填充用戶信息,注冊完成之后會自動跳轉至論壇首頁頁面,此時用戶就可以點擊右上角的用戶頭像在個人中心頁面進行自我信息的修改、郵箱認證等諸多操作,如圖4-9、圖4-10所示。圖4-9注冊頁面圖4-10個人中心頁面4.5用戶信息模塊用戶信息模塊提供用戶的基本信息瀏覽,用戶的基本信息修改,以及用戶的密碼重置、用戶的郵箱認證等功能。4.5.1個人信息頁面在導航欄中點擊用戶頭像可以出現個人中心按鈕,點擊個人中心按鈕后可以直接跳轉到用戶個人信息頁面,如圖4-11所示。圖4-11個人信息頁面4.5.2個人信息編輯頁面用戶在個人中心頁面中點擊編輯按鈕便可對用戶的基本信息:頭像、用戶昵稱、個人簡介等進行修改,也可點擊用戶頭像直接進行換頭像操作,如圖4-12所示。圖4-12個人信息編輯頁面4.5.3重置密碼頁面用戶在個人中心頁面中點擊重置密碼按鈕,可以跳轉至重置密碼頁面,可以直接對用戶的密碼進行修改。后續也可以通過手機號加密碼的方式或者郵箱認證后,郵箱地址加密碼的方式進行系統的登陸,如圖4-13所示。圖4-13重置密碼頁面4.5.4郵箱認證頁面在個人中心頁面用戶點擊郵箱認證按鈕可以跳轉郵箱認證頁面,郵箱認證頁面提供了用戶的郵箱地址認證功能,郵箱地址認證完成后,可以直接通過郵箱地址加密碼的方式在本系統中進行登陸以便使用本系統的諸多功能,如圖4-14所示。圖4-14郵箱認證頁面

5系統的實現與測試測試的目標與目的在設計、開發軟件系統的過程之中,軟件開發成員要不斷地進行回歸測試和開發,達到及時發現BUG并及時糾正的目標,完全避免由于系統龐大而造成的BUG定位不當,降低系統需要重新推倒制作的可能性。在軟件測試中,對系統測試報告的分析可以為以后系統的改進提供基準和論證。測試完成后,會提供系統穩定性的錯誤報告。5.2測試用例以文章功能進行測試,具體如表5-1所示。表5-1發布文章案例功能特性文章發布表單驗證測試目的驗證文章發布是否生成正確的文章測試數據標題:test1分類:Go描述:測試一下發布文章是否成功

是否開放:是內容:<h1id="catalogue-0">aaaaa</h1><p>bbbbb</p><h1id="catalogue-1">ccccc</h1><p>dddddd</p><h1id="catalogue-2">eeeee</h1><p>eeee</p><p>aaaaa66666</p><p>asdsad</p>測試內容操作描述數據期望結果實際結果測試狀態1輸入描述、選擇分類、選擇開放、輸入內容分類:Go描述:測試一下發布文章是否成功

是否開放:是內容:<h1id="catalogue-0">aaaaa</h1><p>bbbbb</p><h1id="catalogue-1">ccccc</h1><p>dddddd</p><h1id="catalogue-2">eeeee</h1><p>eeee</p><p>aaaaa66666</p><p>asdsad</p>提示框彈出失敗消息提示“文章標題不能為空!”提示框彈出失敗消息提示“文章標題不能為空!”與期望結果相同2輸入標題、選擇分類、選擇開放、輸入內容標題:測試一下分類:Go描述:測試一下發布文章是否成功

是否開放:是內容:<h1id="catalogue-0">aaaaa</h1><p>bbbbb</p><h1id="catalogue-1">ccccc</h1><p>dddddd</p><h1id="catalogue-2">eeeee</h1><p>eeee</p><p>aaaaa66666</p><p>asdsad</p>提示框彈出失敗消息提示“文章描述不能為空!”提示框彈出失敗消息提示“文章描述不能為空!”與期望結果相同3輸入標題、選擇分類、輸入描述、選擇開放標題:測試一下分類:Go描述:測試一下發布文章是否成功

是否開放:是內容:<h1id="catalogue-0">aaaaa</h1><p>bbbbb</p><h1id="catalogue-1">ccccc</h1><p>dddddd</p><h1id="catalogue-2">eeeee</h1><p>eeee</p><p>aaaaa66666</p><p>asdsad</p>提示框彈出失敗消息提示“文章內容不能為空!”提示框彈出失敗消息提示“文章內容不能為空!”與期望結果相同5.3測試結論系統可以完全無BUG運行,并且系統和平臺在管理員和用戶正確規范的情況下,系統和平臺總是給出正確的答案。

6總結與展望隨著互聯網技術的發展,每一個網民都在網絡上有著自己感興趣的話題或者在某一個領域有著自己對的獨特見解,并且在遇到自己無法解決的問題時需要他人的幫助需要與他人進行交流,這種需求之下論壇就誕生了。通過對這個論壇項目開發,讓我對搭建web系統前后端開發框架環境有了更完整的認識,同時也加深了對Golang開發技能的理解和認識,提高了很多技能點。在這個開發過程中,最寶貴的經驗是,我們首先要做好技術的選擇,才能開發出一個系統。如果技術框架可行,不做任何改動,效率很低。無論是理論上還是從實踐上都可以學到很多知識。開發系統時,不要馬上編程;相反,在線執行需求分析、文件分類和數據收集。只有在編寫好相關的開發文檔后,做好數據庫和代碼的分析和設計,才能高效的開發軟件。每當遇到BUG時,都應該耐心地查看bug報告中的信息。我真的不知道如何在百度上解決它。如果遇到BUG,這也是一種做法。如果你不畏懼努力,勤奮學習,不斷精進技術,提高自身解決問題的能力,困難就會迎刃而解。在系統開發過程中獲得的經驗不僅是技術方面的,也是個人方面的。

參考文獻[1] 艾倫

A.A.多諾萬,Go程序設計語言

,機械工業出版社,2016,6-8.[2] 梁灝,Vue.js實戰[M],清華大學出版社,2017,6-8.[3] 楊開振,深入淺出SpringBoot2.x[M],人民郵電出版社,2018,6-8.[4] 埃里克·埃文斯(EricEvans),軟件核心復雜性應對之道[M],人民郵電出版社,2016,9.[5] 周德偉

覃國蓉,MySQL數據庫基礎實例教程[M],人民郵電出版社,2017,9.[6] 朱少民,全程軟件測試[M],人民郵電出版社,2019,33.[7] 王朔韜,軟件是這樣“煉”成的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論