web前后端分离的即时问答社区的实现(源码)

摘 要本次设计主要是围绕基于web前后端分离的技术开发即时问答社区。我很看重基于web前后端分离的技术实现,便于前后端能更独立地进行开发,并在实践中,希望能开发一个即时问答社区,能有效地进行问答的即时沟通和快速地进行问答归档,有助于将好的答案沉淀成好的内容。我将采用基于前端使用vuejs开发单页面应用,通过LeanCloud JS SDK与后端云函数进行有效地通信实现数据的传输,同时后端将采用Express运行于LeanCloud云引擎中,实现应用服务,数据库采用LeanCloud数据服务,将前端、后端、数据库能很好地协作完成整个应。本次即时问答应用主要完成用户注册/登录、问答列表和精华答案信息、主题群列表、主题群即时聊天、问答内容标记这些功能。通过一段时间的开发,该即时问答社区基本达到了预想的设计,经过软件设计、详细开发,使用前后端分离的web开发技术,将前后端开发有效分离,让我更加明确了前后端分离的开发技术,同时有了更进一步的技术积累,功能可以良好地使用。但美中会有些不足的是,对于个人开发可能还需要进一步提高自己的技术水平,实现更加高效的开发。软件中也有很多值得进一步优化的地方,比如可以更丰富用户体验操作。
目 录
第一章 绪论 1
1.1课题背景 1
1.2 web前后端分离的技术 1
第二章 开发详述 3
2.1技术选型 3
2.2 数据库设计 3
2.3软件的目录结构说明 5
2.4 具体模块开发 7
2.5 上线测试 8
第三章 软件设计 10
3.1功能结构 10
3.2软件信息结构 11
3.3 原型设计 12
第四章 软件说明 14
4.1 运行环境说明 14
4.2 功能说明 14
结束语 17
致 谢 18
参考文献 19
第一章 绪论
1.1课题背景
为什么我想做一个即时问答社区?其实来源很简单,更多是因为我长期在技术学习中,每天都会需要解决一个个问题,经常会通过搜索引擎搜索、QQ群,进行问题的沟通,但是,这两
 *好棒文|www.hbsrm.com +Q: &351916072& 
