访问文档根目录之外的网页_前端交接文档总结

指挥中心网页版重构交接文档

为了更好地体验和优化,更适应现代web开发框架,提升开发效率,对原有JQuery-Based指挥中心网页端使用基于Vue.js的Quasar Framwork进行重构。但是由于CyberPlayer并没有针对MVVM框架做适配,播放RTMP直播流时,时延加大,最终是否使用还需再商榷。2019年5月份,在此基础上,将直播视频流修改为AnyRTC版本之后,使用体验提升了很多。代码中的版本即为这个版本。

  1. 项目整体概况

此项目为重构项目,基本遵照原有项目原型和功能,主要功能包括:

  • 大屏显示模块(视频流显示与播放控制调节、截图编辑、发送)
  • 小屏显示模块(视频流播放控制、多个直播流显示与维护、N分屏调整)
  • 地图模块
  • 报警模块
  • 聊天模块

技术选型:Quasar Framework ( https://quasar.dev )

72402f9220fe78a4bb2d8ec75a72627e.png
  1. 怎么开发?

安装(Quasar-cli脚手架工具)和调试:

  1. 在本地安装Node【 https://www.runoob.com/nodejs/nodejs-install-setup.html 】,确保Node>=8.9.0和NPM>=5
  2. 打开命令行,全局安装Vue-cli,运行npm install -g vue-cli
  3. 全局安装quasar-cli: 运行npm install -g quasar-cli
  4. Cd到项目根目录,安装项目依赖:npm install
  5. 运行调试程序: quasar dev.
  6. 等待编译完成,命令行会自动调用浏览器并打开 http://localhost:8000

项目目录结构:

开启全功能的项目整体目录及功能大致说明见下图所示,但是目前项目只开启了pwa功能,具体使用时请注意。

c7536733fca2fa81fcba2282afe04d79.png

一般来说,开发的时候只需要关注quasar.conf.js(Quasar App配置文件)、src/components、src/router、src/layouts、src/pages,app.styl和variables.styl,有时候需要关注src/assets。

  • 配置quasar.conf.js ( 参考http://www.quasarchs.com/guide/app-quasar.conf.js.html )

f01c6614dfa2497845bad9c1be371544.png

7cb5e423a23bc47083dc70c894334304.png

这个部分是使用quasar framework的核心,Quasar-cli自身有一部分默认配置,运行前会读取这个配置文件,写在这个文件中的配置选项会覆盖/重写默认配置,构建出需要使用的quasar app. 更多更详细的配置信息见https://quasar.dev/quasar-cli/quasar-conf-js

在这个部分值得关注是devServer的配置,关于devServer的完整配置见 https://webpack.js.org/configuration/dev-server;目前app的devServer配置如下:

bfea28b836f7f584d455c4439c3ad395.png

配置的第一个open选项,决定了编译完是否自动打开浏览器,并打开页面。第二个proxy在本地调试时,可以采用正则匹配的方式,匹配页面发起的http请求url,将特定的url转发/代理到特定的测试服/产品服上,这样的处理方式有利于前后端分离项目中的调试环节。在目前项目配置中,我们对本地的http请求做了两个转发,注意配置中的changeOrigin选项,这是为了避免浏览器同源策略(https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy ) 引起的请求屏蔽,无法发出的情况,同时,需要在服务端的Apache/Nginx或者程序内部设置允许跨域访问选项。

  • src/components、src/layouts、src/pages

这三个部分的开发请完全参照Vue.js最佳实践中的风格指南https://cn.vuejs.org/v2/style-guide/index.html 中的要求,规范自己的代码。理论上,这份风格指南可以作为code review的coding rules,结合ESLint插件,可以避免95%以上的代码错误,形成良好的代码风格,产出的代码更规范、更易于理解,最重要的是更易于维护!

这三个部分同样都是.vue文件,那么,一般情况下怎么界定一个.vue文件该放到哪个目录下呢?

src/components存放的是一些基础、可复用组件,一些复杂的页面/模块通常可以拆分成一些基础组件,通过组件的组合来完成界面的显示与布局;

src/layouts存放的是和界面布局相关的.vue文件,如前所述,一个页面是由src/components里面的组件组合而成的,那么就需要一个容器,来将组件固定在合适的位置,这就是layouts的作用它实际上是防放置了一堆的容器。单独拿出来作为一个目录,也是为了方便以后扩展到手机、平板、小屏幕PC、超大屏幕PC等多种布局设备上,这样你只需要关注src/layouts中容器位置的修改即可,这也是适应目前web开发“一套代码、多端共用”的趋势;

src/pages则是实际组装好的页面文件,这是单页应用(SPA,即一个应用实际上只有一个页面,通过动态重写当前页面来与用户交互,避免了页面之间切换打断用户体验)的需要,通常来说,单页应用的一个页就是一个page。src/pages一般和src/routes中的路由配置配合使用,这也刚好顺应了SPA应用通过路由来做页面的跳转和重绘的思路

  • src/routes

这个部分原封不动地使用了Vue-Router来处理页面跳转的逻辑。请参照https://router.vuejs.org 来开发。

值得注意的是,这里推荐组件和页面的动态加载,即只有在路由跳转之后,才去加载相应的js文件:

a9d15dcb894b684ee2348734d0430b78.png

这样做,有效避免了程序刚进入入口页面时,就一股脑地将所有页面文件加载进来,减轻页面重量,同时,进行过一次加载的文件会缓存在本地,后续跳转和一次性全部加载的体验是一样的。

如果后续有模块化页面需要,也可以参考此方式配合路由跳转动态加载模块

  1. 如何部署到服务器?

目前公司服务器是阿里云的ECS云服务器,以华南节点的测试服为例,来部署流媒体服务器。配置信息如下:

dc3e74eaae80fd3d054a51712de8fba0.png

在开发/调试环境中,Quasar-cli利用webpack工具主要做了以下几件事情:

  1. 将src目录下的文件(主要是.vue文件)使用JIT(just in time)模式编译成bundles(并没有实体文件)
  2. 提供了一个静态文件服务器,供浏览器通过url访问bundles;
  3. 提供了http发起和代理转发服务;
  4. 搭建了一个websocket服务器,将热更新的bundles热替换到浏览器的相应模块;

在生产环境中,D是不需要的;BC的功能是通过反向代理来实现的。在我们的场景中,云端服务器的系统是Centos7的,反向代理使用的是apache。关于反向代理服务器请谷歌或者参考https://blog.csdn.net/keyeagle/article/details/6723408 。在这个使用场景中,其本质是提供了一个静态文件服务器,浏览器通过url访问编译好的js, html, css, assets等bundles,在浏览器中解析渲染之后,得到SPA的app。

剩下A功能的实现,也是利用Quasar-cli的构建命令来实现的。在Quasar文档中,详细介绍了如何构建不同模式,不同主题,不同平台的文件构建过程。详细见:http://www.quasarchs.com/guide/quasar-cli.html#build-clean-构建生产版本应用

3fc14e4085bc33591b149260e13e451d.png

编译好之后,在项目根目录,会生成一个dist文件夹(如果已经存在编译过的文件,则会先删除dist文件夹之后,再重新生成新的文件),dist目录下,按照不同的模式,不同主题生成了了不同的编译好的文件。将dist文件夹打包上传到服务器中。这里以http://test2.goolton.com 为例,在不改变现有服务器apache的配置文件的情况下来详细说明如何部署到生产环境中。在现在的apache配置中,已经将http://test2.goolton.com 的根目录指向到了gdIndustry/active/pub 路径下,也就是说,如果需要访问gdIndustry/active/pub下的a.html,只需要在浏览器中通过url: http://test2.goolton.com/a.html 即可。同样的,我们把dist目录整个上传到gdIndustry/active/pub/dist下,那么只需要把url补齐,使url指向index.html即可。这里为http://test2.goolton.com/dist/index.html。

当然,也可以通过修改apache配置来让你的url变得更短,更易读。

  1. 注意事项

暂无

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java程序员交接文档是指在程序员离职或者项目交接时,提供一份详细的文档给接手人员,以便于新人快速了解项目的技术架构、代码结构、运行环境以及开发规范等方面的情况。 该文档通常包含以下内容: 1. 项目概述:简单介绍项目的背景、目的和规模。 2. 技术架构:详细描述项目的技术架构,包括系统架构、硬件配置以及软件框架。 3. 代码结构:介绍项目的代码结构,包括各个模块的目录结构、类的关系、函数的调用关系等等。 4. 数据库结构:描述项目所使用的数据库的结构,包括各种表、字段的定义,以及数据关系等。 5. 运行环境:介绍项目的运行环境,包括操作系统、版本、服务配置等等。 6. 开发环境:介绍程序员的开发环境,包括开发工具、版本、插件等等。 7. 代码规范:列举项目的代码规范,包括编码规范、开发规范等,以确保新人在接手后,能够遵循良好的代码风格进行开发。 8. 工作流程:描述项目的工作流程,包括需求分析、设计、编码、测试、验收等过程。 Java程序员交接文档帮助新人快速上手,避免了在了解项目结构、代码风格等方面浪费时间,同时也便于后续的维护和迭代。把一个原本复杂的系统变得简单易懂,提高了工作效率,这对于项目的顺利完成是非常有帮助的。 ### 回答2: Java程序员交接文档是Java程序员在交接项目时提供给接手者的一份文件文档包含项目开发的历史、代码结构、功能模块、技术选型等内容。交接文档的作用是为接手者提供了解项目情况的参考资料,提高了交接效率和接手者的理解度。 Java程序员的交接文档应当包括以下内容: 1. 项目简介:简述项目的背景和目标,项目开发的历史和阶段。 2. 代码结构:对项目代码的结构进行说明,对代码的目录结构和模块进行介绍,尽可能详细地解释各个模块之间的互相关系。 3. 开发环境:介绍Java程序员使用的开发环境,包括开发工具和数据库,操作系统等,方便接手者能够在自己的环境中对代码进行调试和测试。 4. 技术选型:对使用的框架、技术及其主要功能进行介绍。 5. 代码规范:列出程序员遵循的代码规范和开发流程,包括代码注释和编码规范等,用于保证代码质量和提高代码的可维护性。 6. 功能模块:对各个功能模块进行介绍,包括其实现原理、作用以及与其他模块的交互关系等。 7. 部署说明:给出代码的部署说明,包括如何在服务器上部署和启动项目。 8. 遗留问题:列出尚未解决的问题和需要进一步完善的功能,并给出相应的解决方案。 总之,Java程序员的交接文档应当尽可能详细、清晰地介绍项目的相关内容,为接手者提供帮助和指导。这样有助于确保接手者能够顺利掌握代码,并更好地维护和优化项目。 ### 回答3: Java程序员交接文档,是程序员在交接项目时必须提交的文件,主要包括项目的约定、设计、实现、测试、文档及其他重要信息。该文档是对项目进行详细说明的资料,让接手人能够快速找到相关信息,以便于顺利接手该项目,并更好地完成相应的工作。 Java程序员交接文档的内容一般包括以下几个方面。首先是代码实现部分,包括代码库的版本、构建方式、部署方式、运行方式等。其次是系统设计部分,包括系统的架构设计、组件设计、界面设计等。然后是测试部分,包括测试计划、测试用例、测试结果等。最后是文档部分,包括用户手册、API文档、安装说明等。 程序员在编写交接文档时需要遵循以下原则。首先,要全面、准确地描述软件各个部分的功能、实现、限制、使用方式等信息。其次,要规范化文档结构,采用统一的风格和格式,使文档能够清晰易懂。最后,要尽量少使用行业独有的术语和缩写,避免造成接手人的困扰。 总之,Java程序员交接文档是程序员进行项目交接时非常重要的文件,它可以让接手人快速了解项目相关信息,从而更好地完成相应的工作。程序员在编写交接文档时应该注意文档的完备性、规范性和易懂性,让接手人能够理解并顺利接手项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值