前端科普系列(5):ESLint - 守住优雅的护城河

2020-10-28
阅读 12 分钟
1.2k
【前端科普系列】帮助阅读者了解web前端,主要覆盖web前端的基础知识,但不深入讲解,定位为大而全并非细而精,适合非前端开发的同学对前端有一个系统的认识,能更好的与前端开发协作。尽可能的写成科普类文章,对于前端开发而言,只适合刚入门的新手。

vivo 商城前端架构升级—前后端分离篇

2020-10-27
阅读 4 分钟
2.2k
本文主要以 vivo 商城项目的前后端分离经验,总结前后端分离思路,整理前后端分离方案,以及分离过程中遇到的问题及解决方案。一、前言vivo官方商城在2015年创建网上商城,开辟网络销售渠道,几年来日活和销售额持续增长,极大的助力了vivo手机的销量。而随着业务版本迭代越来越快,业务内容逐渐增多,前后端不分离模式...

字节码增强:原理与实战

2020-10-26
阅读 10 分钟
6.6k
本文由一个拦截器逻辑的使用场景及演变历程,引入字节码增强技术。介绍字节码的本质,字节码增强的原理及JVM 启动过程中的 Agent 加载、生效流程,并对常见字节码操作工具进行了简单应用。

vivo 基于原生 RabbitMQ 的高可用架构实践

2020-10-26
阅读 5 分钟
1.4k
一、背景说明vivo 在 2016 年引入 RabbitMQ,基于开源 RabbitMQ 进行扩展,向业务提供消息中间件服务。2016~2018年,所有业务均使用一个集群,随着业务规模的增长,集群负载越来越重,集群故障频发。2019年,RabbitMQ 进入高可用建设阶段,完成了高可用组件 MQ 名字服务以及 RabbitMQ 集群的同城双活建设。同时进行业务...

宏任务和微任务的一个小事

2020-10-14
阅读 6 分钟
4k
本文根据 JavaScript 规范入手,阐述了JS执行过程在考虑时效性和效率权衡中的演变,并通过从JS代码运行的基础机制事件队列入手,分析了JS不同任务类型(宏任务、微任务)的差别,通过这些差别给出了详细分析不同任务嵌套的复杂 JS 代码执行的分析流程。

Redis 缓存性能实践及总结

2020-10-12
阅读 6 分钟
8.2k
在互联网应用中,缓存成为高并发架构的关键组件。这篇博客主要介绍缓存使用的典型场景、实操案例分析、Redis使用规范及常规 Redis 监控。

共享内存原理与VCS监控采集实战

2020-09-28
阅读 11 分钟
2.4k
在Linux中,每个进程都有属于自己的进程控制块(PCB)和地址空间(Addr Space),并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管理单元(MMU)进行管理。两个不同的虚拟地址通过页表映射到物理空间的同一区域,它们所指向的这块区域即共享内存。

Android3分钟带你入门开发测试

2020-09-24
阅读 7 分钟
2.1k
作为一名合格的开发人员,基本的开发测试能力必不可少,开发测试分单元测试和UI测试,通过开发测试可以减少开发人员自测时间,提升开发质量。本篇文章可以帮助初级开发人员快速了解开发测试,快速上手测试编码。本篇文章同样适用于应用软件初级测试工程师,快速上手编码测试用例。

“非主流”的纯前端性能优化

2020-09-23
阅读 11 分钟
3.9k
性能优化一直是前端研究的主要课题之一,因为不仅直接影响用户体验,对于商业性公司,网页性能的优劣更关乎流量变现效率的高低。例如 DoubleClick by Google 发现:

Java ConcurrentHashMap 高并发安全实现原理解析

2020-09-21
阅读 33 分钟
6.6k
ConcurrentHashMap (以下简称C13Map) 是并发编程出场率最高的数据结构之一,大量的并发CASE背后都有C13Map的支持,同时也是JUC包中代码量最大的组件(6000多行),自JDK8开始Oracle对其进行了大量优化工作。

【Vue CLI】手把手教你撸插件

