Frontend 2019 包含了前端组在 2019 年的整体目标以及方向,并且其内容具有很长的时效性,可以略作调整和更新就成为后续年份的计划。
此计划的目标是在人员不断增加的情况下,希望所有组员:
因此前端组在 2019 年将以 working group(工作组)的形式拆分任务,每名组员根据能力和兴趣被安排加入各个 working group 中。每个 working group 至少包含 2 人,避免人员上的单点,不要求所有人掌握未参与的 working group 的技术细节,但鼓励所有人参与其它 working group 的设计阶段工作。
每年我们会挑选 3 个最重要的关键词来说明我们主要的工作方向,关键词决定了我们要关注哪些领域以及产生哪些 working group。
Explicit 包含了我们对企业级前端开发的许多愿景,例如代码的类型安全、显式地异步状态、合理的异常处理、及时地 UI 响应等,我们期望企业级客户可以清晰地完成每一个操作,极少遇到异常情况,即使异常发生也可以从中恢复或得到后续处理建议。
Explicit 也代表着我们对质量的追求,例如 lint、测试、i18n 验证等每一个环节都应该有可量化的质量保障手段。
Blazing fast 在 2019 年特指我们的研发效率要有非常大的提升,能够让需求分明显感觉到我们的完成需求的速度非常快。
为达到这一目标,我们需要有封装完善的基础组件、易于拓展的代码设计、可自动生成的模板代码、提升效率的开发工具等。
SmartX 所有的研发组都需要在各自领域做业界最先进的实践,因此前端组也要保证整体技术储备始终是 future ready 的。
例如更快更安全的 WebAssembly、图形渲染相关的 WebGL 和 WebGPU、网络相关的 HTTP2 和 WebRTC,我们都应该保持关注,并尝试在合适的场景中加以使用。
每年我们会挑选出一些重点关注的前沿技术领域,我们认为在这些领域中投入时间和精力更容易产出有价值的内容。
今年前端组的项目会全面转向 typescript,因为我们已经意识到强类型的语言不仅可以提高代码质量、减少 debug 花费的时间,还可以通过搭配开发工具获取更高地开发效率,同时在代码生成等方面也有更大的拓展空间。
在使用 Typescript 的过程中我们并不是单纯的消除编译器的警告,而是要熟悉编译器的特性,写出更加安全的代码让编译器提供更好地保护。
GraphQL 同样是为了解决我们开发效率的问题而引入,为 UI 提供更加友好、类型明确的数据接口。GraphQL 的社区非常活跃,我们会重点关注 Apollo 和 Prisma 这两个组织提供的工具和方案,同时加深对 GraphQL spec 的理解。最终根据项目需求的不同,灵活地选择使用第三方工具还是自行在部分环节加以实现。
Vue 和 React 是我们主要使用的两个 UI 框架,除了熟练使用以及深谙最佳实践之外,我们还要持续关注他们的最新进展。
2019 年我们需要对 Vue 3.0 的更新以及 React 的 fiber 和 suspense 特性有非常透彻的理解。
vscode 目前只是一个编辑器,但是之后它很有可能演进成开发工具领域的标准平台。我们需要关注的点包括:定制 vscode 插件、集成 vscode 制作各类工具、了解 remote vscode 的最新方式。
目前我们开发和维护了不少内部系统和工具平台,部署方式各异,部分实现了 docker 化。K8s 给我们提供了更快捷专业的部署、运维、监控机制,我们需要从用户视角出发充分使用 K8s 来管理我们的应用,并给之后产品中的容器平台功能提出建议。
目前 WebGL 已经非常成熟,也出现了 Babylon.js v4 这样完成度很高的库和工具。开始了解 WebGL 可以让我们在实现高度定制的数据可视化需求时更加得心应手。
[All]
负责在新的 Fisheye 仓库中重写旧 Fisheye 代码、开发 4.5 周期中的新功能。
目标:
相关文档:
[zhuangdian, yanzhen, shiqi, xiaowei, zhichen]
负责提供产品内所有项目所需要的基础组件、通用函数、插件等。
目标:
相关文档:
[yeji, xiaowei, shiqi, yanzhen]
为官网及各类内部系统提供 Web 全栈开发支持。
目标:
[zhuangdian, xiaojun, yanzhen]
为一线团队提供各类工具支持,帮助销售提升业绩。
[yanzhen, zhuangdian, xiaowei, xiaojun, zhichen]
负责提供产品研发相关的开发工具。
目标:
相关文档:
[yanzhen, yeji, zhuangdian]
负责提供基于 K8s 的前端组通用的应用部署模板,并给出部署最佳实践。
目标: