技术栈规范¶
团队的开发效率是基于稳定且熟练的技术栈。稳定的技术栈规范有利于团队协作和沟通。我们对新的技术是完全开放的,一般而言, 新的技术, 新的解决方案,总是为了更高的生产力而诞生的。 我们容纳一个新的技术选型会有以下几点考虑:
- 学习成本。考虑团队成员的接纳能力。如果成本小于收获的利益,在团队里面推行估计阻力会比较大
- 收益。是否能够解决当前的某些痛点
- 考虑风险。一般我们不会将一个实验阶段的技术使用的生产环境中
语言¶
- ✅ Typescript
- Javascript
- 需要使用jsdoc进行注释, 推荐渐进式迁移到Typescript. 在无法运行Typescript的环境也推荐该注释方式
框架¶
- ✅ React
- 备选
- preact
- react-native
- taro(小程序开发)
- 生态
- 路由
- react-router
- 状态管理
- ✅ react hooks
- ✅ mobx
- redux 由于冗余的模板代码,以及不利于Typescript约束,我们已经停止使用该方式.
- UI框架
- ✅ antd
- antd-mobile
- 备选
- pile
- ionic-react
- ✅ antd
- 开发模式
- ✅ react hooks
- 异步处理
- rxjs
- 数据可视化
- rechart
- websocket
- sockjs
- 地图
- react-bdmap
- 图标
- ✅ svg: 配合
svgr
转换为react组件 - iconfont
- ✅ svg: 配合
- 路由
样式¶
- 命名规范
- BEM
- ✅ CSS-in-js
- styled-components
- pre-compiler
- SCSS
- post-compiler
- PostCSS + env
QA¶
-
测试
- 测试框架
- 组件测试
- react-testing-library
- enzyme: react组件测试
- hooks 测试
- puppeteer: headless chrome
-
lint
- tslint
- stylelint
-
代码格式化
- ✅ prettier
构建(项目构建统一使用gdjiami/cli)¶
- webpack
- rollup
- parcel
- babel
- PWA
项目管理¶
- ✅ yarn 统一使用yarn
- lerna
模板引擎¶
- pug
开发工具¶
- vscode
nodejs¶
- express
- sock.js
utils¶
- jquery
- lodash
文档生成¶
- docz
- ✅ storybook
持续集成¶
- gitlab ci
版本管理¶
- git
- fork(可视化客户端)