课题研究报告.docx
横向课题研究报告“某战略支援部队大气环境监测系统前后端分离技术优化”是XXX相关课题组成员与XXX公司签订的横向课题,是学校科研工作和服务社会职能的组成部分。本课题周期为2022年10月20日一2023年5月30日,分准备、实施、总结三个阶段进行。由课题负责人XXX共同研究,目前课题研究完成了课题准备、课题立项工作,课题实施阶段、现在进入课题结题部分,自从立项以来,本课题负责人和课题组成员进行了大量的实验和工作,作了较为广泛和深入的实践和探索,取得了积极的成果。一、课题研究概述XXX公司是一家从事软件开发与销售、云计算技术服务、物联网应用于一体的高新技术公司。该公司接到某战略支援部队的一个项目,该项目是将大气环境中的温度、湿度等信息获取出来,存在数据库服务器上,然后通过网络传输给多个前端。之前软件开发都是采用前后端耦合的方式,其应用开发模式中,前端开发人员负责设计静态的前端页面,而不需要考虑具体的业务逻辑,后端开发人员在静态页面的基础上,使用相关引擎,完成前后端的集成工作。近期前后端分离开发模式开始出现,前后端的分工变得清晰,前端开发人员专注于Ul交互和展示逻辑的设计,后端开发人员专注于业务逻辑和数据存储等,前后端通过接口进行数据的交换,从而大大减轻了开发人员的的负担,提高了开发的效率。该公司拟采取此开发模式,从而联系到本项目组成员,协助指导其完成此项目。二、课题研究的主要内容1认知公司开发此项目的背景、意义微波辐射计通过实时测量大气微波辐射信号,监测大气积分水汽含量、路径液态水含量的连续变化,反演输出大气温、湿度和水汽密度廓线等,能够实现短时、临近天气预报,提高中小尺度天气的监测预警能力。通过对灾害性天气加密观测,对其变化趋势和影响区域进行科学研判,提高预报的精细化水平。同时也可以为人工影响天气作业方案的科学设计、作业条件的综合判别和作业实施提供依据,可减少人工影响天气作业的盲目性,增加作业的科学性。辐射计系统软件完成对辐射计硬件设备的网络化控制,并将观测结果图形化显示。辐射计系统软件由测量服务软件和综合显控软件组成。测量服务软件部署于中央信号处理分系统,完成原始数据的采集控制、定标、亮温计算等;综合显控软件部署于综合信息处理分系统,完成大气积分水汽含量、路径液态水含量、温度廓线、水汽密度廓线、相对湿度廓线的反演输出,实现设备的远程控制,并将观测结果图形化显示。本项目通过前后端分离技术的优化,可以使系统开发效率得以提升,项目中采集到的大气环境数据,可以为部队相应设备提供支撑。2如何才能构建前后端分离模式下的开发环境近几年,互联网行业发展得依旧迅猛,涌现出了很多优秀的框架,同时这些框架也正在逐渐改变我们传统的前端开发方式。前后端分离的前指客户端,直接呈现给用户的;后端是服务器端,处理业务逻辑和数据,不呈现给用户。传统的应用开发模式中,前端开发人员负责设计静态的前端页面,而不需要考虑后端的业务逻辑,后端开发人员在静态页面的基础上,使用相关引擎,完成前后端的集成工作。前后端代码耦合比较严重,开发人员需要将大量精力放在沟通和系统调试上,增加了项目后期的维护和扩展的难度。前后端分离开发模式出现后,前后端的分工变得清晰,前端开发人员专注于Ul交互和展示逻辑的设计,后端开发人员专注于业务逻辑和数据存储等,前后端通过接口进行数据的交换,从而大大减轻了开发人员的的负担,提高了开发的效率。Google的AngularJS.Facebook的ReactJS,这些前端框架的出现和组件化开发的普及和规范化,既改变了原有的开发思维和方式,也使得前端开发者加快脚步,更新自己的知识结构。原GOOgIe员工尤雨溪公开发布了自己的前端库一一Vue.js,时至今日,Vue.js已有越来越多的开发者在实际的生产环境中运用它。(1) Vue(发音为/vju:/,类似view)是一款用于构建用户界面的JaVaSeriPt框架。它基于标准HTML、CSS和JaVaSCriPt构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。VUe是一个独立的社区驱动的项目,是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JaVaSCriPt框架之一,可以轻松处理大多数Web应用的场景,并且几乎不需要手动优化,并且VUe完全有能力处理大规模的应用。Vue在JavaScript前端开发库领域属于后来者,其他前端开发库有JQuery>AngualsReaet等,但是VUe对于当前主流JaVaSCriPt库的地位具有很大的威胁。Vue.js是一个优秀的前端界面开发JavaScript库,它之所以非常火,是因为有众多突出的特点,其中主要的特点有以下几个。轻量级的框架Vue.js能够自动追踪依赖的模板表达式和计算属性,提供MVVM数据绑定和一个可组合的组件系统,具有简单、灵活的API,使读者更加容易理解,能够更快上手。双向数据绑定声明式渲染是数据双向绑定的主要体现,同样也是Vue.js的核心,它允许采用简洁的模板语法将数据声明式渲染整合进DOMo指令Vue.js与页面进行交互,主要就是通过内置指令来完成的,指令的作用是当其表达式的值改变时相应地将某些行为应用到DoM上。组件化组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在VUe中,父子组件通过PrOPS传递通信,从父向子单向传递。子组件与父组件通信,通过触发事件通知父组件改变数据。这样就形成了一个基本的父子通信模式。通过VUe技术的应用,帮助系统实现前端模块化和组件化,借助router来实现客户端的页面跳转,而页面本身则通过axios和后端的api接口相连,前后端产生相应的JSON结构包括元数据和返回值两个部分,其中元数据能够显示操作的成功与否,返回值则表示了服务端方法返回的数据。Vue.js安装:独立版本,直接下载并用script标签引入,Vue会被注册为一个全局变量。Vue.js可以从其官方下载或者可以使用静态资源链接。另外,在用Vue.js构建大型应用时推荐使用NPM安装:#最新稳定版本$npminstallvue#开发版本(直接从GitHub安装)$npminstallvuejsvue8dev(2) Node,js是基于ChromeJavaScript运行时建立的一个平台,实际上它是对GoogleChromeV8引擎进行了封装,它主要用于创建快速的、可扩展的网络应用。NOde.js采用事件驱动和非阻塞I/O模型,使其变得轻量和高效,非常适合构建运行在分布式设备的数据密集型的实时应用。运行于浏览器的JaVaSCript,浏览器就是JavaScript代码的解析器,而Node.js则是服务器端JavaScript的代码解析器,存在于服务器端的JavaScript代码由Node,js来解析和运行。JavaScript解析器只是JaVaSCriPt代码运行的一种环境,浏览器是JaVaSCriPt运行的一种环境,浏览器为JaVaSeriPt提供了操作DOM对象和window对象等的接口。Node,js也是JavaScript运行的一种环境,Node.js为JaVaSCriPt提供了操作文件、创建HTTP服务、创建TCP/UDP服务等的接口,所以Node,js可以完成其他后台语言(Python>PHP等)能完成的工作。我们借助NOdeJS作为中间层插入到前端和后端之中,并且在进行后端的开发时通过设置框架,进而实现前后端的分离。Node,js安装包及源码下载地址为:https:/nodejs.orgendownload/你可以根据不同平台系统选择你需要的Node,js安装包。Node,js历史版本下载地址:https:/nodejs.orgdist因为安装时已经配置好了环境变量,所以直接使用命令验证是否安装成功。node-V显示Node.js的版本说明已经安装成功npm-V自带的npm已经安装成功检测PATH环境变量是否配置了Node,js,cmd输入命令path,查看输出内容,我们可以看到环境变量了。(3) vue-cIi是一套成熟的vue项目架构设计,能够快速初始化一个VUe项目。vue-cli是官方支持的一个脚手架,会随本版本进行迭代更新。vue-cli提供了一套本地的node测试服务器,使用vue-cli自己提供的命令,就可以启动服务器。还有一些优点,包括:模块化,转译,预处理,热加载,静态检测和自动化测试等。Vue.js官方命令行工具vue-cli(安装脚手架前需安装node)# 全局安装vue-cIi# npminstall-gvue/cli# 查看当前版本$vueversion# 创建一个新的项目$vuecreate“项目名”# 运行Vue程序$npmrunserve3如何才能正确连接后端程序axios是一个基于PromiSe的HTTP库,axios主要是用于向后台发起请求的,还有在请求中做更多可控功能。npminstallaxios安装axiosimportaxiosfrom'axios'弓入axiosVue.prototype.$axios=axios;JSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(EuropeanComputerManufacturersAssociation,欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。访问本地数据:axios.get(,/db.jso11,).then(response)=>console.log(response,data);this,list=response.data).catch(function(error)console,log(error););访问远程数据axios.get(,http:/Jusers,).then(response)=>console,log(response,data);this,list=response.data).catch(function(error)console,log(error););4获取数据示例本项目所属系统,获取到了大气数据,下面是其中一个示例:三、课题研究的主要过程课题研究是一个长期、动态、复杂的研究过程,需要课题组全体人员创造性的劳动,持之以恒。团结协作才能达到课题研究的总体目标。要避免开题轰轰烈烈,过程冷冷清清的现象发生。课题研究的过程重点要做以下几个方面工作:(1)前期准备。课题组成员认真了解当前软件开发的大背景,通过有关的调查,搜集详尽的材料,同时初步确定针对课题项目的咨询目标、咨询任务,初步确定项目的体例、类型、结构等,还针对性地作一些资料准备。(2)收集材料。收集充分的项目材料是研究的基础,课题组成员很多是第一次做课题,因此首先参阅了有关书籍:怎么做课题研究:给教师的教育科研建议教师如何做课题科研项目指南等等。然后通过知网和其它数据库网站查阅了刘亚茹的Vue.js框架在网站前端开发中的研究,李晓薇的vue.js前端应用技术分析,马雪山的前后端分离的Web平台技术研究与实现,尤其是以西南科技大学杜艳美的面向企业级web应用的前后端分离开发模式及实践等论文,认真研读,收获颇丰。(3)现场指导。对一些操作过程中出现的难点问题,本课题组成员深入公司开发现场,进行现场指导和演示,从中提炼出解决问题的对策。(4)分析研究。对于不能解决的疑点难点问题,采用集体讨论的方法,发挥集体的作用,集体攻关,分工合作,共同研究,反复实验。进行文献分析,文献分析是通过查阅文献资料,从过去和现在的有关研究成果中受到启发,从中找到依据,进而解决问题。(5)撰写论文及项目总结。在对项目材料作多角度研究分析的基础上,按一定的结构进行表述形成论文。撰写论文,经过以下步骤:撰写一一讨论一一修改一一再讨论的多次反复的过程,不断完善。撰写论文做到目标明确,描述真实具体,合情合理,用词适当,构思巧妙,文字表达力求生动。项目完成后,及时总结,回顾整个过程中的成绩和不足,分析各个成员间的合作情况,明确得失,为后续继续进行课题研究打下基础。课题取得的成果:1、公司开发人员渐渐挨弃了旧的开发思路2、前后端分离,分工明确,职责清晰3、采集到了后端传感器等设备获取的大气数据4、形成学术论文一篇四、问题与不足中华人民共和国教育法指出国家支持、鼓励和组织教育科学研究,推广教育科学研究成果,促进教育质量提高。结题是课题研究的结束,但就课题的影响和效果来说才刚刚开始。许多课题研究到结题为止,很多有价值的研究成果还停留在结题报告里。课题成果得不到进一步的推广与应用,不论对课题研究者,还是对其他人,都是一种损失。课题结束后,还要做进一步的推广。课题成果的推广工作,以便让更多人应用课题研究成果。推广,是推而广之,扩大事物使用的范围或起作用的范围。课题成果的推广,就是有计划、有步骤地将课题成果广泛传播,在一定范围内应用,使之转化效益的过程。虽然课题研究是由学校的教职工具体来做的,但其影响却不止于研究者,还会给所在学校带来社会影响。对于那些不出名的学校而言,一项有影响的课题成果的推广,可以提高学校的知名度,扩大学校的整体影响力。对于那些名校而言,课题成果的推广,可以进一步增加学校的美誉度,为学校的声誉增光添彩。对接受成果的单位来讲,将新的课题成果应用于实践,或者根据成果的科学性和创新性进行后续研究、应用等都是十分必要的。本课题虽然取得了一定的研究成果,但是在将成果进一步推广方面,还有有所欠缺。五、致谢感谢给予帮助本课题完成的学院和科研处领导、同事,感谢中高级职称同事在课题立项、实施、完成方面给予的意见和建议,感谢相关领导,感谢知网数据库平台和相关著作书籍的出版社和作者,感谢给予本课题帮助的其它人员。没有你们的帮助和支持,本课题可能难以完成。课题组全体成员,将以此为契机,扎实专业技能,分析研判社会上需要的难点疑点问题,继续联系企业,帮助企业解决开发和运行中碰到的困难,贡献一点微薄力量。