react

【深度好文,值得万转】不再痛失薪资上调和年终奖,快来试试自动化测试!!!

微笑、不失礼 提交于 2020-08-16 17:47:32
这篇文章是前端自动化测试系列的开始,自动化测试系列会从理论走向实践,真正带领大家学会使用前端自动化测试框架,并能在业务中落地。 看完整个系列,还不会使用自动化测试工具为生产提效,请来找我! 点赞数过一百,下周更新前端自动化测试与 React 的结合,如何在 React 项目中落地,欢迎大家多多点赞评论收藏!你们的赞赏是我写作最大的动力! 之前发沸点说掘金发文只发精品文,阅读量最少 3k,看看这次行不行。 悄悄说一句,文末有福利! 众所周知的原因,前端作为一种特殊的 GUI 软件,做自动化测试困难重重。在快速迭代,UI 变动大的业务中,自动化测试想要落地更是男上加男 :dog:。 近期的学习过程中,翻阅了众多前端自动化测试相关的文章, 「 大多数都在讲如何使用自动化测试框架对前端代码进行测试,很少讲解为什么要引入自动化测试,引入自动化测试有哪些好处,哪些项目适合引入自动化测试 」 ,但这些才是真正我们想要知道的。 考虑到各位读者爸爸们可能没有接触过自动化测试的内容,这篇文章就从基本概念和基础用法入手,为大家讲解自动化测试的内容。 开始之前,先进行一下前戏(可能比较长,不喜欢的可以快进 :dog:): 情景还原 小王是国内一家大厂的前端开发。就在述职前一周,产品经理给了一个需求,要求在老项目上加上新的功能。 小王打开老项目代码,定睛一看,心头一紧 —— 要改的组件已经长达 800 多行

新手小白开始学前端有什么建议?

99封情书 提交于 2020-08-16 17:44:55
如今,随着物联网时代的到来和网络营销的日益发展,前端技术比以往更加火热。我们可以看到Web应用与新技术趋势紧密相连,而这直接导致了前端行业广阔的就业前景。正因如此,学习前端的朋友越来越多了。为了帮助大家可以更高效地学习,本文为大家总结了一些零基础开始学前端的建议,希望大家可以少走一些不必要的弯路。 1、前端行业现状和发展前景怎么样? 在学习一门技术之前,我们应该先对整个行业的发展情况有所了解,毕竟有时候选择比努力更重要。随着大型企业对于用户界面体验的要求的高度重视,前端人才的需求也在增加。目前,我们可以在boss、拉勾网的招聘中看到,Web前端的需求量还是排名第一。当然,前端的广阔发展前景和高薪的待遇回报说明了这不是一个低门槛的行业。近些年,前端语言和框架也实现了不断的升级,前端和后台技术要求达到相同水平。因此,那些在前端行业感觉就业难的朋友,问题可能就出在技术水平还有待提高。因此,前端行业的发展前景毋庸置疑,但前提的是从业者的专业能力能不能跟得上行业的要求。 2、如何规划个人的职业发展路线? WEB前端工程师不是一个简单的职业,在准备进入这个行业之前就要明确自己一个职位目标和发展路线,这样才能在职场上走得更远。资深WEB前端工程师是一个WEB前端最基本的选择,需要从业者在专业领域不断学习和积累,把更多的时间花费在技术的钻研上。还有一个很好的职业发展目标是成为WEB架构师

使用 React Hooks 结合 EventEmitter

岁酱吖の 提交于 2020-08-16 08:16:32
EventEmitter 很适合在不修改组件状态结构的情况下进行组件通信,然而它的生命周期不受 react 管理,需要手动添加/清理监听事件很麻烦。而且,如果一个 EventEmitter 没有使用就被初始化也会有点麻烦。 目的 所以使用 react hooks 结合 event emitter 的目的便是 添加高阶组件,通过 react context 为所有子组件注入 em 对象 添加自定义 hooks,从 react context 获取 emitter 对象,并暴露出合适的函数。 自动清理 emitter 对象和 emitter listener。 实现 实现基本的 EventEmitter 首先,实现一个基本的 EventEmitter,这里之前吾辈曾经就有 实现过 ,所以直接拿过来了。 type EventType = string | number export type BaseEvents = Record<EventType, any[]> /** * 事件总线 * 实际上就是发布订阅模式的一种简单实现 * 类型定义受到 {@link https://github.com/andywer/typed-emitter/blob/master/index.d.ts} 的启发,不过只需要声明参数就好了,而不需要返回值(应该是 {@code void}) */

字节跳动互娱前端架构组内推, 罕见组内直推机会,欢迎来撩!

