本文由  网易云 发布。

作者:赵雨森

2017年的前端已然没有剧烈的变动,但发展势头仍然不减。语言、标准、框架和库逐渐稳定和完善,各团队再也不用花大把精力放在造轮子上,而更多的是去积累所需的组件库、开发合适的工具以及整合自己的解决方案。

我们云计算技术部前端开发组也不例外,在与云计算其他组一起度过了网易云基础服务(网易蜂巢)去年的快速发展期之后,现在的主要目标已经转为如何更好地加快迭代效率、提升用户体验、提高网页性能。针对这个目标,我们组在这一年中对前端技术、工作模式、技术积累等方面做了整体的优化与演进。

前端技术

技术选型

年初,在调研和讨论市面上的各个框架之后,我们决定抛弃老的 NEJ+Regular+MCSS 架构,改用 Webpack+Vue+PostCSS+CSSModules 架构

主要从以下这些方面考虑:

  • 开发效率(Webpack的热更新 + Vue组件的局部热更新 > 传统开发模式的手动刷新)
  • 性能问题(Vue的依赖管理 < Regular的脏检查)
  • 潜在 bug(Vue的单向流 < 数据流向不明确的双向绑定,CSSModules局部class < 传统CSS全局class)
  • 框架流行度(Webpack+Vue+PostCSS > NEJ+Regular+MCSS)
  • 学习曲线(Vue < NEJ+Regular)
  • 文档完善性(Webpack+Vue+PostCSS > NEJ+Regular+MCSS)
  • 社区支持(Webpack+Vue+PostCSS > NEJ+Regular+MCSS)
  • ...

以下两张表是我们针对各个框架的调研结果,放出来供大家参考:

目前除了网易云基础服务控制台正在迁移架构之外,后来开发的系统如域名系统、运营平台、专属云管理平台等均已采用新的架构方案。

组件库

为了减少开发成本、保证各项目用户体验的一致性,我们根据设计组制定的规范,实现了一套独立的组件库——CloudUI。

目前 CloudUI 已包含 50 多个组件、3 套主题,实现完善度达到 80%,业务覆盖率达到 75%,同时支持了多个云计算项目。

经过几个月的实践,我们已经练就一套成熟的迭代流程,能够快速响应、快速开发、快速发布,并且能输出细致的 ChangeLog:

v0.1.25修复:
- 移除对`u-modal`组件增加`heading`属性和样式修改,
- 修复`u-table-view`组件在`display`值为`none`的情况下,显示错乱问题增强:
- 更新组件`u-line-chart`样式,增加到20种不同颜色线段和超出设置默认线段颜色

全栈化

今年我们组在全栈方面做了一些实践与积累,团队逐渐向全栈化发展,一部分组员侧重于对传统前端中多端的研究以及与设计师进行深度合作,另一部分组员侧重于研究 Node.js 全栈开发模式。

下半年我们采用 Vue+Koa 的架构重构了域名系统,并积累了一套相应的工具模板与实践经验。

工具链

根据前面的一系列技术选型与实践方案,我们研发了相应的一系列工具。

前端方面

  • 集成构建工具
  • icon-font-loader
  • svg-classic-sprite-loader
  • vue-multifile-loader
  • vue-markdown-html-loader

后端方面

  • 集成开发工具
  • 工程模板与核心包
  • 由 JSDoc 注释根据生成 Swagger 接口文档

测试与监控

为了保证业务的代码质量与运行的稳定性,我们从两个维度做了相应工作:

  • 给网易云基础服务控制台的主要模块添加了 e2e 测试,录制 UIRecorder 脚本并添加到持续集成。
  • 产品接入 APM,进行前端的性能统计与错误统计。

工作模式

为了提高整个团队的技术实力、加强每个组员的技术深度,我们在工作模式上也做一定调整。由以前每个人的单一业务线改为业务+技术两条线。业务线需要技术线来提升质量与效率,技术线也离不开业务线的实践和经验。

学习分享

关于团队内的知识积累与学习分享问题,我们也渐渐摸出了一些套路:

  • 利用 GitLab 的 MergeRequest,双人结队 CodeReview
  • 两周一次的前端组分享
  • 与周边部门的合作交流
  • 图书管理机制

总结

在这一年里,我们组承担了不少项目,肩负了更多的责任。

在这一年里,我们完成了技术的转型与积累,已经摆好姿态去迎接明年新的挑战。

在这一年里,我们还没有做太多的技术输出。一大波我们组的文章即将到来,咱们网易前端技术大会再见~


最后祭出我们的大杀器

了解 网易云 :
网易云官网:https://www.163yun.com/
新用户大礼包:https://www.163yun.com/gift
网易云社区:https://sq.163yun.com/

