# 基于Node.js中间层的微信图书借阅平台网站的设计与实现
# 1 引言
步入信息时代以来,互联网给人们的生活带来了翻天覆地的变化,互联网也不再简单地仅仅通过提供便利快捷的资讯服务来丰富我们的生活。互联网的出现打破了许多传统行业垄断的格局,互联网以其接入面广、信息即使、人人可参与等等性质,迅速融入到了人们的生活中,并且已经成为了整个社会不可缺少的一部分。大约5年以前的互联网是属于PC的时代,那时人们的网络生活包括逛贴吧、看资讯、写博客、下载多媒体文件以及在线网购等等。互联网是一个时刻都在发展的行业,其发展速度之快是大部分传统领域望尘莫及的,一方面是因为互联网虽然已有近30年的念头,但相较于传统行业,这个年份几乎还是跟刚出生的婴儿差不多。因此互联网有极为广阔的发展空间,另一方面由于互联网本身就技术性质而言,属于一门科学领域,大量国内外的高等技术人才都在不断完善互联网领域的科学根基。从小到微机硬件性能一代又一代地提升,再到大型路由交换网络环境的接入覆盖范围越来越广、越来越快,再到现如今机器学习、人工智能、分布式计算、分布式存储的铺开,互联网领域逐渐形成了一个包含计算机科学、软件工程等等领域的超大集合。以前人无法做到的事情已经逐渐慢慢在通过机器来实现。对于互联网领域而言,只有针对用户有意义的应用才是有价值的。随着互联网的发展和移动设备的普及,目前移动端市场正在以突飞猛进的速度渗透到用户群当中去。人们通过随手可得的智能手机、智能平板,甚至电子阅读器等等诸多设备都可以便捷的通过移动4G网络随时接入互联网。移动4G和公共Wifi网络的速度提升和逐步普及为移动互联网深入人们的生活打下了良好的开端。越来越多的人开始使用移动端设备接入互联网丰富日常生活。从在线购物、在线订餐,订房、订票,到日常信息的获取和交流。
移动互联网是传统互联网的一个分支,但抛开其在移动端运行这一点而言,移动互联网跟传统互联网没有任何区别。然而仅仅是在移动端运行这一点而言,就足以体现出移动互联网与传统互联网的巨大区别。首先考虑用户的使用场景,一般而言,传统互联网的接入方式一般是PC浏览器,用户端座位上,面对着电脑屏幕获取互联网资讯。而移动互联网的用户没有这么多时间,他们可能是上班的路上拿出了手机,可能是吃饭时想发一张自拍,最常见的是与好友们的即使通讯,分享自己某一刻的心情等等。这些事情的共同点是操作时间短,使用地点自由。移动互联网因为其便捷的接入性完全满座以上需求。用户在使用智能设备访问移动互联网是没有端坐在桌面上通过PC浏览器访问桌面网页时那么有耐心,移动互联网让用户们得以随时随地享受快速的服务。
然而重新提到移动互联网和传统互联网的共同点时,就又要回归到技术层面上,那就是虽然互联网的接入模式在变,但是基于的技术架构仍然没有任何变化,当用户在移动设备上访问互联网时,和在PC上通过浏览器访问后端服务没有任何差别。因此此前在传统互联网领域所没有克服的技术问题也就顺势带到了移动互联网开发领域。这十分让人苦恼,在之前,由于传统互联网的接入方式通常是宽带接入,网络稳定性和速度有保证,于是开发者们可以牺牲一些新能和速度以换取用户的良好体验。然而当面临移动互联网时,开发者们要面临移动端网络环境不稳定、速度有延迟等无法避免的事情。又由于移动端通常不具备PC端良好的处理性能和存储空间的优势,因此移动端开发时需要对性能有更高的要求。除此之外,还有一个难以调和的矛盾,就是移动端涌入我们的生活了,对于用户而言是好事,他们可以通过更多种途径获取更多种便捷的服务。但是服务和业务规模的扩增对开发者而言却是让人头疼的难事,因为传统互联网一直没能很好地解决前后端耦合的问题。前端由于接入设备种类的增加以及业务规模地愈发复杂化,导致我们强烈需要把前端从后端中解耦出来,让前后端不近从运行平台上解开,更重要的是从代码设计和架构上实现完全的解耦。
在这些基础上,前人为了实现前后端解耦总结了许多实践方法,但每解决一个问题往往会引入新的问题。本课题就是试图引入一种新的模式,从而从根本上实现前后端的彻底解耦。通过微信公众号开发实现一个图书借阅平台的真实例子,从而验证所提出的新模式的可行性与架构方法。
## 1.1 项目研究背景
Web软件研发这一行业,从互联网诞生的那一刻开始诞生,开发模式也在不断演进。从最初既做设计图又要写代码,不分前后端端一人通吃的蛮荒时代,到现在逐渐分工明确各司其职的现代化开发时代,Web行业正在以历史上最快的速度向前发展。在这个历史进程中,Web研发模式经历了如下阶段。
最初期可称为Web初期,那时不区分前后端工程师,对于大部分公司而言,所懂得技术的人才并不多,然而当初的业务成都也没有现在这么复杂。通常所有工作由一个小团队即可完成,HTML内容直接由JSP或者PHP等后端语言直接输出,交给浏览器来呈现,所有关于页面的展示逻辑都由浏览器来负责。浏览器端也很少参与业务逻辑,内容完全由服务器端程序来决定。这种模式的方便之处就是业务逻辑十分简单,业务核心依赖服务器端,代码结构简单清晰,利于调试和编写。然而一旦随着业务规模的增长,过多参杂了View层逻辑的服务器端代码就会不断增长,不单影响性能、效率,还严重制约程序开发的进度。服务器端的复杂度越来愈大,为了解决问题,单纯靠填补服务器端开发人员的数量也难以应对庞大的服务器端代码。
这期间遇到的一些典型问题令许多人深有感触,随着服务逐渐增长,API调用关系变复杂,服务器端程序部署成为问题。后端人员对代码做出修改后上线需要进行上线部署,而前端人员对页面的细微调整也需要与后端人员进行沟通,提交代码给后端进行处理,完成本地开发,代码合并,后端部署等诸多环节。这导致前端的任务严重依赖于后端,没有后端的前端程序完全无法独立运行,制约着前后端之间开发进度的衔接。
为了解决这种混乱不堪的开发状况,诞生了一种耦合式的前后端解决方案:即前端人员书写完页面代码之后,交给后端人员处理与数据库的对接,让前端人员给后端人员打下手。并且严格按照这种开发流程来执行。虽然这种方式解开了前后端人员之间的工作任务,但是并没有解开前后端之间耦合的代码。
到了Web2.0时期,浏览器所呈现的内容愈发丰富,各种Web应用层出不穷,开始强调客户端丰富的用户交互。此时再把前后端耦合在一起显然不合适了。所以为了降低复杂度,开始在Web后端领域实践MVC开发模式。这一阶段涌现出了一些非常优秀的后端框架,比如RubyonRails、JavaSpring、Django等等。后端MVC强调模型、视图和控制器职责的分离,而一直以来前端的工作都是与View层紧密相连的,所以后端可以完全
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
0937805983604294.zip (44个子文件)
book-wechat
README.md 53KB
LICENSE 1KB
src
论文.docx 746KB
src
.gitignore 141B
test
unit
karma.conf.js 2KB
specs
Hello.spec.js 349B
.eslintrc 95B
index.js 552B
e2e
specs
test.js 372B
custom-assertions
elementCount.js 777B
nightwatch.conf.js 943B
runner.js 1009B
static
javascripts
script.js 1017B
stylesheets
weui.min.css 35KB
style.css 48B
package.json 3KB
src
components
Hello.vue 492B
apis
index.js 2KB
config.json 276B
main.js 124B
App.vue 1KB
templates
index.jade 141B
layout.jade 683B
error.jade 84B
lib
weutils.js 4KB
request.js 2KB
cache.js 176B
json.js 326B
assets
logo.png 7KB
.babelrc 96B
build
webpack.dev.conf.js 1KB
build.js 900B
webpack.prod.conf.js 3KB
dev-server.js 3KB
dev-client.js 247B
webpack.base.conf.js 2KB
utils.js 2KB
config
test.env.js 136B
prod.env.js 48B
index.js 750B
dev.env.js 143B
.editorconfig 299B
index.html 325B
.eslintrc.js 502B
共 44 条
- 1
资源评论
- qqtome20102022-04-26用户下载后在一定时间内未进行评价,系统默认好评。
工具盒子
- 粉丝: 72
- 资源: 1311
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 将 COCO 注释(CVAT)转换为 YOLOv8-seg(实例分割)和 YOLOv8-obb(定向边界框检测)的注释.zip
- 章节2:编程基本概念之引用的本质-栈内存和堆内存-内存示意图.rar
- 章节2:编程基本概念之标识符-帮助系统简单使用-命名规则.rar
- fasfdsafaadfasfdasfs
- 如何使用 TensorRT 运行 yolov5 模型 .zip
- Dev-Cpp_5.11_TDM-GCC_4.9.2_Setup.zip
- 回归分析学习笔记-11
- Python面向对象编程基础:类、继承、封装、多态和抽象的应用
- 问卷数据——重大革命历史题材影视剧认知与需求.xlsx
- 考计算机三级Linux时,使用官方教材做的一些重点笔记.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功