热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

乐视云大前端技术架构

团队介绍乐视云计算大前端,目前团队人数20+,负责公司全部业务线的前端工作,包括官网、商业平台的前端构建,flash、html5播放器的SDK,以及还处于Alpha阶段的ReactNati

团队介绍

乐视云计算大前端,目前团队人数20+,负责公司全部业务线的前端工作,包括官网、商业平台的前端构建,flash、html5播放器的SDK,以及还处于Alpha阶段的React Native打包App的平台工具——LeVally,包括PC端、移动端的前端项目。

在大量的业务实践中,我们团队的人员,经过各种探索、踩坑,形成了如今的技术架构,并且在不断的更新完善中

乐视云大前端技术架构

前端规范

代码未动,规范先行。可以在上图的最左面看到,一大排的规范列表

  • 接活规范

    其实是规范了大前端团队从接活、评估、开发、联调、UI还原、测试、部署(Vue 部署)、上线等一系列的前后串联的工作,由于我们团队面向各个业务线,之前经常有被工期打断、delay背锅的情况,所以需要内外统一工作规范。

  • 代码规范

    团队一开始采取的是普通的eslint来约束代码,随着时间的增长,进化为选择并自定义了Airbnb的严格eslint来约束代码。
    同时,团队对项目各种命名、git分支、注释、ReadMe、vue组件,包括之前的jquery编写,都进行了不同程度的规范约束,以达到团队的内部统一

  • 接口规范

    对于不同的后台团队,统一了接口,使我们的项目、组件,可以最大程度的复用

  • SEO规范

    对于需要SEO的界面,有自己的SEO规范

  • 兼容性规范 H5、PC

    时间、精力是宝贵的,我们不可能去兼容IE6、7那些大爷了,针对不同的项目,我们有不同的兼容性规范

  • 自测规范

    项目质量,并不是把控在QA团队的手中,需要我们自己负责,交给QA团队之前,我们需要保证自己的东西好使

  • 故障处理规范

    有的产品线,是有日志上报的,但是大部分还是无日志上报的,系统报警或者我们自己发现到问题,需要及时、靠谱的处理方案

技术架构

开发、构建工具

团队已经统一了技术栈,那就是vue,可以是单界面应用的就使用vue cli架构单界面项目,加上vue router路由控制;如果不可以做单界面的话,例如活动页、视频详情页,就自己架构vue+webpack+es6+npm的开发技术栈,总之,现代化的JS开发,我们以vue+webpack+es6+npm为基础核心。

我们的css同学与UI同学,维护了一套svg图标库,我们的项目,在去图片化迈出了一大步。

我们的PC端项目,也维护了一套vue组件库,把之前的jquery插件库,全部搬迁转移了过来。H5的组件库,正在慢慢积累中。

针对与国际化项目,我们维护了一个自动化的工具,包括中文提取、翻译、回填。

针对于那些开发比较慢的Java后台,很可能需要我们等待他们给出实际接口,我们自己准备了koa2+mongoDB的接口自调工具,提前与后台定义好相关字段,就可以自己写接口了。

还有一些旧的还在维护的项目,采用了jquery+gulp+event事件池的模式开发,即全局订阅者/发布者。

自测&QA测试

我们现在,也开始用代码写测试,写一些常见的测试用例、针对业务,从代码层面上找到隐患。

当然,人工测试必不可少,我们先自测,然后QA同事使用它们的自动化测试平台,先进行冒烟测试,然后进行业务测试。

部署

现在采用了前后端分离的开发、部署方式,代码在gitlab上托管,不同的分支对应不同的业务环境,通过火星一号(公司内部上线平台),直接把代码从gitlab拉取到相关线上环境。

css、js等静态文件,需要上线到乐视cdn,可以手工打包上线,不过我们现在使用node开发了自动化上线cdn的工具,自动回填相关cdn上的文件地址

运行

公司的自动化监控报警系统,会主动轮询相关项目是否正常运行,发现异常时,会短袖、邮件发送给相关负责人。

技术选型思考

  • 为毛使用了vue,而不是react、angular

网上一堆关于这三者的比较,不再赘述。对我们而言,静态网页是专门的同事写的,JS是另外的人写的,所以,由静态界面改写成vue的模板语言,显然更简单一些。

我们团队,在2015年的时候,做过angular技术转型的尝试,相同的mvvm的技术,上手vue也比较快,而angular,我们觉得他太冒进,google的大拿们,有点对开发者们开玩笑了。

  • 为毛是使用svg图标库,而不是icon font或者单纯的css prite

另一文章有答案:svg图标库以及与icon font对比

其余的技术体系

  • react技术线

作为现在最火的前端技术,我们也探索过react,也开发过一个小型的react组件库,用于与vue技术做对比。

  • nuxt——vue服务端渲染

我们也做好了使用vue做服务端渲染的准备,用于我们组件化自动生成H5网站的技术储备。

  • hybrid开发

与原生的app交互中,我们也踩过了一堆hybrid开发的坑,深刻认识了webview这个好哥们。

  • 其余

像微信小程序、electron等技术,我们也进行过技术调研,完成过demo,由于业务的原因,没有具体深入使用。

不足之处

  • 对node的使用

由于我们的后台Java团队异常庞大,现在对node的使用,要么是开发模拟接口、要么是开发各种工具,而没有在线上跑的中间件。

  • 工种的分离

我们前端团队,css与JS是分离的,有利于各自技术的深入,但是长远看来,css与JS应当是在一起的,有利于项目的推进与个人技术线的完整。

未来

  • svg、canvas动画库

静态的图标库、UI组件库,我们积累的够多,那些酷炫的动态效果,如动态离子展示、canvas场景、我们也做过不少,但是未有系统的积累,这块正在或急或慢的储备,争取厚积薄发。

总结

未来已来,做技术的,需要对业务负责,也需要深入自己的技术,更好的推进业务,前端是没有止境的,是学不完的。

好在最近前端开始慢慢进入大朗淘沙的阶段,老技术在死去,新技术在物竞天择,各个方面,开始有了独大的技术,如构建工具之webpack,包管理之npm,基础库之react、vue,node库之koa,慢慢的展现出王者风范。

现在社区慢慢的进入学习前端基础的节奏,个人认为这是个好趋势,前端基础学习好了,技术工具再多,也是各种api而已。


推荐阅读
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • layui表格分页不生效怎么办
    web前端|Layui教程layuiweb前端-Layui教程小程序实例源码,ubuntuip切换,tomcat默认端改为80,爬虫完整源码,微信小程序php接口,seo专业培训班 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 在package.json中有如下两个对象:husky:{hooks:{pre-commit:lint-staged}},lint-staged:{src** ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...
    一、根据题意,填写出空格中的内容Java平台包括三个技术方向,其中J2ME代表____________、J2SE代表___________、J2EE代表 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • 起因由于我录制过一个小程序的课程,里面有消息模板的讲解。最近有几位同学反馈官方要取消消息模板,使用订阅消息。为了方便大家容易学 PythonFlask构建微信小程序订餐系统 课程。 ... [详细]
  • 1、etcnginxconf.ddefault.conf,添加如下信息:location{try_files$uri$urirouter;rootho ... [详细]
  • PHP小习题:PHP小练习题前几天在百度知道里面看到有位网友询问如何制作一下的小程序:用php语言设计一个小程序,计算今天到达下月的天数、全部输出这些天数,并使得每天的日期以三种颜 ... [详细]
author-avatar
湘刘涛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有