好久不见. 提交于 2020-08-16 06:44:28
这是一篇内推招聘的文章,给大家提供目前我所在小组的内推相关信息,因为组里面进去的同学基本是通过内推的方式进入,因此也希望大家把握住这个机会哦。同时内推之后简历直接到达 leader 手上,处理更加迅速,到达面试的几率也大大增加。下面是关于小组和职位的介绍。 「字节跳动抖音前端架构组」,不写业务代码,专注系统架构与工程效率性能,有众多团队大牛手把手指导,技术氛围浓厚,leader 非常厉害,团队的技术产品无论是格局还是细节的实践,都处于业界领先水平。 团队工作涉及整个 工程化 的全部流程和体系,包括 构建 、 开发规范 、 测试 、 端内和端外的完整调试体系 、 CI和CD ,以及 代码安全 相关的扫描工作, 前端性能 的监控,基础前端 运行时库 和 组件库 的建设, nodejs 基础库的建设, 中后台可视化搭建平台 的建设,整个公司 资源分发平台 的建设, 跨端引擎 的开发和维护等等。 base 所在城市: 北京 、 上海 、 杭州 均包括。 社招 、 校招 和 实习 都支持。具体的 JD 如下: 【社招】前端架构师 职位描述 负责抖音、火山等业务前端架构的设计、实现和优化。 1、包括但不限于:PC、H5、Hybrid、App Native、BFF、RPC等技术场景的架构; 2、制定开发规范,工程化体系搭建及优化(包括规范、开发脚手架、构建、CI、CD等),提升开发效率

开发一个大型后台管理系统,应该用前后端分离的技术方案吗?

六眼飞鱼酱① 提交于 2020-08-16 04:06:25
话说这天,我们团队开会讨论了一个问题,不,与其说“讨论”,不如说“争吵”更合适。 背景是这样的: 我们要开发一个 xxx 后台管理系统,这个系统业务复杂、功能又多,大家的争吵集中在“这个系统是否应该用前后端分离的方案”。 这次争吵的问题比较典型,于是我就写了这篇文章。为了大家好理解,把“xxx 后台管理系统”泛化一下,变成: 开发一个大型后台管理系统,应该用前后端分离的技术方案吗? 先说一下,本文中的观点肯定有人不认同,再加上我对前端技术掌握有限,所以大家批判的看吧。 1. 先审题,冷静的分析一下 前后端分离的优点多多,这不需要多说,大家人人都清楚。 来,讨论之前,我们先一起好好审审题。 结合“ 开发一个大型后台管理系统 ”这个约束条件,冷静的分析一下: • 什么是后台管理系统:首先后台管理系统这个称呼,意味着这是一个 B 端系统 。可以小到部门级应用(客户投诉登记系统、办公设备台账系统),大一点可以是大集团级核心系统(500 强保险公司客服、呼叫中心),可以是 ERP、CRM、OA(SAP、用友、泛微协同),可以是一个 B2C 电商的商城后台、支付网关管理控制台,可以是 Saas 的管理后台(Salesforce、Teambition、Jira),可以大到阿里云控制台…… • 什么是大型:我理解大型系统是指功能模块多、交互复杂,而不是访问量、TPS、数据量大。所以 CMS、OA

前端面试

≯℡__Kan透↙ 提交于 2020-08-16 03:56:01
1、页面编码和被请求的资源编码如果不一致如何处理? 对于 ajax 请求传递的参数,如果是 get 请求方式,参数如果传递中文,在有些浏览器 会乱码,不同的浏览器对参数编码的处理方式不同,所以对于 get 请求的参数需要使用 encodeURIComponent 函数对参数进行编码处理,后台开发语言都有相应的解码 api。对于 post 请求 不需要进行编码 2、如何避免回调地狱 (1)拆解function:过多的嵌套(缩进)会极大的影响代码的可读性。基于这一点, 可以进行一个最简单的优化----将各个步骤拆解为单个function, 该方法非常简单,具有一定的效果,但是缺少通用性。 (2)事件发布/监听模式:我们可以监听某一件事情,当事情发生的时候,进行相应的回调操作; 另一方面,当某些操作完成后,通过发布事件触发回调。这样就可以将原本捆绑在一起的代码解耦。 events 模块是node原生模块,用node实现这种模式只需要一个事件发布/监听的库。 (3)Promise:Promise是es6的规范 首先,我们需要将异步方法改写成Promise,对于符合node规范的回调函数(第一个参数必须是Error), 可以使用bluebird的promisify方法。该方法接受一个标准的异步方法并返回一个Promise对象 (4)generator:在function关键字后添加

初学编程,我们每次在编完代码之后什么都记不住!这应该怎么办呢?

你说的曾经没有我的故事 提交于 2020-08-16 03:53:17
初学编程,为什么我们在编完代码之后什么都记不住?其实不仅仅是是大学初学编程的小伙伴们,就连笔者,在我最开始学习编程的时候,也是敲一次程序忘一次代码,开始的时候我也想不通,以为是我不适合学习编程,所以每次都会在学习编程语言的时候,强迫努力记住所有一切,结果还是记不住,渐渐地我发现: 虽然有些人可以过目不忘,直接在脑海里就能想出问题的解决方案,但普通人却不能。特别是那些刚开始学习和探索编程世界的人,比如我自己。我逐渐了解到,记住所有你接触过的代码是一件不可能的事情!所以后来我就渐渐放弃了,也认清了记不住代码不是不适合学编程的现实。那么问题来了:在程序员的职业生涯中,那么我们该如何解决这一问题? ​ 要明白你能做什么,而不是记住怎么做 其实,代码可以构建的功能有无数种可能性!你可以设想通过代码构建任何内容,只有你想不到的,没有构建不了的。学习一种新语言是一件非常令人激动的事情。查看问题以及代码示例,并通过这些示例学习如何利用这种语言以及/新概念完成工作,这都非常重要,但我们无法记住所有的信息,不要做无谓的尝试!你可以在今后需要实现的时候,再反过来查看,刚开始的时候,你只需要记住这种概念可以实现什么样的功能。 在我深入研究React.js时,这种方式给予了我的学业很大帮助。实现的可能性太多了,你有无数种方式传递props、创建新state、组合组件——实在太多了!就像一个大谜团!

