自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(301)
  • 收藏
  • 关注

转载 理解 BFC

网上有太多关于BFC的文章,看了很多,还是不能理解。想想还是看全英文的官方文档,关于BFC的规则,在w3c文档中的 第9章和 第10章全局搜一下Block formatting context,就能找到。什么是BFCCSS中每个元素都会根据盒模型生成0个或多个Box,Box是布局的对象和基本单位,Visual formatting model描述了一套规则,决定元素如何对其内容进行布局,以及与...

2020-01-05 15:46:09 396

转载 聊聊 Android 的 GUI 系统

你长得辣么好看,我想着要更详细地了解你。今天,让我们一起来聊聊 Android 的 GUI 系统。缘起在2019年的 Google I/O 大会上,Jetpack 团队首次为大家介绍了 Jetpack Compose,这是一种全新的 Android UI 组件库。当时演讲者为大家分享了一张图,描述了 Android 10 年里的在 UI 方面简要发展历史,在长达 10 年的发展过程中,Goog...

2020-01-04 16:33:40 1879

转载 支撑百万级并发,Netty如何实现高性能内存管理

Netty作为一款高性能网络应用程序框架,实现了一套高性能内存管理机制通过学习其中的实现原理、算法、并发设计,有利于我们写出更优雅、更高性能的代码;当使用Netty时碰到内存方面的问题时,也可以更高效定位排查出来本文基于Netty4.1.43.Final介绍其中的内存管理机制ByteBuf分类Netty使用ByteBuf对象作为数据容器,进行I/O读写操作,Netty的内存管理也是围绕着...

2020-01-03 15:55:27 360

转载 为什么每一个爬虫工程师都应该学习 Kafka

这篇文章不会涉及到Kafka 的具体操作,而是告诉你 Kafka 是什么,以及它能在爬虫开发中扮演什么重要角色。一个简单的需求假设我们需要写一个微博爬虫,老板给的需求如下:开发爬虫对你来说非常简单,于是三下五除二你就把爬虫开发好了:接下来开始做报警功能,逻辑也非常简单:再来看看统计关键词的功能,这个功能背后有一个网页,会实时显示抓取数据量的变化情况,可以显示每分钟、每小时的某个关键...

2020-01-02 15:56:39 647

转载 一次 Docker 容器内大量僵尸进程排查分析

前段时间线上的一个使用 Google Puppeteer 生成图片的服务炸了,每个 docker 容器内都有几千个孤儿僵死进程没有回收,如下图所示。这篇文章比较长,主要就讲了下面这几个问题。什么情况下会出现僵尸进程、孤儿进程Puppeteer 工作过程启动的进程与线上事故分析PID 为 1 的进程有什么特殊的地方为什么 node/npm 不应该作为镜像中 PID 为 1 的进程为什...

2019-12-29 15:15:40 3502

转载 高频使用的 Git 命令

前言汇总下我在项目中高频使用的git命令及姿势。不是入门文档,官方文档肯定比我全面,这里是结合实际业务场景输出。使用的 Git版本:git version 2.24.0命令git log查看日志,常规操作,必备# 输出概要日志,这条命令等同于# git log --pretty=oneline --abbrev-commitgit log --oneline# 指定最近几个...

2019-12-25 16:12:58 140

转载 这次终于不再为 iptables 犯迷糊了!

基础概念linux 的包过滤功能,即 linux 防火墙,它由 netfilter 和 iptables 两个组件组成。netfilter 位于内核空间,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables 是一个命令行工具,位于用户空间,它使得插入、修改和删除信息包过滤表中的规则变得容易。我们知道 iptables 是按照规则来办事的,规则其实就是网络管理员...

2019-12-24 17:05:00 151

转载 idea 高效找出全部未被使用的代码

不得不说 idea 真的很强大,认真花一些时间,好好研究研究 idea 可以让你编写代码更加的高效,并且 idea 时不时会给你一些惊喜的,比如今天要分享的这个,就非常的惊喜;背景前几天,忽然又一个朋友问了一个问题:idea 里面怎么找出全部未被使用的代码???我的第一反应是 idea 应该没有这个功能吧,但是我还是 Google 了下,的确发现有这个功能;不得不说,stackove...

2019-12-23 14:37:15 1639

转载 将前端技术栈移植到掌上游戏机

