公司:58同城
58同城(NYSE:WUBA),简称58,是一家位于中国北京市的生活服务及分类信息网站,以在地服务为主,举凡租房、招聘、交友、水电、二手交易等等,由北京五八信息技术有限公司拥有,创始人是姚劲波,成立于2005年12月12日。该网站是中文最大的生活信息网站,该网站的口号是“一个神奇的网站”。
你真的了解vue模版编译么?
本文的初衷是想让更多的同学知道并了解vue模版编译,所以文中主要以阶段流程为主,不会涉及过多的底层代码逻辑,请耐心观看。
使用“黑魔法”优雅的修改第三方依赖包
Vue项目中使用的element-ui,由于弹窗里表单项太多,一些表单项会在可视范围之外。校验表单时,如果未通过校验的表单项在可视范围外,用户感知不强。所以需要在表单校验未通过时滚动到第一个未通过校验的表单项那里,翻看element-ui文档,发现未提供该API。
起初想到的方案有两种:
- 在业务中封装函数,表单校验失败时调用该函数,根据表单校验失败的className,获取第一个校验失败的dom元素,滚动到指定的dom元素位置。但是如果页面存在多个form表单需要做区分,会增加我们的一个工作量,并且不够优雅。
- 修改element-ui的源码,增加一个API。但是在平台编译时如果重新执行npm install时代码会被覆盖,并且团队协作时也会遇到这个问题,团队开发中有诸多不便。
后面经过一顿搜索后,发现一个“黑魔法”的解决方案。并且该方案上手简单、便携、且一劳永逸。
Fair热更新设计与实现
由于客户端每次更新的时候,都需要经过发布平台的审核,不管是需要紧急修复的bug,还是想要快速上线的需求,都绕不过审核这个问题。而很多开发者都会遇到一个问题,就是审核时间过长。审核过长可能会导致bug不能及时修复,严重者造成巨大的经济损失。也可能导致新的业务无法及时上线,错失业务的最佳推广时机。所以,长久以来,客户端都存在一个热门的话题,那就是热更新。
使用hooks替代redux实践
具体能否完全代替redux,还有待考证,本文仅提供思路。
Fair 逻辑语法糖设计与实现
语法糖(英语:Syntactic Sugar )是指 计算机语言 中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。Fair 语法糖 并不是为Dart语法提供易用性的接口,而是为了让Fair在布局和逻辑混编场景下构建更方便。
Fair下发产物-布局DSL生成原理
Flutter在release环境是以AOT模式运行的,这就决定了我们要做动态化的话无法简单的通过动态下发dart代码执行的。根据Fair团队的前期调研,我们对布局动态化和逻辑动态化的实现采用了两套不同的实现方案,对于布局部分,我们在解析dart源文件之后生成DSL产物下发,然后在端上解析DSL构建布局的方式,逻辑动态化的部分,我们采用的是dart源码转js下发的方式。
Fair逻辑动态化通信实现
Fair 逻辑动态化,是对一期布局动态化的增强。为了实现逻辑动态化,我们当时考虑了多种方案,方案主要集中在这三个方面,一种是对google提供的JIT进行裁切,第二种是自定义解析引擎,第三种借助js的能力。
彻底弄懂base64的编码与解码原理
base64的编码原理网上讲解较多,但解码原理讲解较少,并且没有对其中的内部实现原理进行剖析。
在探究base64编码原理和解码原理的过程中,我们首先需要了解下面会用到的算法和逻辑运算的概念,这样才能真正的吃透base64的编码原理和解码原理,体会到其中算法的精妙,甚至是在思考的过程中得到意想不到的收获。
阿姨端“无障碍设计”
线上工具对于阿姨这个群体是比较陌生的,因此为了确保我们的产品能真正被阿姨接受并熟悉,我们进行了用户体验调查,在调研中,阿姨们体现出比我们预想还要严重的使用障碍,因此我们从解决障碍出发,启动了这次改版。
Fair逻辑动态化架构设计与实现
Fair是为Flutter设计的动态化框架,可以通过Fair Compiler工具对Dart源文件的转化,使项目获得动态更新Widget的能力。Fair 2.0是为了解决 Fair 1.0版本的“逻辑动态化”能力不足。
JavaScript 断点调试技巧
这篇文章将介绍如何使用断点来进行 JavaScript 调试。在读这篇文章之前,需要问一个问题:为什么要使用断点来进行调试?
我们首先需要认可使用断点的是必要的,否则下文介绍的所有断点调试方法都会是废话。console.log 是前端开发最常用的调试手段,它简单直接解决一部分问题。但当遇到十分复杂的问题,console.log 就会变得不趁手。
58安全——涉政人脸识别技术实践
随着公司业务的发展,产品情况多种多样比较复杂,图像和视频在公司的多条产品线业务起着越来越重要的作用。为与政策法规权威同步,各业务线要避免出现敏感图片,公司多种场景需要接入政治人脸识别服务。比如云账号的先审后发机制,先把头像等信息统一送审至集团风控部门,进行涉政检测,审核通过后再进行展示。每天的审核量级在亿级别,只依赖人工审核难以实现。在此背景下升级开发了涉政人脸识别服务,支持运营人员自助调整审核阈值,配备有敏感人物审核库。
二进制还可以这样“玩”
二进制对我们来说既熟悉又陌生,熟悉的是我们每天都能接触到,陌生的是觉得这是个高级的玩意,我们很少有机会去使用到他。通过这篇文章我们在来温习一遍二进制。
axios源码简读
初识这个库时,第一反应,这个axios怎么读,万一读错了会不会别人笑;这样的疑问不仅我会有,后面在他的issues#802里还看到了一群人在一起讨论。高票赞同的读法是:acks--ee--oh-ss 。
改进的Wide&Deep在文本分类中的应用
语音是58同城用户之间的重要沟通媒介,58同城C端用户和B端用户之间可以通过电话(隐私通话)、网络音视频通话(微聊)建立连接,这些场景下产生的语音数据有巨大的挖掘价值。本次议题主要分享语义标签的文本挖掘技术,首先介绍使用主动学习技术解决冷启动时样本少的问题,然后对比了关键词匹配、XGBoost、TextCNN等模型的效果,最后提出了一种改进的Wide&Deep模型,在我们的场景下取得了最优效果。
Axios中的参数为啥没被完全编码
在发送请求时,axios究竟对参数是如何处理的,而有的参数为啥没被完全编码?