聊一聊迅雷前端敏捷开发那些事儿
福利来了: 我们要跟 @前端早读课 合作搞一次线上直播,时间是12月12日晚8点半,分享迅雷前端的敏捷开发实践。如果你错过了上次的分享,或者希望和我们一起近距离沟通前端敏捷开发相关的话题,请一定不要错过这次的 Live,Live介绍:前端早读课Live: 迅雷前端敏捷开发之路,报名地址: 前端早读课直播间。
线上出现了脚本错误,还是被老板发现的,如何监控追踪线上问题?每次发版都要手动构建、部署,多人开发却只有一个测试环境,如何提高效率?每周N个运营活动需求,如何提高开发效率?相似的业务代码如何抽象成公共模块?前不久的一场分享会可以为你解惑!
11月22日迅雷前端团队又在公司办了一场技术分享会,这次主题是《迅雷前端敏捷开发体系》。
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bb0620f3b58_w-620_h-451_f-png_s-481451.gif)
第一场:迅雷前端敏捷开发之路
第一场是赵兵同学带来《迅雷前端敏捷开发之路》,赵兵同学是迅雷组件库XNPM的创作者和推动者,他自己也开发了不少开源组件,比如@xunlei/vue-lazy-component。
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bb6f4c34661_w-1000_h-564_f-png_s-730335.gif)
赵兵同学从一个开发新产品的例子入手风趣幽默地讲述了开发中遇到的各种问题及解决方案。
1. 如何快速上线一个新产品?
- 需求拆分成独立功能点
- 功能点按照优先级排序
- 了解产品经理的真正意图,换种方式解决可能更好
- 需求分期迭代,每周一个版本,根据用户反馈调整产品方案
2. 出了进度沟通问题?
无法实时跟踪各方进度?看板君上线了,看板君的真身其实是worktile,像流水线一样处理任务,任务进度一目了然。
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bbae14524ef_w-1342_h-542_f-png_s-189510.gif)
3. 线上出现了脚本错误,还是被老板发现的,如何监控追踪线上问题?
简单地说就是规范工作流,接入监控和告警。这时候工作流君和监控君要上线了。 工作流君的真身就是Eslint代码检查、Git flow开发流程、增量code review(在完成featureE或者hotfix等合并分支的情况下@其他同事进⾏review)。 监控君就是错误监控、性能检测、告警、旁路监控。现在我们有基于sentry的错误上报系统,还有监控系统,告警除了微信告警还有钉钉机器人告警,旁路监控有监控宝。
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bbca93dc2f3_w-1854_h-435_f-png_s-55501.gif)
4. 开发效率又跟不上了?
每次发版都要手动构建和部署,多人开发却只有一个测试环境,效率太低!这时候自动化君上线了,机器能做的就不要手动去做。自动化君的真身就是Gitlab CI。提交代码⾃自动触发测试、构建、发布⼯工作流。还能每个分⽀自动生成一个测试地址 。
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bc3ecbb191b_w-1005_h-408_f-png_s-131342.gif)
还有脚手架生成器:vue-cli、nuxt-cli、@xunlei/generator-x-webapp。插件生成器:一键生成开源项目结构。
赵兵同学的分享通俗易懂,连产品同学都过来听。他还分享了如何不重复造轮子、如何将第三方业务需求插件化和通过知识分享的方式提高团队水平并,更多细节请到附件的PDF文件中查看。
第二场:会员活动运营框架
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bc735652d8a_w-1914_h-1080_f-png_s-2052032.gif)
第二场由负责会员业务的麦志坤同学介绍他们的会员活动运营框架。他首先介绍什么是运营活动,然后分析了他们的运营活动特点,他们的活动模式基本类似,每周却有4-6个需求,如何提高开发效率呢? 找出共同点后他们的解决方案是抽离前端公共组件库和后端公共服务,尽可能将一切在运营平台配置,减少开发量。他们的基本文案信息,统计点,支付配置,奖品库个发放奖品的条件都可以在运营后台配置。常见的抽奖转盘也有公共组件可以复用。一切都可配置后大大提高了开发效率。
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bd0335d35b5_w-815_h-471_f-png_s-42554.gif)
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bd21656cba0_w-1207_h-406_f-png_s-128958.gif)
接下来他讲了他们的前端框架遇到的问题和解决方法,比如前端框架和分包和整包引入,按需加载问题,活动框架样式和JS功能依赖无法做到非常灵活通用问题。更多细节请看附件文档。
第三场:公共模块开发指南
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bd5ea9887cd_w-1280_h-723_f-png_s-1795823.gif)
第三场由孙彬彬同学分享《公共模块开发指南》,彬彬同学在我们web平台组封装SDK很厉害,他封装的xl9 API已经被众多业务使用。彬彬同学的分享从四个方面讲起:什么是公众模块,为什么要开发公共模块,公共模块的用户,如何开发公共模块。
公共模块想必大家都很熟悉,小编就重点介绍下大家比较关心的如何开发公共模块。
1. 安装
公共模块的安装方式通常有两种:CDN在线地址,NPM模块引入。彬彬同学比较了这两种方式的优缺点,CDN异步和同步的引入方式,及如何兼容ES Module、CommonJS等多种模块规范。还介绍了打包工具webpack和rollup。
2. 接口设计
彬彬同学从接口的命名讲起,包括正确拼写的重要性,语义化,时态。又说明了同步接口和异步接口的错误捕获处理方式的区别。最后讲了参数的设计和长数字转字符串、对象转JSON的必要性。
3. 单元测试
他介绍了测试的重要性、Mocha等几个测试框架、断言库和代码覆盖率的概念。
4. 版本管理
这部分他介绍了语义化版本号的意义,还有些提交信息的一个规范:Angular规范,以及自动生成这个Angular规范的工具Commitizen,效果如下:
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007be823bfd87d_w-445_h-238_f-png_s-151631.gif)
还有根据提交信息自动生成Change Log的工具:conventional-changelog,生成的结果如下:
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007bea85eb14d4_w-569_h-287_f-png_s-55910.gif)
5. 文档
公共模块文档很重要,通常项目下都有个README,是项目的门面,基本内容应该是简要介绍模块、安装方法和使用示例。README还可以包括一些构建和版本信息的徽章、接口API、更新日志和开源协议。他还介绍了一个根据javascript文件中的注释信息生成API文档的工具-JSDoc。下面就是用JSDoc生成的迅雷9 API接口文档。
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_11_29_16007becb67eb11f_w-945_h-620_f-png_s-315006.gif)
到此三位同学的分享就结束了,相信开篇的问题大家都已在本文找到了答案,更多分享细节参见附件文档。
附件文档地址: https://github.com/xunleif2e/blog
扫一扫关注迅雷前端公众号
![](http://www.mk2048.com/web_upload/blog_imgs/7/https___user-gold-cdn-xitu-io_2017_9_18_a61c018adbf0a3e865643c51e91251bb.gif)
聊一聊迅雷前端敏捷开发那些事儿相关推荐
- 聊一聊WEB前端安全那些事儿
转载自:https://segmentfault.com/a/1190000006672214?utm_source=weekly&utm_medium=email&utm_campa ...
- 告诫一些正在路上敏捷开发前端的人...
1 前言 本人学艺不精,没有进行过任何系统化学习,曾经认为前端无非就是达成各种端的运行就可以了,在网页中奔跑,在微信小程序上奔跑,在app上奔跑,会用些前辈们造就的轮子.只要能用,那就是完成了.后来发 ...
- 项目中站立会议和故事墙的那些事儿—敏捷开发
项目组一直在推敏捷开发,但发现一个关于每日例会的问题. 场景: 每日例会是早上9:00, 把大家召集起来,这时有个主持人(每日轮流), 一个一个询问团队成员昨天做了什么,今天做了什么, 并记录在一个本 ...
- 敏捷开发:一文了解影响地图和用户故事地图之间的那些事儿
在日常的工作过程中,小编一直把影响力地图.用户故事地图和用户故事穿插在一起使用,就简单的介绍介绍这三者之间如何融合到一起,来进行产品设计的工作. 影响地图包含四个层次,why.who.how和what ...
- 「敏捷开发」适合什么样的团队?
如今互联网行业,每天有无数的公司倒下,同样也有无数的公司站起来. 越来越多的人将「敏捷开发」搬上台面大谈特谈,或是为了抢占市场先机.或是为了不断修正需求方向.或是表现出相当的创业精神进而"骗 ...
- PMCAFF微课堂 「已结束」| 京东核心团队揭秘:业务增长10倍背后的敏捷开发秘籍
1.在社区里认真发布一个问题: 2.把问题截图.截图.截图给微信提交审核即可进群 (PMCAFF小助手:pmcaffzs2,注意:已加过小助手的请勿重复添加): 注意:发布问题请补充详细的背景/条件信 ...
- 环信联合创始人: Saas敏捷开发实践!
马晓宇 --环信联合创始人/执行总裁 我们是一个做云服务的创业公司,所以我就云服务创业公司的角度,来谈谈我们是怎么去实践敏捷开发的.确切地说,就是讲讲我们这几年的这些教训- 1-创业公司敏捷开发流程有 ...
- 那些我们常用的scrum工具、敏捷开发工具
1,Leangoo Leangoo非常适用于Scrum和敏捷开发,我们可以用它轻松的创建Sprint Backlog,添加用户故事卡或任务卡,为用户故事添加估算的故事点,或通过拖拽来移动卡片到不同的状 ...
- 创业公司如何实施敏捷开发(转载)
转载自LANCEYAN.COM 说起敏捷开发,并不是因为敏捷而敏捷.这几年的敏捷开发已经被很多敏捷咨询服务商神话了,这个东西并不是神器,实施了就可以解决所有软件公司的问题,而是要结合自己公司的特点和问 ...
最新文章
- CoffeeScript 存在操作符“?” 详解
- 如何在Linux下写无线网卡的驱动
- 引用类型的转换 java,java中引用类型的强制转换
- 我XXXX!!!够了!!!从github拉到dockerhub,再用daocloud加速下载
- ASP.NET里创建Microsoft Word文档
- 尤雨溪写的100多行的“玩具 vite”,十分有助于理解 vite 原理
- win7系统修改启动项
- 揭秘网络:互联网调查入门 出版发行时间_cqy、cdx、zqsg……啥意思?揭秘QQ上的“00后黑话”...
- 今天解决了价位没有同步更新的问题
- final可以修饰哪些java名词_Java关键知识点 - Java final关键字到底修饰了什么?
- kafka的发行版选择
- Android技术分享| 超简单!给 Android WebRTC增加美颜滤镜功能
- JSON for modern c++ / nlohmann
- Android简历知识点模板
- 手把手带你分解 Vue 倒计时组件
- docker-部署lnmp
- 使用Python进行压缩与解压缩
- CF533A——题解
- 【刷题日记】BFS 经典题目
- Apache服务器配置SSL证书踩坑
热门文章
- 生日快乐歌(程序员版)
- 语音AI加速“渗入”,能帮助录音笔撬开多大市场?
- html 图片事件失效,javascript – 图像,onload事件在chrome中不起作用
- 回归单体: Istio的自我救赎?
- 计算机科技英语写作,科技英语阅读与写作
- 大连民族大学计算机毕业论文范文,大连民族大学本科毕业设计论文.doc
- 卡兹莫机器人报价_超级机器人大战MX隐藏机体入手方法
- DPlayer简单用法
- python 分隔符截取字符串_python指定分隔符截取字符串
- 聚类算法(四)—— 基于词语相似度的聚类算法(含代码)