作为前端工程师,我们编写的代码只能活在浏览器、小程序或者 Node 进程里,这似乎已经成为了一种常识。但这就是我们的能力边界了吗?本文将带你为一台内存仅 32M,分辨率仅 320x240 的掌上游戏机适配前端工具链,见证 Web 技术栈的全新可能性。本次我们的目标,是只配备了 400Mhz 单核 CPU 和 32M 内存的国产怀旧掌机 Miyoo。它固然完全无法与现在的 iOS 和安卓手机相提并...

2019-12-21 15:44:25 2352

转载 Webpack 设置环境变量的误区

一、前言日常的前端开发工作中,至少会有两套构建环境一套开发时使用,构建结果用于本地开发调试,不进行代码压缩、打印 debug 信息、包含 sourcemap 文件等一套发布时使用,构建结果用于线上,即代码都是压缩过的、运行时不打印 debug 信息、静态文件不包括 sourcemap 等webpack 4.0 版本开始引入了 mode 的概念选项描述dev...

2019-12-19 16:10:44 417

转载 redis探秘:选择合适的数据结构,减少80%的内存占用,这些点你get到了吗?

redis作为目前最流行的nosql缓存数据库,凭借其优异的性能、丰富的数据结构已成为大部分场景下首选的缓存工具。由于redis是一个纯内存的数据库,在存放大量数据时,内存的占用将会非常可观。那么在一些场景下,通过选用合适的数据结构来存储,可以大幅减少内存的占用,甚至于可以减少80%-99%的内存占用。利用zipList来替代大量的Key-Value先来看一下场景,在Dsp广告系统、海量用户...

2019-12-18 15:26:07 125

转载 这是你从未见过的组件库 -- Android 上的手绘风格组件

之前看到一位作者开源了一款手绘风格的图表库 Chart.xkcd,感觉很是喜欢。当然仅仅图表是满足不了我滴,于是想看看 Android 上是否有类似的开源库,一番搜索之后,颗粒无收。想想原理可能不是太难,于是花点时间动手写了一个。Demo 展示成果如下:想快速体验一把,可以下载 Demo APK ~仓库介绍SketchyComponent,一款手绘风格的 Android 组件...

2019-12-16 15:46:59 257

转载 吃透移动端 1px

前言最近在写移动端 H5 应用,遇到一个值得记录下来的点。现在从它的由来到实现,我们来聊一下移动端 1px,说 1px 不够准确,应该说成 1 物理像素。通过阅读下面文章,你将会理解以下问题:问题为什么有 1px 这个问题?实现 1px 有哪些方法?这些方法分别有哪些优缺点?开源项目中使用的哪些解决方案?如何在项目中处理 1px 的相关问题?由来基本概念首先,我们要了解两个...

2019-12-15 15:30:21 179

转载 以中国传统的孔子和老子的思想来分析忍者代码

忍者代码学而不思则罔,思而不学则殆。—— 孔子过去的程序员忍者使用这些技巧,来使代码维护者的头脑更加敏锐。代码审查大师在测试任务中寻找它们。一些新入门的开发者有时候甚至比忍者程序员能够更好地使用它们。仔细阅读本文,找出你是谁 —— 一个忍者、一个新手、或者一个代码审查者?注意:检测到讽刺意味许多人试图追随忍者的脚步。只有极少数成功了。简洁是智慧的灵魂把代码尽可能写得短...

2019-12-14 16:09:00 274

转载 高质量前端快照方案:来自页面的「自拍」