2020-09-17
阅读 3 分钟
1.9k
现如今 Vue 作为主流的前端框架之一,其健全的配套工具,活跃的开源社区,让广发码农热衷追捧。Vue CLI 作为其官方的开发构建工具,目前已更新迭代到 4.x 版本,其内部集成了日常开发用到的打包压缩等功能,简化了常规自己动手配置 webpack 的烦恼。另外提供的插件功能更是满足了使用者定制化的需求场景,那么本文就来讲...

同城双活与异地多活架构分析

2020-09-14
阅读 6 分钟
10.9k
采用高可用系统架构支持重要系统,为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。服务多活是高可用架构重要实施手段,本文介绍了一些业界常用的多活手段例如同城双活、两地三中心、异地多活架构设计方案并详述了各种方案的优缺点。

vivo商城前端架构升级-总览篇

2020-09-07
阅读 7 分钟
2.3k
一年前 vivo 商城还是以 Java 为技术核心,前后台一起,Java 既要负责服务、数据库,也要负责页面的渲染。在早期这种开发模式也能够很好的运行。然而随着业务迭代的加快,前端技术的发展,这种开发模式的弊端越来越明显。主要突出的有以下两个方面:

vivo 悟空活动中台 - 栅格布局方案

2020-08-31
阅读 8 分钟
2.6k
用户在使用管理后台时,打开浏览器页面宽度不一。主流的显示宽度1920像素,但也存在1366,1600等其他宽度的场景。而且用户在桌面端搭建页面时,同时在操作的内容不仅仅是管理后台,可能会适当缩小页面宽度来做其他的事情。这样我们在页面布局时需要考虑到兼容广泛的屏幕宽度。

Android 加载图片占用内存分析

2020-08-27
阅读 5 分钟
3k
不同Android版本,对一张图片的内存处理方式是不一样的,使用不正确会导致OOM的发生,这篇文章带你梳理内存占用情况,选择适合你的图片加载模式,解决OOM问题。

Linux Page Cache调优在Kafka中的应用

2020-08-24
阅读 6 分钟
2.6k
本文主要描述Linux Page Cache优化的背景、Page Cache的基本概念、列举之前针对Kafka的 IO 性能瓶颈采取的一些解决方案、如何进行Page Cache相关参数调整以及性能优化前后效果对比。

悟空活动中台 - 基于 WebP 的图片高性能加载方案

2020-08-17
阅读 10 分钟
2.1k
移动端网页的加载速度对用户体验极为重要,是影响页面转化率的关键因素,H5 活动页往往使用大量的图片素材来丰富活动效果,素材加载的快慢会对用户感知造成重要的影响。

Puppeteer 入门与实战

2020-08-13
阅读 7 分钟
4.2k
Puppeteer 是 Chrome开发团队2017年发布的一个 Node.js包,提供了一组用来操纵Chrome的API,通俗来说就是一个Headless Chrome浏览器,这Headless Chrome也可以配置成有UI的 。利用Puppeteer可以做到爬取页面数据,页面截屏或者生成PDF文件,前端自动化测试(模拟输入/点击/键盘行为)以及捕获站点的时间线,分析网站性能...

Android 原生 SQLite 数据库的一次封装实践

2020-08-10
阅读 12 分钟
3.4k
本文主要讲述原生SQLite数据库的一次ORM封装实践,给使用原生数据库操作的业务场景(如:本身是一个SDK)带来一些启示和参考意义,以及跟随框架的实现思路对数据库操作、APT、泛型等概念更深一层的理解。

vivo 悟空活动中台 - H5 活动加载优化

2020-08-03
阅读 11 分钟
2.8k
本文首发于 vivo互联网技术 微信公众号  链接: [链接] 作者:悟空中台研发团队【悟空活动中台】系列往期精彩文章:《揭秘 vivo 如何打造千万级 DAU 活动中台 - 启航篇》 主要为大家讲述 vivo 活动中台的能力与创新。《悟空活动中台 - 微组件状态管理(上)》介绍了活动页内 RSC 组件之间的状态管理和背后的设计思路。《...

聊聊微前端的原理和实践

2020-07-27
阅读 7 分钟
2.4k
在项目迭代中,随着业务的发展壮大,项目的功能模块通常也会越来越多。可能原来所有的代码模块都在一个仓库里,由一个团队负责。但随着功能模块越来越多,一个团队可能负责不过来,需要多个团队来专门维护不同的模块。相应的代码也会被拆到多个仓库里,并且各模块能独立开发、部署更新。通常虽然项目被拆成了多个模块,...

