摘要: 前言 本篇文章比较适合3年以上的前端工作者,JS三座大山分别指:原型与原型链,作用域及闭包,异步和单线程。 原型与原型链 说到原型,就不得不提一下构造函数,首先我们看下面一个简单的例子: 首先创造空的对象,再让this指向这个对象,通过this.name进行赋值,最终返回this,这其实也是new 阅读全文
posted @ 2018-04-19 09:08 peiyu1988 阅读(6953) 评论(29) 推荐(32) 编辑
摘要: 前言 Go语言通过routine,提供了并发编程的支持。 Routine特性 (1) goroutine是Go语言运行库的功能,不是操作系统提供的功能,goroutine不是用线程实现的。 例:启动一个routine go + 函数名即可启动一个goroutine (2) goroutine就是一段 阅读全文
posted @ 2018-04-10 19:37 peiyu1988 阅读(835) 评论(1) 推荐(3) 编辑
摘要: 前言 Facebook(后面简称fb)是世界最大的社交平台,需要存储的数据时刻都在剧增(占比最大为图片,每天存储约20亿张,大概是微信的三倍)。 那么问题来了,fb是如何存储兆级别的图片?并且又是如何处理每秒百万级别的图片查询? 本文以简单易懂,图文并茂的方式来解释其中的原理,并不涉及空洞,难解的框 阅读全文
posted @ 2018-03-20 13:47 peiyu1988 阅读(3030) 评论(1) 推荐(13) 编辑
摘要: 前言 这应该是Nodejs的运行原理的第7篇分享,这篇过后,短时间内不会再分享Nodejs的运行原理,会停更一段时间,PS:不是不更,而是会开挖新的坑,最近有在研究RPG Maker MV,区块链,云计算,可能会更新一些相关文章,或者相关教学。 回到正题,异步编程的难点在于请求与响应不是按顺序发生的 阅读全文
posted @ 2018-03-07 10:39 peiyu1988 阅读(3856) 评论(1) 推荐(3) 编辑
摘要: 前言 使用Nodejs,就不可避免地引用第三方模块,它们有些是Nodejs自带的(例:http,net...),有些是发布在npm上的(例:mssql,elasticsearch...) 本篇章聚焦3个问题: 1.Nodejs模块的加载过程。 2.应用启动的过程。 3.应用如何加载依赖模块。 1.模 阅读全文
posted @ 2018-02-23 10:43 peiyu1988 阅读(4584) 评论(3) 推荐(6) 编辑
摘要: 前言 当客户端向http server 发起TCP链接时,server端会发起一系列的callback调用,这是一个逆向调用的过程;开始于libuv,终止于js代码里的callback(promise then)函数。 如下图所示,http server 正向调用过程,实际大部分的时间花在net.j 阅读全文
posted @ 2018-02-12 10:18 peiyu1988 阅读(3572) 评论(2) 推荐(7) 编辑
摘要: 前言 这里是重点:Nodejs 是由v8 engine,libuv和内置模块组成,可以将v8 engine和 libuv看成一个库,两者是以源码的方式直接编译执行node中去的。 这是一个广泛的介绍,后面会详细介绍Nodejs的生态圈。 V8 engine V8官方文档 https://develo 阅读全文
posted @ 2018-01-30 11:49 peiyu1988 阅读(1801) 评论(1) 推荐(5) 编辑
摘要: 前言 之前做过Nodejs的架构篇, 有很多朋友留言给我,说没看懂里面的例子,这里我会重新梳理一下,再以http server为例,来解析Nodejs从前端到libuv的调用过程。 正文 回忆a. Nodejs提供了许多功能接口(又称标准库),例如:http,net,socket etc 回忆b. 阅读全文
posted @ 2018-01-09 19:11 peiyu1988 阅读(1845) 评论(3) 推荐(3) 编辑
摘要: 前言 本来是想只做一个Nodejs运行原理-科普篇,但是收到了不少私信,要我多分享一些更进阶,更详细的内容,所以我会在接下来的两个月里继续更新Nodejs运行原理。 PS:此系列只做Nodejs的运行原理(架构,libuv,v8 etc),并不介绍Nodejs功能以及使用方法。 本文以两个view来 阅读全文
posted @ 2018-01-04 11:19 peiyu1988 阅读(12103) 评论(3) 推荐(9) 编辑
摘要: 前言 Nodejs目前处境稍显尴尬,很多语言都已经拥有异步非阻塞的能力。阿里的思路是比较合适的,但是必须要注意,绝对不能让node做太多的业务逻辑,他只适合接收生成好的数据,然后或渲染后,或直接发送到客户端。 为什么nodejs 还可以成为主流技术哪? 是因为nodejs 对于大前端来说还是非常重要 阅读全文
posted @ 2017-12-13 15:23 peiyu1988 阅读(16141) 评论(2) 推荐(15) 编辑