本文作者:ggvswild1. 背景将网页保存为图片(以下简称为快照),是用户记录和分享页面信息的有效手段,在各种兴趣测试和营销推广等形式的活动页面中尤为常见。快照环节通常处于页面交互流程的末端,汇总了用户最终的参与结果,直接影响到用户对于活动的完整体验。因此,生成高质量的页面快照,对于活动的传播和品牌的转化具有十分重要的意义。本文基于云音乐往期优质活动的相关实践(例如「关于你的画」、...

2019-12-13 16:03:03 315

转载 你不知道的 JSON.stringify() 的威力

前言其实有很多有用的东西,当时学习了,也记住了,但是时间久了就是记不住,所以导致在日常开发中总是想不起来原来这个东西可以这么用,而去选择了更加复杂和麻烦的方式。其实我们日常学习的知识就是拿来用的,即使你今天把知识点背下来了,没有去思考这个知识点我们可以用来干嘛,不需要几天就会慢慢地忘掉。所以今天我们来了解一下在日常学习时你遗漏掉或者忘掉或者没有思考过的你不知道的 JSON.stringify(...

2019-12-12 15:38:42 119

转载 要做权限管理?你或许可以先看下这个

在最近几个项目中,领导都要求我们对项目做权限管理功能,因为这一个个项目的试水,我对项目的权限管理功能添加有了一些自己的想法,在我的理解里也算一步步的趋于完善了(当然可能由于视野和阅历等的不足,在大佬眼里会有很多不足,欢迎指点不足0^0)妹子镇楼,吸引火力### 我的理解我认为权限管理其实主要做的就是:前端先实现一个拥有完整功能的项目,然后对需要做控制的模块外层包一个访问的判断条件,而这个...

2019-12-11 15:20:14 446

转载 这样回答继承,面试官可能更满意

9021年底了,突然想在这个最后一个月准备一下,试试机会,能否更进一步。所以开始准备一些基础知识,也随带总结出来给各位想换工作的同学。希望大家能找到自己想要的工作。祝大家好运!一、何为继承一个类获取另一个或者多个类的属性或者方法。继承可以使得子类具有父类的各种方法和属性。以免重复输出很多代码。二、继承的原理复制父类的方法和属性来重写子类的原型对象。三、原型链继承3.1 实现fun...

2019-12-05 16:30:24 184

转载 使用 JS 来动态操作 css ,你知道几种方法?

作者:areknawo译者:前端小智来源:css-tricks.comJavaScript 可以说是交互之王,它作为脚本语言加上许多 Web Api 进一步扩展了它的特性集,更加丰富界面交互的可操作性。这类 API 的例子包括WebGL API、Canvas API、DOM API,还有一组不太为人所知的 CSS API。由于JSX和无数JS框架的出现,使通过JS API与DOM交互...

2019-12-04 15:40:56 303

转载 Flutter 中“倒计时”的那些事儿

好久不见了,文章有一段时间没有更新了,最近一直在沉迷工作无法自拨????。上周,应公司号召以及上次Google大会中Flutter宣讲的感染,计划将公司新项目采用Flutter技术实现。大概花了几天熟悉了一下Flutter基础语法和结构组成,便着手开始项目的搭建和基础模块功能开发,毕竟只有通过实战才能加快新技术的熟悉和“消化”。说到验证码功能,我们通常的做法可能是借助于计时器来实现,抱着几乎肯定的态度...

2019-12-03 16:33:44 1142

转载 快速实现微信图片裁剪功能

最近和小伙伴 @anotheren一起在搞事情,打算把微信的图片选择器那一套给做出来。于是就有了 AnyImageKit这个框架,现在已经完成图片选择和编辑功能了。在做图片编辑功能的时候,裁剪这个功能做了很久,想到一个思路去做,做到一半发现不行,推翻重做,反复经历了这个过程两三次之后,最终给做出来了。这个功能的坑还是挺多的,而且网上关于这一块的资料不多,于是就想写一篇文章记录一下。首先我们要...

2019-11-29 15:30:28 1677

转载 全网最通俗易懂的【短链接】入门

前言只有光头才能变强。文本已收录至我的GitHub仓库,欢迎Star:github.com/ZhongFuChen…最近接了一个需求,涉及到了短链接的相关的知识,于是去查阅了相关的资料,在这里给大家整理分享一下。一、短链接介绍举个例子,现在我的GitHub的地址是这个:https://github.com/ZhongFuCheng3y/3y (36个字符)我通过百度的短链接服务...

2019-11-27 16:29:50 272

转载 隐藏实力的 JSON.stringify,原来还可以这么用!

JavaScript 有许多各司其职的函数。我们每天都在用,但不知道他们的额外功能。直到有一天看了文档之后才发现,它们原来有许多超出我们想象的功能。JSON.stringify 就是其中一个。今天我们就来聊聊这个隐藏实力的选手。基本用法JSON.stringify 方法接受一个参数并将其转换成JSON 字符串形式。const firstItem = { title: 'Transf...

2019-11-26 15:31:06 189

转载 深入理解Java反射机制

前言最近在接触 Android 的组件化原理的时候,发现自己对 Java 反射的机制理解并不是很深,只能利用周末的时间把 Java 反射机制回炉重铸。什么是Java反射反射机制是 Java 语言提供的一种基础功能,赋予了 Java 程序在运行时的自省(introspect,官方用语)的能力。通过 Java 的反射机制,程序员可以在 Java 程序在运行态的时候操作任意的类或者对象的属性、方...

2019-11-25 15:34:18 152

转载 小程序-优化,部署,细节功能

作者 | Jeskson来源 | 达达前端小酒馆总结⼀些开发中的经验以及⼩程序的优化、部署、上线。开发者⼯具的使⽤缩进与缩进设置缩进有两种⽅式⼀种是使⽤Tab键,还有⼀种是使⽤空格,建议⼤家使⽤Tab。⼩程序默认⼀个缩进=⼀个Tab=2个空格,通常前端开发是⼀个Tab=4个空格,你如果不习惯,可以在设置⾥进⾏设置。快捷键Ctrl+C复制、Ctrl+V粘贴、Ctrl+X剪切、Ctr...

2019-11-23 15:23:58 123

转载 一个简单的Vue按钮级权限方案

演示场景在年初开发一个中后台管理系统,功能涉及到了各个部门(产品、客服、市场等等),在开始的版本中,我和后端配合使用了花裤衩手摸手系列的权限方案,前期非常nice,但是慢慢的随着功能增多、业务越来越复杂,就变得有些吃力了,因为我们的权限动态性太大了手摸手系列权限方案是有比较清晰的权限划分的,而我们公司部门的岗位职责有时比较模糊。后端采用RBAC权限方案,为了达到第1点要求,将角色划分的很...

2019-11-22 16:51:28 1235

转载 【Canvas真好玩】从黑客帝国开始

前言笔者之前有一段时间一直在学习Canvas相关的技术知识点,通过参考网上的一些资料文章,学着利用简单的数学和物理知识点实现了一些比较有趣的动画效果,最近刚好翻看到以前的代码,所以这次将这些代码实践重新梳理一遍后整理成文,自己巩固复习的同时,可以和大家一起交流学习。作为【Canvas真好玩】系列的第一篇文章,笔者还是从最经典的黑客帝国开始,在一步一步进行代码具体实践的同时,带领大家进入神奇的Ca...

2019-11-13 15:27:45 236

转载 爬虫,其实本就是这么简单

吸取我无,分享我有时至今日,大前端思想已经深入人心,很多知识都要涉及到。所以对于现在的前端儿来说也是来着不拒的,练就吸星大法的时候,尽量多的吸收知识,最后达到物尽其用的效果最近,我也是一直在学习关于爬虫方面的知识,源于之前项目中需要用到的地铁信息数据并不是用爬虫爬下来的数据,而是直接copy的尽管这些数据一时半会确实不会有太大的变化,不过总觉得还是有些low的。于是学习了关于爬虫的知识后,打...

2019-11-12 15:19:37 151

转载 服务端高并发分布式架构演进之路

1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据...

2019-11-11 15:50:43 81

转载 响应式布局方法总结

定义响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。传统的开发方式是PC端开发一套,手机端再开发一套,而使用响应式布局只要开发一套就够。优点面对不同分辨率设备灵活性强能够快捷解决多设备显示适应问题缺点仅适用布局、信息、框架并不复杂的部门类型网站兼容各种设备工作量大,效率低下代码累赘,会出现隐藏无用的元素,加载时间加长其实这是一种折中性质的设计解决方案,多方面因素影响而达不到...

2019-11-10 16:18:11 1789

转载 前端必备 Nginx 配置

Nginx (engine x) 是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用 代理服务器 (TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人Igor Sysoev编写。基本命令nginx -t 检查配置文件是否有语法错误nginx -s reload 热加载,重新加载配置文件nginx -s stop 快速关...

2019-11-09 15:13:43 171

转载 微信小程序工程化之路

前言最近很长一段时间都在和前端项目构建“纠缠”在一起,处理了web项目、app项目紧接着便是微信小程序,之所以把微信单独拎出来做一篇分享,主要是因为小程序的工程化在很多细节上是区别于传统意义上的web项目,请往下看准备工作配置一台打包机,建议弄一台mini(具体配置根据大家的实际情况来定,ps一下我们公司用的16G+128的,目前来说资源已经明显不够用了)其次要去搭建一个jenkins服...

2019-11-08 16:15:22 1268

转载 各种源码实现,你想要的这里都有

阅读源码的好处,不用说都知道,首先进大厂必备,还可以提升自己的能力,学习前人的经验。源码往往是前人留下的最佳实践,我们跟着前人的脚步去学习会让我们事半功倍。call、aplly、bind 实现new 实现class 实现继承async/await 实现reduce 实现实现一个双向数据绑定instanceof 实现Array.isArray 实现Object.create ...

2019-11-07 15:59:27 325

转载 pitu: 属于程序员的开源命令行P图工具

1. 安装pip install pitu==0.3.0复制代码2. P单图对单张图片处理分为: 缩放(zoom),旋转(rotate),镜像(flip),裁剪(cut),灰度(gray),添加文本(text) 。命令行格式: pintu 命令 图片 参数 。2.1 缩放pitu zoom <图片路径> <缩放比例> [宽度 [高度]]pitu zoom...

2019-11-05 16:07:49 1357

转载 不吹不黑,这个算法,你肯定不会

01、前言我们常用缓存提升数据查询速度,由于缓存容量有限,当缓存容量到达上限,就需要删除部分数据挪出空间,这样新数据才可以添加进来。缓存数据不能随机删除,一般情况下我们需要根据某种算法删除缓存数据。常用淘汰算法有 LRU,LFU,FIFO,这篇文章我们聊聊 LRU 算法。02、LRU 简介LRU 是 Least Recently Used 的缩写,这种算法认为最近使用的数据是热门数据,下一次...

2019-11-04 14:29:11 97

转载 《前端实战总结》如何在不刷新页面的情况下改变URL

由于公司最近有个需求是想让我们的get请求的参数都直接显示在浏览器url上,这样我们就可以直接通过复制url来显示对应的界面数据了。背景介绍由于我们常用的http请求一般是基于XHR对象的实现或者fetch实现,这种请求操作并不会触发浏览器url的变化,这样虽然也能正常请求数据并渲染到页面,但是如果用户在当前页面操作了某个get请求并得到了某条数据,想通过链接将当前看到的界面分享给其他人时,那...

2019-11-01 16:00:25 313

转载 这个过滤器你确定会么?

01、什么是 BloomFilter(布隆过滤器)布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。主要用于判断一个元素是否在一个集合中。通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,这个时候往往我们都是采用 Hashmap,Set 或者其他集合将数据保存起来,然后进行对比判断,但是如果元素很多的情况,我们...

2019-10-31 16:13:34 93

转载 自定义 UITableView 的 Cell 删除样式

一、需求先说下我们的需求,在一个 tableView 中,左滑删除某个 cell 时,需要展示如下图所示的样式,浅灰色底色,橘红色 文字。[图片上传失败…(image-a8828e-1572421473424)]1、修改删除按钮的文字修改删除按钮的文字很简单,只需要实现下面的方法://修改编辑按钮文字- (NSString *)tableView:(UITableView *)ta...

2019-10-30 15:45:39 312

转载 如何输出清晰有效的设计方案

本文从What和How两个部分阐述如何输出清晰有效的设计方案,为大家建立系统的设计思路提供帮助。很多初入职场的设计师在审美和平面图形基础上都比较扎实,对软件的操作也出神入化,单个方案的界面视觉表现完成度和细致度也没有太大问题。但却往往在实际输出项目方案的时候碰到瓶颈,方案反复地修改还不尽人意,设计能力无法得到质的提升,晋升的脚步也从而停滞。本文从What/How两个部分循序渐进地阐述如何输出...

2019-10-29 15:42:29 452

转载 如何提高网站安全性,预防网站被攻击(干货教程)!

简介程序安全可以说是我们安全防御最重要的一环,现在人都喜欢使用开源程序,其实开源程序是最不安全的一种程序,因为被太多人熟知,里面的漏洞,也是公开的,所以想攻击是很简单的,我建议把内核程序使用安全软件锁起来,一般就会避免98%的攻击,所以说安全软件对于开源程序是必不可少的。1,程序安全(非常重要)程序安全可以说是我们安全防御最重要的一环,现在人都喜欢使用开源程序,其实开源程序是最不安全的一种程序...

2019-10-28 15:47:20 698

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除