种形式的解决途径都有一定的缺点,搜索引擎搜索的问题在于搜出的答案良莠不齐,也很难非常高效的得到良好的答案,也很难直观地和先前的答题者提问者进行有效的沟通,增进问题的深度,增强技术氛围。当然,QQ群去和同样有兴趣爱好的伙伴沟通和问答非常即时也高效,但是最大的弊病是在QQ群中有价值的问答都不能得到最有效地将有用的问答进行归档。所以我很希望能有一个即时问答的沟通工具,让在同一个主题下的开发者能更高效得进行问答,也能即时地将有用的问答得到高效的归档。这点是我这次开发内容的初衷,虽然更多的是从我自身的需求出发的,不过的确也会是一个有趣有意思的软件,至少有助于我自己对软件的认知和对好工具的进一步感知。
1.2 web前后端分离的技术
在web开发甚行的当下,作为一名刚刚入行的开发小生,先是接触了非常常规的前后端高耦合的web开发技术,这种开发技术最流行的开发方案是基于java进行开发的,在这种开发方案中,Java将自己的代码直接插入到 html文件中实现动态渲染,其实使用的是jsp转换成servlet的方式进行前端页面渲染的,这种开发模式下的前后端基本不存在分离的概念。可能说,个人开发的感受不会有多少,毕竟同一个时段一个人能专注的也就是一件事情,要开发完整的web应用需要逐步进行,但对于团队开发的时候,这就不同而语了,可能在团队协作中上面的java的前后端实现方法可以说在人员的分工上,可以简单得实现前后端分工,但是谈不上前后端的分离,因为往往前端所需要专注的技术本应该是html、css、javascript,但是在前面这种开发模式中分配到前端工作的人员,需要承接jsp和部分java传递参数和渲染的工作。
在之后我接触的基于php的开发技术上,我又一次感受到了后端技术人员往往要兼顾前端工作的痛苦,为什么呢,因为依旧通过模板渲染前端,很多php代码需要插入到前端模板引擎中去,致使前后端的代码和逻辑的黏连非常紧凑,让前端开发人员变得非常局促,使前端在页面上能做的事情变得难以下手。所以在上一个web开发年代很少存在说前端开发工程师的职位,更多是偏向于设计偏向于页面的页面制作者,不存在非常专业的前端工程师岗位,虽然在国外很早就又很多很棒的工程师在专注前端开发,从2005年谷歌推广ajax技术让前端得以更有前景,但国内在前端技术上还是非常欠缺的,国内的前端技术圈和前端技术都相比国外来的差一些,甚至一个非常棒的新的前端技术的推广时间,漂洋过海后再国内传播开来需要三五年的时间,这是一个令技术人遗憾的事情,不过这也是能理解的事情,毕竟国内整体的技术氛围技术水平和实实在在的技术培养都相比国内差了一个档次。
不过这两年,国内的前端技术在逐步成长后不断得以丰富和前卫,让前后端协作的方案得以更好地实现,再者在移动互联网飞速发展的当下,Android和iOS手机APP的迅速成长,面向手机软件的开发者更是稀缺资源,同时也让互联网前端技术得到了拓展,前端面向的终端的得以丰富,并且,在此这下由于Android和iOS从技术上完美地支持了使用对接后端接口的方式进行前后端的开发,后端越来越趋于服务化,专注于业务中数据的本身,也只需要将数据根据前端的需要提供给专业的前端就可以了。这非常有助于让前端专注得去做专业的事情,同时也非常有助于后端可以专注得去做专业的事情,无论是后端的专业化,后端的服务端集群,后端的数据库集群,后端的大数据,都可以得到更多的时间去实践,去做深化。但是,对于web技术,却长期以来未得到前后端分离的开发模式的深度实践,虽然说可能有些人会觉着之前谈到的jsp或者php模板引擎渲染的方式就已经是一种前后端分工的方式,但是这还是太差强人意了, 并不能彻底得实现前后端的分离,因为很多工作,前端做完了交给后端,后端仍然需要在前端工作的代码基础上进行进一步的工作,但由于对前端的理解和认知都不足,很难再同一个文件中进行修改,不利于前后端的配合,所以很需要一种彻底得前后端分离的方案进行前后端的配合。于是我不断地进行互联网在线学习,意外得学习到淘宝UED前端团队分享的前端技术分享,尤其是他们对于前后端分离所做的努力,他们对于前后端分离的开发模式有非常明确非常优秀的最佳实践,对整个前端技术的发展有清晰的认知。我也从中学习有了更清晰的认知,同时,在我进一步得学习下,又从facebook的前端技术react上,了解到了同构应用,和通用应用,再加上vue2.0的即将到来,这些更具魅力的前端技术,有助于前端技术的下一步深化。基于目前我的技术水平做了自己的技术选型,和技术发展的明确。
第二章 开发详述
2.1技术选型

图 21 技术方案图
基于我的学习积累,我目前的前端技术选型是:vuejs + vuerouter + html5 + css3+ javascript ES6 + spectre + webpack + leanCloud JS SDK。前端能和后端进行彻底得分离开发。出于我个人开发的原因,所以后端我将使用基于LeanCloud的后端云服务,给我的前端提供数据支持,当然不代表这样的后端不需要进行开发,我将基于nodejs 4.x express开发后端云函数,数据库为LeanCloud中自带的数据库,类似mongodb的NoSQL数据库。基于LeanCloud有助于开发的快速有效地进行,前后端的配合方式基于LeanCloud JS SDK进行。
2.2 数据库设计
本次数据库使用的是基于NoSQL数据库的LeanCloud的数据服务,根据软件的设计,我预先设计了5张数据表,具体如下概述:

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/2137.html

好棒文