转载于:https://www.cnblogs.com/163yun/p/8868210.html

网易云复盘:云计算前端这一年(AngularJS粉慎入)相关推荐

  1. 网易云催生云计算更多可能性

    今年的云计算市场可谓热闹非凡,除了有UCloud.Salesforce等知名创业公司频爆发展新动态之外,云计算市场更上演一场各大巨头之间竞争的拉锯战.互联网巨头的入场让这个战场更加"波涛汹涌 ...

  2. 网易云音乐的前端基础设施是如何优雅地走向统一的

    点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 作者|葛星 编辑|黎安 网易云音乐(以下简称"云音乐")的前端团队大概在 4 年前初具规模,4 年多的快速发展过程当中 ...

  3. 网易云项目 【前端】【黑马】

    参考文档: 网易云音乐接口下载地址:GitHub - Binaryify/NeteaseCloudMusicApi: 网易云音乐 Node.js API service网易云音乐 Node.js AP ...

  4. 网易云音乐大前端团队:Wakeup in XNU

    苹果在 iOS 13 的时候,在内核中加入了一个新的性能衡量指标wakeup,同时由于这个指标而被系统杀死的应用数不胜数,其中也包括我们常用的微信淘宝等.而这个指标完全是由 XNU 内核统计的,所以我 ...

  5. InfoQ专访网易云陈谔:用微服务体系满足企业数字化转型需求

    现在的公有云市场,国外有AWS,Google Cloud和微软的Azure三足鼎立,国内则是阿里云一家独大,即便如此,在数字化浪潮下,云计算市场依然有很多玩家进场,各家竞争也相当激烈.在这样的环境下, ...

  6. 优云携手网易云 助力企业“互联网+”转型

    12月16日,网易旗下"网易云"首届"网易云聚,共创未来"合作伙伴大会在网易杭州园区举行,优云(uyun.cn)成为首批授牌20家企业之一,并作为核心合作伙伴代 ...

  7. 网易云MUSIC年终奖0.5?听到消息我扔了耳机

    一.百度 1.MEG开始突然抓考勤,多个团队口头通知,要求早上10点之前到公司.同时工作日下班免费打车的时间将从9点改成10点,预计本周开始实行,这意味着"早十晚十"成为了公司倡导 ...

  8. 网易云音乐React Native体系建设与发展

    本文作者:章伟东 (网易云音乐大前端团队) 0.33 历史 17 年 3 月份,为了解决商城性能和用户体验问题,云音乐技术团队组建了一只 4 人 ReactNative 开发小分队:我负责 RN 前端 ...

  9. 全球云计算大会起航,网易云阮良解读人工智能在产品中的创新实践

    9月20-22日,由上海市经济和信息化委员会指导,UBM China主办的2016第四届全球云计算大会·中国站(Cloud Connect China)在上海国际会议中心举行.Cloud Connec ...

最新文章

  1. java 实验4 异常
  2. 人工智能的发展之路,居然要从春秋时期讲起?
  3. HDU 3683 Gomoku
  4. Docker 基本用法
  5. 【数据结构与算法】图的邻接矩阵表示及其BFS、DFS的Java实现
  6. 软考初级——操作系统
  7. 三坐标测量圆直径_基于三坐标测量机的渐开线齿轮,测量方法
  8. 关押罪犯 扩展域并查集
  9. Leaning perl 第2章练习题答案
  10. QML 自定义鼠标光标
  11. Filebeat日志收集
  12. JAVA自学知识点评定标准--自尚学堂马士兵
  13. 开放平台(接口)开发-1-天气API接口大全
  14. 浏览器网页翻译插件选十大翻译器网页翻译插件
  15. 【计算机组成原理】程序,指令,机器指令,微程序,微指令,微命令,微操作的关系
  16. 网络安全防护-----本地组策略的使用
  17. linux运维必备178个命令
  18. 根据WOS获取某篇SCI论文被引用次数[Web of Science 统计]
  19. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)
  20. 在线学习python

热门文章

  1. SpringCloud Config手动刷新及自动刷新
  2. 服务间的通信 RestTemplate和Feign
  3. Android开发笔记(一百七十二)第二代翻页视图ViewPager2
  4. 福特牵手百度启动L4级自动驾驶联合测试,年底“上路”
  5. 實用 SMTP 指令
  6. Vue.js学习系列(九)---使用路由搭建单页应用(二)
  7. 程序员经常遇见的9大困难你造么?
  8. java对redis的基本操作(一)
  9. jqGrid 操作一些总结(二)
  10. finfoopen需要什么扩展 php_php获取文件mime类型的几种方法