10大免费矢量插画网站

限于喜欢 提交于 2020-08-16 01:22:35
01. undraw 开源项目,免费使用。可自定义颜色,然后下载svg或者png适量插画素材。 02. Ouch 十分全面的样式与分类,可免费下载png格式,svg格式为付费的。 免费版使用需要提及来源。 03. absurd 画风荒诞夸张的矢量插画素材,免费版使用需要链接来源。 04. humaaaans 主要是矢量人物插画,肢体分离,各种颜色样式可随意组合,包括png、sketch和studio文件,可免费商用。无需标记。 05. Illustration Gallery 可以自定义颜色的免费矢量素材插画库,可免费商业使用。 06. iradesign 提供5种渐变色自定义矢量插画的各部位颜色,可免费商用。 07. drawkit 提供免费版和付费版,免费版可商用。 08. lukaszadam 开源矢量插画,可免费商用。 09. react kawaii 开源插画图标,可以组合表情,包括react代码及sketch文件 10. freevector 历史悠久的一个矢量图网站,文件一般有ai、png、svg格式个人免费使用,需要注明来源。 作者:须臾所学kevin 链接:https://www.jianshu.com/p/3bf6748b5ac8 来源: oschina 链接: https://my.oschina.net/moks/blog/4477447

Redux 入门教程(一):基本用法

笑着哭i 提交于 2020-08-16 00:03:01
一年半前,我写了 《React 入门实例教程》 ,介绍了 React 的基本用法。 React 只是 DOM 的一个抽象层,并不是 Web 应用的完整解决方案。有两个方面,它没涉及。 代码结构 组件之间的通信 对于大型的复杂应用来说,这两方面恰恰是最关键的。因此,只用 React 没法写大型应用。 为了解决这个问题,2014年 Facebook 提出了 Flux 架构的概念,引发了很多的实现。2015年, Redux 出现,将 Flux 与函数式编程结合一起,很短时间内就成为了最热门的前端架构。 本文详细介绍 Redux 架构,由于内容较多,全文分成三个部分。今天是第一部分,介绍基本概念和用法。 零、你可能不需要 Redux 首先明确一点,Redux 是一个有用的架构,但不是非用不可。事实上,大多数情况,你可以不用它,只用 React 就够了。 曾经有人说过这样一句话。 "如果你不知道是否需要 Redux,那就是不需要它。" Redux 的创造者 Dan Abramov 又补充了一句。 "只有遇到 React 实在解决不了的问题,你才需要 Redux 。" 简单说,如果你的UI层非常简单,没有很多互动,Redux 就是不必要的,用了反而增加复杂性。 用户的使用方式非常简单 用户之间没有协作 不需要与服务器大量交互,也没有使用 WebSocket 视图层(View

中国到底有多少万软件开发人员?今年前端饱和了吗?

北战南征 提交于 2020-08-15 15:33:17
写这篇文章的目的并不是为了贩卖焦虑。只是想带领大家看一下2020年前端开发的大环境 下面这张图是在百度指数上搜索“前端工程师"得到的搜索趋势图 我们可以看出前端行业在2015-2018年获得了很大的关注度,在2018-2019年逐渐趋于平稳。 上图说明了两点: 1、目前前端从业人员很大一部分是2015-2018这两年进入前端领域的,他们大多数拥有3年左右的工作经验。 2、目前前端的关注热度在供需关系的调节下归于正常值 客观统计数据分析 1、《中国互联网发展报告2019》指出:中国网民规模为8.54亿人,互联网普及率达61.2%,网站数量518万个 2、埃文斯数据公司2019年最新统计数据,2018年全球共有2300万软件开发人员,预计到了2019年底,这个数字将达到2640万,而到了2023年或将达到2770万,其中增长最快的国家是中国(到2023年将占6%至8%)。而作为软件开发人员的重要组成部分,全球程序员的数量也会相应地持续走高 简单推算一下也就是 目前中国保守估计有 160万 软件开发人员 根据第二条的统计数据以及结合react和vue在github上的star数 我们可以粗略估计 中国的前端开发人员在25万左右 不超过30万 3、从全国互联网行业程序员的学历分布来看,具有本科学历的人才占比最高,为69.27%;硕士学历人才占比为14.53%,本硕学历的人才合计为83.80