1 易水人去丶明月如霜

尚未进行身份认证

暂无相关描述

等级
博文 371
排名 1w+

redis源码剖析之异步事件驱动框架

想要分析源码,我觉得可以把它当成一个整体,或者一个函数,有输入和对应的输出。我们从输入开始分析流程。先撇开main函数,在gdb上打印下线程的堆栈是个好想法,让我们看看它都在做什么。可以看得到它其中一条线程阻塞在epoll_wait(我的系统是ubuntu,因此选择了epoll)。在这里检测套接字事件,等待client请求。还有个线程池,创建了3条线程等待处理任务。#ifdefHAVE_E...

2019-05-31 14:32:40

为什么使用Redis

先解释一下软件编程中常见的一些概念: 抽象先于具象。这个抽象并非虚无的抽象,而是指事物尚未分化为具象之前的那个前体存在。当那个前体存在分化成具象存在之后,前体存在就退化为背景,成为一种抽象。 结构是关联与互动的复合体。 接口是结构的耦合点。 架构是从无结构到有结构的过程。 重构是从旧结构到新结构的过程。 也就是说,结构是架构的...

2019-05-28 14:18:16

怎么让代码不再臃肿,写的像诗一样优雅

基本类型偏执基本类型偏执(PrimitiveObsession)使用基本类型而不是小对象来实现简单任务(例如货币、范围、电话号码字符串等)。使用常量编码信息(例如一个用于引用管理员权限的常量USER_ADMIN_ROLE=1 )。使用字符串常量作为字段名在数组中使用。大多数编程语言都支持基本数据类型和结构类型(类、结构体等)。结构类型允许程序员将基本数据类型组织...

2019-05-27 17:55:01

【并发编程】Future模式添加Callback及Promise 模式

FutureFuture是Java5增加的类,它用来描述一个异步计算的结果。你可以使用 isDone 方法检查计算是否完成,或者使用 get 方法阻塞住调用线程,直到计算完成返回结果。你也可以使用 cancel 方法停止任务的执行。下面来一个栗子:publicclassFutureDemo{publicstatic...

2019-05-27 11:02:11

javascript 函数后面有多个小括号f( )( )( )...

有时我们看见js函数后面跟着多个小括号是什么意思?f()()()…f()执行f函数,返回子函数f()()执行子函数,返回孙函数f()()()执行孙函数,返回重孙函数但注意,如果想这样执行,函数结构必须是这样,f的函数体里要return子函数,子函数里要return孙函数,如果没有return关键字,是不能这样连续执行的,会报错的。举个例子:k是f的子函数,return子函...

2019-05-20 14:59:55

一张图搞懂Ajax原理

原理说起ajax,就不得不说他背后的核心对象XMLHttpRequest,而说到XMLHttpRequest我觉得,从它的readyState状态说起是最好的切入点。个人觉得,只要弄清楚了readyState的这几个状态,其实ajax的原理也就算弄清楚了。为了更方便您理解,笔者特意画了一张状态图。您只需要看懂这张图ajax原理,您就算通关了;并且很难忘记。首先letxhr=n...

2019-05-19 15:05:50

520来袭,程序猿的浪漫 - 前端情书

###前言虽然很多人认为我们不懂得浪漫,甚至情商为负,但是程序员浪漫起来,就真的没有了其他人什么事了。520即将到来,需要告白的同学们,要把握好机会,不要错过了。下面分享一篇我写的前端情书(10%的借鉴)窗外,雨敲残枝窗内,荧光灯和电脑屏幕交汇映影某一刻当键盘的清脆声音戛然而止是因为我突然想起了你我幼稚的想用new这个关键字把你定义成我的对象但我压缩了自己的爱因为我没...

2019-05-16 16:05:47

一行命令更新所有 npm 依赖包

npm 包的更新速度很快,为了将项目或者全局依赖更新到最新版本。传统的做法是一个一个更新,比如更新 react 到最新版本,命令如下:#npmnpmi--savereact@latest#yarnyarnaddreact@latestyarn 是facebook发明的新一代js包管理器,支持离线使用。这是npm与yar...

2019-05-15 14:09:15

Chrome 性能监测

前端性能优化一直是前端工作中必不可少的一部分,但是我们如何知道哪些部分的性能有优化的空间呢?此时,Chrome性能监测就派上用场了。正所谓:知己知彼,百战百胜,只有确定了性能瓶颈,才能有条不紊地进行前端性能优化工作。PerformancePerformance是Chrome开发者工具中的一个功能,用于记录网页从初始化到运行时的所有性能指标。使用Performance之前,我们需...

2019-05-14 22:24:47

JS中事件冒泡,事件捕获详解

一、事件流事件是js与HTML交互的基础,事件流描述的是页面接受事件的顺序,而事件流又分为三个阶段:捕获阶段、目标阶段和冒泡阶段。如果单纯的事件处理,事件捕获和事件冒泡二选一即可,导致两者并存的原因是当年微软和网景的浏览器大战,微软提出了事件冒泡,而网景提出了事件捕获。1、事件冒泡事件开始由最深层的元素接收,然后逐级向上传播<!DOCTYPEhtml><html...

2019-05-14 14:34:06

页面性能优化之原生JS实现图片懒加载

在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况。我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片。所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片。这种加载图片的方式叫做图片懒加载,又叫做按需加载或图片的延时加载。这样做的好处是:1.可以加快页面首屏渲染的速度;2.节约用户的流量。一.实现思路1.图片img标签自定义一个属性d...

2019-05-13 13:47:26

深入理解JavaScript函数

JavaScript中的函数1.函数的定义两种定义形式:通过函数定义表达式来定义通过函数声明语句来定义函数声明语句定义一个函数//计算阶乘的递归函数functionfactorial(x){if(x<=1)return1;returnx*factotial(x-1);}函数定义表达式定义一个函数vars=functio...

2019-05-10 15:37:24

Vue.js特性Scoped Slots的浅析

什么是scopedslotsAscopedslotisaspecialtypeofslotthatfunctionsasareusabletemplate(thatcanbepasseddatato)insteadofalready-rendered-elements.上面是官方的定义。作用域插槽(ScopedSlots)是vue.js中...

2019-05-09 17:00:51

vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析

v-on:click/mouseover......简写的:@click=""推荐事件对象:@click="show($event)"事件冒泡:阻止冒泡:a).ev.cancelBubble=true;b).@click.stop...

