作者:手机用户2602907295 | 来源:互联网 | 2023-09-25 19:43
个人整理的前端架构图谱,之后会根据这个图谱不断的完善内容。希望这个图谱可以对开发同学的知识脉络有个梳理的作用。
相关图谱文件已上传至Github:https://github.com/sahadev/front-end-architecture,后续将不定期更新。
2020年02月28日已更新。
项目创建 脚手架 通用组件 极速构建 飞冰
极速构建企业级中后台前端应用 https://ice.work/ 海量物料
优势在于拥有强大的物料: 涵盖:模板、区块、业务组件、基础组件 可以通过拖拽快速组合各种页面。
使用React开发,拥有特定的IDE,裁剪自VSCODE,这些组件目前还不能预览
iceworks 内置了 ICE 官方模板帮助您快速创建一个中后台应用,并提供了 SCM 的支持(强大的 Git 集成)以加速发布操作。iceworks 还支持对接应用发布平台
编码 多人协作 编码规范
Airbnb Javascript Style Guide
https://github.com/airbnb/Javascript
规范检查
配合ESLint执行
eslint tslint stylint commitlint 自动格式化
提交代码仓库时根据规范自动进行调整 按照团队统一的相关格式进行格式化,使提交到仓库的代码风格都是一致的
分支管理
Git Flow
线上分支
该分支的最后一次commit总是目前生产环境所运行的稳定版本
开发分支
所有的子分支都是从该分支检出 该分支的状态永远不落后于线上分支
功能性开发分支
根据人员与功能所划分的功能版本开发分支 命名方式可以为: 分支类型/日期-姓名-功能 例如: feature/20200202-Jim-performance-improve
统一测试分支
有效利用小程序体验版只有一个的缺点 与测试分支相配合的还需要支持一个版本可以随时切换环境 这种特点在并行开发时效果尤为明显
脚手架 根据业务特性编写的脚手架 可以通过CLI的方式生成常用的小程序页面,并直接提供固定的页面模板与常用的页面模板,减少重复量,加速开发
Yeoman
https://yeoman.io/
组件化 自动编码工具 编译 Mock 开发数据自动生成
根据接口的数据接口自动生成测试数据
Mock.js
http://mockjs.com/
随机数生成
Chance
https://chancejs.com/
Mock平台
调试 IDE 语言 Html
CSS
SASS/SCSS
LESS
POSTCSS
https://postcss.org/
JS/TS
包管理 打包工具
NPM
YARN
CNPM
淘宝出品的npm镜像,很快
运行时框架 版本发布 代码压缩 混淆 分包 最小可执行单元 发布 平滑发布
增量发布
部署工具/系统
Walle
https://walle-web.io/
Jenkins
https://jenkins.io/
国际化 运行时环境分发 根据服务的用户环境预先生成各种运行时版本,依据环境获取对应的版本代码,例如通过Pollfill
Html托管服务 极大缩短部署步骤与时间
surge
http://surge.sh/
参考本架构部署示例:http://wooden-process.surge.sh/
github pages
https://pages.github.com/
netlify
https://www.netlify.com/
几部就可以完成代码部署 支持与Github,Gitlab强关联,可以读取仓库的分支,自定义配置编译脚本,非常方便,支持环境变量配置
云服务器 测试回归 自动化测试 手工测试 代码质量测试 lint类工具
版本控制 全量发布 包含版本回退能力
灰度发布 https://mp.weixin.qq.com/s/IT65m3VwlAhXusipB6wa2g
版本定义 运行时版本识别 质量监控及告警 https://mp.weixin.qq.com/s/HtxkwEVm8f1Ur1Il6JmEYQ
执行日志控制台 运行时性能数据采集与分析 业务日志采集 网络请求采集 脚本错误采集 分函数级与业务级
白屏化日志 业务异常采集 诊断能力 社区解决方案 性能 监控 Faas网关 流量感知、HSF/HTTP触发器、限流
语言执行加速 性能监控与测试 优化手段 首屏渲染时长
首屏响应时长
资源缓存
https://www.cnblogs.com/laixiangran/p/8971119.html
expires cache-control Etag Last-Modified 资源压缩
单文件最小可运行单元,缩减空格与分号等
资源合并
多类资源合并为单个的Html/Css/Js,降低http链接次数与时间
资源裁剪
缩减为首屏所需最小代码量
CDN静态资源加速
HTTP2
缓存及版本管理
最近访问节点
负载均衡
预热
容灾
SSR
Server Side Render 服务侧渲染,有效降低网络传输时间,并且可以对渲染结果实施缓存策略,加速客户端呈现时间
Rax SSR
https://rax.js.org/ssr
数据统计 手工埋点 无痕埋点 业务数据指标 用户行为数据 流量分析
查看全站流量状况,与历史进行比较,是涨是跌,哪个时段出了问题?出了问题需要排查。
关注实时流量,如直播网站,趋势分析无法满足需要看当前在线。
来源分析
来源分哪几类,分别带来多少流量?
搜索引擎、外链的引入流量具体状况如何?
受访分析
网站哪些内容受欢迎??
页面设计是否合理?
访客分析
访客都是谁?
访客的浏览行为是怎样的?
转化路径分析
路径分析:根据您设置的特定路线,监测某一流程的完成转化情况,算出每步的转换率和流失率数据,如注册流程,购买流程等。
社区解决方案 DevOps Auto DevOps provides pre-defined CI/CD configuration which allows you to automatically detect, build, test, deploy, and monitor your applications.
CI/CD 持续集成(Continuous Integration) 持续交付(Continuous Delivery) 持续部署(Continuous Deployment)
https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/
https://mp.weixin.qq.com/s/k16SjTN7__iRB_7q78hldg
Gitlab
自动构建
自动测试
代码质量分析: https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html
自动部署
自动性能测试
自主监控
Code Review
https://about.gitlab.com/stages-devops-lifecycle/code-review/
Review Apps
https://docs.gitlab.com/ee/ci/review_apps/index.html
Node中间件 通过Node.js实现的网关层,可以整合各服务网关数据,实现按需配置请求,减少网络等待时间,加快网络请求时长,降低开发成本,在大型复杂的应用中效果尤为明显
按需获取数据常见的两种方案: 1.中台化服务 2.GraphQL
应该多关注稳定性,容灾容错,弹性,监控告警等
逆向分析 JS 安全 数据安全 代码安全 通信安全 社区库 热力图 https://github.com/Leaflet/Leaflet.heat
Demo1: http://leaflet.github.io/Leaflet.heat/demo/
Demo2: http://leaflet.github.io/Leaflet.heat/demo/draw.html
three.js (3D) https://threejs.org/
商业解决方案 Lottie (动画) For Web, Android, iOS, React Native, and Windows
Lottie is a mobile library for Web, and iOS that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile!
https://github.com/airbnb/lottie-web
http://airbnb.io/lottie/#/
跨平台开发 Rax https://rax.js.org/
Electron 跨域 http://www.ruanyifeng.com/blog/2016/04/cors.html
简单请求 非简单请求 非简单请求在发起请求前会发起预检,执行Opions的请求,如果预检通过,则本次生命周期内不会再进行预检
常用工具推荐 https://ice.work/docs/guide/resource/tools
FusionCool Sketch设计辅助工具
React Developer Tools Charles Postman Octotree XMind: ZEN - Trial Version