# 基于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层紧密相连的,所以后端可以完全
工具盒子
- 粉丝: 75
- 资源: 1311
最新资源
- 电梯程序 提供视频教程 一步步教会您如何使用 10层6梯,西门子博途编写,1200PLC WinCC直接模拟仿真,画面精美真实,程序画面完全一致 含梯形图、含SCL语言 带使用说明和教程 课
- 2A-Winner.cpp
- 物流分拣系统源码完整版
- 2B-TheLeastRoundWay.cpp
- 锂电池软包注液机 欧姆龙NJ501-1400, 威纶通MT8102IQ触摸屏程序 锂电池全自动直线式电池注液机 1.欧姆龙NJ501-1400,搭在ECAT节点分支器模块进行分布式总线控制,进行分布式
- 信捷PLC 7轴伺服联动 XD5-48T6-E PLC 做的7轴联动设备,具备牵引示教功能 用PLC做配方,喷涂机程序 包括PLC和触摸屏程序,中文详细注释
- 风光储、风光储并网直流微电网simulink仿真模型 系统有光伏发电系统、风力发电系统、储能系统、负载、逆变器和大电网构成 附参考文献 模型问题可解答 该模型主要实现功能为共直流母线电压稳定功能
- 2. 全C语言编写基于外插法永磁同步电机高频方波注入无传感器Simulink仿真模型 (1)全C实现方波电压信号(开关频率5kHz、注入信号频率2.5kHz)注入,注入信号正负辨别、电流误差分离、外插
- 直流电机转速电流 开环 单闭环 双闭环 调速系统仿真,还有详实的说明,很多东西
- 鲸鱼优化算法WOA优化CNN的隐含层个数和学习率做多特征输入单输出的二分类及多分类模型 程序内注释详细,直接替数据就可以用 程序语言为matlab 程序可出分类效果图,迭代优化图,混淆矩阵图具体
- 基于qt的opencv surf的特征点匹配图像拼接技术 python和c++都可以 还可以添加数据库mysql和sqlite 可支持多图拼接 可切sift算法
- Comsol螺旋光纤模式分析
- PSO-BP粒子群优化BP神经网络多特征分类预测(Matlab) 1.运行环境Matlab2018b及以上; 2.输入12个特征,输出分4类,可视化展示分类准确率,可在下载区获取数据和程序内容; 3
- 基于二阶锥规划的主动配电网动态最优潮流求解 关键词:配电网优化 二阶锥优化 动态优化 最优潮流 仿真代码:MATLAB YALMIP+CPLEX 优势:代码注释详实,适合参考学习 主要内容:代码主
- 基于stm32的电机控制系统仿真设计 实现功能: 1、判断光照强度与设定值的大小 2、当此时光照强度小于设定值时,电机顺时针旋转(打开窗帘) 3、当此时光照强度大于设定值时,电机逆时针旋转(关闭窗帘)
- 基于51单片机的计步器(步数,存储) 具体要求如下: 1、利用震动传感器实现计步功能的模拟; 2、可以记录行走的步数,可以显示记录的步数; 3、通过按键实现归零功能,可以存储历史数据,并断电不丢失;
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