IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端工程化 -> 正文阅读

[JavaScript知识库]前端工程化

现在面试有时候会问到工程化问题,所谓工程化,就是在一些问题的上最优解决方法

现在做一个大型项目一般遇到的问题有:

css管理问题:就是css选择器命名冲突问题怎么解决,就是如何做样式隔离的?方法对于react来说就是css modules,在class里写变量,然后react脚手架自动将变量名转化为唯一的字符串当作class选择器的名字;

对于vue来说就是用scoped来解决,原理是同一个组件的所有元素上都添加了一个唯一的属性名,然后通过属性选择器的使用方式隔离样式,这样做是否有性能问题,怎么测试css选择器的性能?

跨组件通信怎么做?对于react来说一般用redux,对于vue来说一般用vuex

国际化怎么做?国际化有一套通用的解决方案,就是可以现在后台创建一个应用,这个应用就是跟当前项目的国际化解决方案应用,然后在引入一个第三方库,然后每次需要添加新的文案的时候,就是在后台找到这个应用,添加一个key和这个key对应的其他国家的语言的值,然后在前端这边执行第三方库,第三方库会根据前端传递的应用名,拉取对应的文案,相当于key和对应的数据有了,然后前端这边根据当前的国际环境使用对应的文案即可,一般是一个4个对象,一个是key的集合,剩下3个分别是中文,日文,英文对象,这3个对象是key-value形式,key就是第一个key集合里的key,value是对应的文字

UI组件库的选择?大公司一般有一套自己的组件库,直接用即可,小公司一般用饿了吗或者vant

代码规范怎么做?代码规范一般都使用eslint,如果让程序员自己做代码规范,那是最蠢的,代码规范一开始就应该搞自动化,通过监听保存文件的操作,自动对当前文件走一次eslint,这样大家都省事了

自动化发布怎么做?这个真不用前端做,一般大公司都有一个发布平台,可以把代码拉下来然后进行打包和发布的操作,如果没有就自己搭建一个jenkins

代码管理一般用git,多人开发只要拉好分支就行,开发好之后进行评审,评审这块儿大公司也会有一个平台用于代码评审,指定好远程分支就可以进行评审了,评审好后主管应该会把这条分支的代码合并到develop上,到时候发布即可

测试这里,大公司居然是自己测试的,但是发布的时候有个灰度发布的功能,可以先发1%的用户,然后通过性能监控观察是否出现bug,如果出现bug,就马上关闭灰度,

灰度是一个可以及时关闭新功能的开关,就是前后端代码都可以添加灰度key,就是有新功能的时候,申请一个灰度key,然后前端开发的时候,从后端获取可用的灰度key,如果后端获取的灰度key没有新功能对应的灰度key的话,就不走新功能的代码,其实就是判断新功能灰度key是否存在,如果存在,就做一些事情,如果不存在就什么都不做,跟以前一样

这个灰度key的好处是,如果线上新功能有bug,可以瞬间屏蔽新功能,但是不好的地方是,污染前端的代码,前端代码里会有很多条件判断,用于判断灰度key是否可用,是否有一种不污染前端代码,又能瞬间屏蔽新功能的做法吗?

埋点和性能监控,这个大公司一般都会做,用于进行数据分析,这个功能完全可以使用装饰器的方式做,语言选择ts,这样可以避免埋点和性能监控污染业务逻辑

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:42:12  更:2021-09-20 15:43:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 23:35:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码