个人开发技术记录

大道至简, 悟在天成


  • 首页

  • 分类

  • 归档

  • 关于

promise 杂谈

发表于 2019-01-26 | 分类于 JavaScript

本篇文章是笔者近期对 Promise 的几点思考的总结。

阅读全文 »

理解 Node.js Stream 模块

发表于 2018-09-01 | 分类于 Node.js

流概念是学习 Node 绕不过去的概念之一,它的底层代码也非常复杂,它能够优化对于文件或者数据处理的内存优化与流程优化,本文主要是讲述了对于 Stream 的实现与使用。

阅读全文 »

Node.js 中的模块机制

发表于 2018-07-15 | 分类于 Node.js

日常经常使用 node 中的模块,当我们遵循 dry 原则,将一些逻辑独立封装成一个可供复用的模块的时候,有可能往往会忽略 node 模块本身的知识。

阅读全文 »

理解模板引擎

发表于 2018-06-10 | 分类于 Web Develop

无论是前端的 MVVM 框架, 还是像我们常用的如 ejs 这样的模板引擎, 都是为了组件化工作的, 是为了减少重复编写某些代码而出现的.实际上模板引擎是为了实现模板文件与业务数据的结合, 实现界面与数据的分离.
为了能够深刻理解模板引擎的工作原理, 这里我通过实现一个简单的模板引擎来达到目的.

阅读全文 »

全面理解 koa-router

发表于 2018-06-03 | 分类于 Node.js

koa 框架一直都保持着简洁性, 它只对 node 的 HTTP 模块进行了封装, 而在真正实际使用, 我们还需要更多地像路由这样的模块来构建我们的应用, 而 koa-router 是常用的 koa 的路由库. 这里通过解析 koa-router 的源码来达到深入学习的目的.

阅读全文 »

实现 JavaScript 继承的三种模式设计

发表于 2018-05-16 | 分类于 JavaScript

在这篇文章里面, 我们将会讨论三种不同的方式来实现 JavaScript 中的对象继承. 你将会看到我们使用其他语言例如 Java 中的通过让一个类继承一个可被多个子类继承的超类来继承其属性与方法的方式来实现继承.
也即是说, 在 Java 中, 继承是通过让一个类继承于其他的类, 然后创建这个类的实例对象来实现的, 但是在 JavaScript 中, 并没有类的概念, 继承是通过原型继承即让一个对象直接继承于另一个对象来实现的.

注:本文为译文, 翻自: http://davidshariff.com/blog/javascript-inheritance-patterns/

阅读全文 »

解析 SMTP 协议

发表于 2018-04-08 | 分类于 Web Develop

SMTP 是属于应用层协议, 是基于 TCP 协议用于收发邮件的.我们常常需要在业务中使用邮件, 但是并没有对 smtp 协议有足够的了解, 我们下面就来全面地了解一下. smtp 服务器一般会开启 25 端口提供服务, 当然如果 smtp 服务器使用了安全认证也就是 ssl/tls, 那么就会开放 465 或 587 端口开放服务, 例如 smtp.qq.com.
本文相关代码仓库:https://github.com/zhangxiang958/ComputerNetworkLab/blob/master/smtp/mailer.js

阅读全文 »

koa 源码解析

发表于 2018-04-03 | 分类于 Node.js

koa 框架是基于 Node.js 下一代的 web server 框架, 舍弃了回调写法, 提高了错误处理效率, 而且其不绑定任何中间件, 核心代码只提供优雅轻量的函数库.
平时经常使用到 koa 框架, 所以希望通过阅读源码学习其思想, 本文是基于 koa2 的源码进行分析.

阅读全文 »

理解 Koa 的中间件机制

发表于 2018-03-16 | 分类于 Node.js

中间件概念在编程中使用广泛, 不管是前端还是后端, 在实际编程中或者框架设计都有使用到这种实用的模型, 下面我们就来谈谈它的作用.

阅读全文 »

co 源码剖析

发表于 2018-02-25 | 分类于 JavaScript

对于如何将生成器与 Promise 结合作为异步任务流程控制,这里我推荐阅读 co 类库的代码,co 类库是一个很优秀的异步流程控制的工具库,下面我们就阅读它的代码,领会它的思想:

阅读全文 »

理解 ES6 generator

发表于 2018-02-25 | 分类于 JavaScript

工作中经常使用 generator, 让我们来全面了解一下它.

阅读全文 »

Event Loop 中的 microtask 与 macrotask

发表于 2018-02-03 | 分类于 JavaScript

Javascript 的事件循环会被常常提及, 而且在实际开发中, 经常需要使用事件相关的知识, 所以特地深入了解一下.

阅读全文 »

Git 小手记

发表于 2018-01-27 | 分类于 git

记录一下日常的 git 使用与我平时用的 git 小窍门.

阅读全文 »

使用 request, mocha, chai 让接口更稳定

发表于 2017-12-30 | 分类于 单元测试

对于接口而言, 稳定与准确是第一要义, 前端需要稳定不会出现不明错误而且结果数据正确的接口, 这样才能保页面渲染的正确性.

阅读全文 »

记一次 node 服务高并发 502 错误

发表于 2017-12-29 | 分类于 Server

问题描述: 线上 node 服务在压力测试高并发的时候, 3 分钟后请求逐渐失败, 查看服务器日志发现 Error: spawn find EMFILE 错误, 进而导致 node 进程 crash 并不再重启.

阅读全文 »

12…5
Shawn

Shawn

71 日志
20 分类
GitHub E-Mail
© 2015 — 2025 粤ICP备2024170165号-1 Shawn
由 Hexo 个人开发技术记录
|
主题 — NexT.Pisces v5.1.4
访问人数 总访问量 次