操作系统了解一下

最近在看操作系统, 感觉操作系统真的是软件工程界人类智慧的结晶了👏👏, 操作系统俨然是一套方法论, 看操作系统真的是能够开阔眼界, 对你的思考、设计、架构的能力都有很大提升(而不仅仅是搬砖:-)), 甚至感觉这东西应该在进入编程领域初就应该知道的, 是每个软件工程师最基本的技能, 操作系统非常值得反复学习、思考、钻研, 里面有很多设计方法、理念值得借鉴和思考. 无奈操作系统太复杂, 内容太多, 因此这篇文章只是用通俗的语言大致介绍了操作系统里面我感兴趣的主要部分, 包括操作系统概述、进程线程模型、内存管理、分布式系统以及Linux系统的实现.

阅读更多

全面了解HTTP

这篇文章包括对 REST 架构、HTTP 协议本身的介绍, HTTP 的应用, 分布式系统组成成分介绍, TCP/IP 协议族的介绍以及穿插在各个知识点的扩展.

阅读更多

React源码分析(三)-全面剖析组件更新机制

React 把组件看作状态机(有限状态机), 使用state来控制本地状态, 使用props来传递状态. 前面我们探讨了 React 如何映射状态到 UI 上(初始渲染), 那么接下来我们谈谈 React 时如何同步状态到 UI 上的, 也就是:

阅读更多

React源码分析(二)-组件的初始渲染

上一篇文章讲到了React 调用ReactDOM.render首次渲染组件的前几个过程的源码, 包括创建元素、根据元素实例化对应组件, 利用事务来进行批量更新. 我们还穿插介绍了React 事务的实现以及如何利用事务进行批量更新的实现. 这篇文章我们接着分析后面的过程, 包括调用了哪些事务, 组件插入的过程, 组件生命周期方法什么时候被调用等.

阅读更多

React源码分析(一)-调用ReactDOM.render后发生了什么

所谓知其然还要知其所以然. 本系列文章将分析 React 15-stable的部分源码, 包括组件初始渲染的过程、组件更新的过程等. 这篇文章先介绍组件初始渲染的过程的几个重要概念, 包括大致过程、创建元素、实例化组件、事务、批量更新策略等. 在这之前, 假设读者已经:

阅读更多

认识node核心模块--网络编程

在构建网络通信服务方面,相比于其他老牌后端语言,Node.js 同样能够胜任(也许更胜一筹),并且有自己独特的处理方式。node是一个面向网络而生的平台,它的事件驱动、非阻塞、单线程使node应用程序具有低内存、高并发、伸缩性强的优良特性,适合在分布式网络大展身手。Node底层实现了传输层TCP/UDP、应用层HTTP/HTTPS的功能并封装成贴合网络的API,并且可以自己创建服务器而不依赖三方服务,使用起来非常方便、简单、灵活。对于网络编程,node提供了net、dgram、http、https 4个模块,分别用于处理TCP、UDP、HTTP、HTTPS。本文将介绍这些模块并利用这些模块提供的API构建简单的网络服务。

阅读更多

认识node核心模块--从Buffer、Stream到fs

node中的Buffer和Stream会给刚接触Node的前端工程师们带来困惑,原因是前端并没有类似概念(or 有我们也没意识到)。然而,在后端,在node中,Buffer和Stream处处体现。Buffer是缓冲区的意思,Stream是流的意思。在计算机中,缓冲区是存储中间变量,方便CPU读取数据的一块存储区域;流是类比水流形容数据的流动。Buffer和Stream一般都是字节级操作。本文将介绍这两个模块的具体细节后再介绍文件模块,以让读者有更清晰的认识。

阅读更多

认识node核心模块--深入EventEmitter

node 采用了事件驱动机制,而EventEmitter 就是node实现事件驱动的基础。在EventEmitter的基础上,node 几乎所有的模块都继承了这个类,以实现异步事件驱动架构。继承了EventEmitter的模块,拥有了自己的事件,可以绑定/触发监听器,实现了异步操作。EventEmitter是node事件模型的根基,由EventEmitter为基础构建的事件驱动架构处处体现着异步编程的思想,因此,我们在构建node程序时也要遵循这种思想。EventEmitter实现的原理是观察者模式,这也是实现事件驱动的基本模式。本文将围绕EventEmitter,从中探讨它的原理观察者模式、体现的异步编程思想以及应用。

阅读更多

认识node核心模块--全局对象及Cluster

node 模块是node 完成强大功能的实现者。node 的核心模块包括events、fs、buffer、stream、cluster、http、net、一些操作OS和工具模块、全局对象等。本文将在node核心特性理解的基础上进一步深入探讨node核心模块的具体细节。本文主要探讨的模块有:全局对象global及其重要属性、多进程cluster、events重要类EventEmitter、流Stream、文件系统fs、网络http,还会介绍node框架express相关。

阅读更多

node核心特性理解

node是在前端领域经常看到的词。node对于前端的重要性已经不言而喻,掌握node也是作为合格的前端工程师一项基本功了。知道node、知道后端的一些东西,才能更好的与别人合作,发挥更大的价值。

阅读更多