724一起聊聊运维人的故事(内附赠书福利)

2020-07-24
阅读 2 分钟
1.7k
运维人 为每一次告警而 “心动”,换来 7x24 的稳定; 业务正常运行的护航者,默默无闻的幕后英雄。 今天 7月24日 运维人的节日 想对所有运维人说声“辛苦啦” 借此机会 我们联合博文视点为大家送福利啦 以下是本次的福利sh 《SRE:Google运维解密》 在本书中,Google SRE的关键成员解释了他们是如何对软件进行生命周期的整...

前端科普系列(4):Babel —— 把 ES6 送上天的通天塔

2020-07-20
阅读 15 分钟
2k
在上一节 《CommonJS:不是前端却革命了前端》中,我们聊到了 ES6 Module,它是 ES6 中对模块的规范,ES6 是 ECMAScript 6.0 的简称,泛指 JavaScript 语言的下一代标准,它的第一个版本 ES2015 已经在 2015 年 6 月正式发布,本文中提到的 ES6 包括 ES2015、ES2016、ES2017等等。在第一节的《Web:一路前行一路忘川》中...

OpenTSDB 数据存储详解

2020-07-16
阅读 7 分钟
2.1k
随着互联网、尤其是物联网的发展,我们需要把各种类型的终端实时监测、检查与分析设备所采集、产生的数据记录下来,在有时间的坐标中将这些数据连点成线,往过去看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析,机器学习,实现预测和预警。

Oracle JDK7 bug 发现、分析与解决实战

2020-07-13
阅读 9 分钟
1.4k
众所周知,Oracle JDK  是 Java 语言的绝对权威,很多时候 JDK 与 Java 语言近似一个概念。但我们始终要保持实事求是的精神,敢于质疑。本文记录了一次线上troubleshoot 实战,包含问题分析、解决并提交 Oracle JDK bug 的核心过程。

前端科普系列(3):CommonJS 不是前端却革命了前端

2020-07-09
阅读 14 分钟
2.9k
上一篇《前端科普系列(2):Node.js 换个角度看世界》,我们聊了 Node.js 相关的东西,Node.js 能在诞生后火到如此一塌糊涂,离不开它成熟的模块化实现,Node.js 的模块化是在 CommonJS 规范的基础上实现的。那 CommonJS 又是什么呢?

vivo悟空活动中台 - 微组件多端探索

2020-07-06
阅读 11 分钟
3k
本文首发于 vivo互联网技术 微信公众号  链接:[]([链接] [链接] 作者:悟空中台研发团队 【悟空活动中台】系列往期精彩文章: 《揭秘 vivo 如何打造千万级 DAU 活动中台 - 启航篇》 主要为大家讲述 vivo 活动中台的能力与创新。 《悟空活动中台 - 微组件状态管理(上)》介绍了活动页内 RSC 组件之间的状态管理和背后的...

一篇文章教你从入门到精通 Google 指纹验证功能

2020-06-22
阅读 10 分钟
3k
Google 从 Android 6.0开始,提供了开放的指纹识别相关 API,通过此篇文章可以帮助开发者接入指纹验证的基础功能,并且提供了系统应用基于指纹验证的功能扩展,如指纹验证登录功能核心流程图和关键代码分析。

深入理解web协议(二):DNS、WebSocket

2020-06-18
阅读 10 分钟
2.6k
本文首发于 vivo互联网技术 微信公众号 链接:[链接] 作者:Wu Yue本文系统性的讲述了 DNS 协议与 WebSocket 协议的重要细节。一、DNS 1、Linux dig命令我们首先通过 Linux 下的dig命令来了解一下 DNS 是怎么做域名解析的。我们首先输入命令: {代码...} 看下标注的红框,从左到右依次代表:域名的名称 也就是服务器名称...

开发框架文档体系化的思考

2020-06-15
阅读 6 分钟
5.2k
本文对自己工作中碰到的大量日常咨询进行经验总结,说明一款开发框架文档应该要写哪些内容。从功能框架、特性使用流程、功能描述三个维度说明文档编写的逻辑性。希望能给同样从事开发框架的开发与维护的同行带来一点启发。