2019-05-09 14:33:09

用 Node.js 写一个多人游戏服务器引擎

英文原文:https://www.smashingmagazine.com/2018/12/multiplayer-text-adventure-engine-node-js/摘要听说过文字冒险游戏吗?如果你的年龄足够大的话(就像我一样),那么你可能听说过、甚至玩过“backintheday”。在本文中,我将向你展示编写的整个过程。这不仅仅是一个文本冒险游戏,而是一个能让你和你的...

2019-05-07 19:24:47

你不知道的浏览器渲染原理

前言浏览器的内核是指支持浏览器运行的最核心的程序,分为两个部分的,一是渲染引擎,另一个是JS引擎。渲染引擎在不同的浏览器中也不是都相同的。目前市面上常见的浏览器内核可以分为这四种:Trident(IE)、Gecko(火狐)、Blink(Chrome、Opera)、Webkit(Safari)。这里面大家最耳熟能详的可能就是Webkit内核了,Webkit内核是当下浏览器世界真正的霸主。...

2019-05-07 14:00:18

总结下 JavaScript 中的一些小技巧

这篇文章主要记录一下平时自己实践得到的,博客中学习的以及在一些项目源码中看到的javascript技巧。有些东西可以说是奇淫技巧,有些可能是ES6+中一些比较具有实用性的新语法。&&和||的妙用有时候我们需要在某个函数或变量为true时执行另外一个函数。例如:consttask1=()=>{console.log('执行task...

2019-05-05 15:21:21

如何优化我们的代码(vue项目)

前言作为一个前端,可能绝大多数的时间都是在写的业务代码,时间一长,大家会觉得乏味、没意思等等,但是其实就算只是写业务代码,我们也依然能够找到有兴趣的点,说的简单一点就是代码优化,不仅仅局限在业务逻辑这块,像是代码复用、效率等等都是我们可以加以改进的地方,学会在业务代码中找到不足,总结经验,这样日积月累,量变产生质变,必然我们的技术也是不断再上升的。今天其实就是说下我在vue项目中进行的一些总结...

2019-04-30 14:07:18

如何优雅处理前端异常?

前端一直是距离用户最近的一层,随着产品的日益完善,我们会更加注重用户体验,而前端异常却如鲠在喉,甚是烦人。一、为什么要处理异常?异常是不可控的,会影响最终的呈现结果,但是我们有充分的理由去做这样的事情。1.增强用户体验;2.远程定位问题;3.未雨绸缪,及早发现问题;4.无法复线问题,尤其是移动端,机型,系统都是问题;5.完善的前端方案,前端监控系统;对于JS而言,我们面对的仅...

2019-04-29 20:55:29

vue基础之v-bind属性、class和style用法分析

一、属性属性:v-bind:src=""width/height/title…简写::src=""推荐效果能出来,但是会报一个404错误效果可以出来,不会发404请求window.onload=function(){newVue({el:'#box',data:{url:'https:...

2019-04-29 16:04:23
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。