习惯了vscode,现阶段因工作需要需切换到java做项目,因此就想看看能不能配置一下vscode来写java,配置完后,发现效果还不错,也有一些小发现,这里将过程记录一下,以备后续用。
co源码学习
使用async/await写代码很长一段时间了,在之前,用 co+生成器函数+yield也有一段时间,用起来很爽,但却没有仔细了解其中的原理。
为啥异步的代码,使用async/await或者Generator+yield能写成“同步”的?co又是啥,为啥Generator+yield要用co进行包裹?
js中模拟实现私有属性
今天在看《你不知道的 js》这本书时,无意看到 Object 还有个方法叫做 getOwnPropertySymbols()
,用来获取对象的 Symbol 属性。记得之前看过一些文章说,可以使用 Symbol 来实现私有属性,如果能直接使用 getOwnPropertySymbols()
方法获取 Symbol 属性,那还是私有属性么?
今天复习整理一下关于 js 中创建私有属性的一些问题。
由于 js 并不是 Java 那种类式面向对象,因此即使 es6 添加了 class 支持,js 根上还是基于原型的面向对象,不支持什么私有,公有属性的。
要想实现私有属性,基于现有的 js,途径只有一个: 闭包。
增强vscode中js代码提示
使用 types 增强vscode中javascript代码提示功能
微软的vscode编辑器是开发typescript项目的不二首选,其本身也是采用typescript开发的。
使用过ts的同学都知道*.d.ts
类型声明文件,其管理工具,从最初的tsd
,到后来的typings
,一直到现在的@types
,类型声明文件为ts的智能提示,类型检查提供了有力支持。
我们也可以使用类型声明文件,增强vscode编辑javascript时的智能提示。
关于vscode这方面更深的说明,请访问以下链接:
我所理解的闭包
闭包是js中一个晦涩难懂的一个概念,网上关于闭包的文章也是抓一大把,每个人的文章却又不尽相同,或者说,每个人的理解都不一样。
前端开发视角看数据结构-记一次项目中数据结构的选择
最近在写一个博客的小项目,对接github的钩子,当提交markdown工程至github时,通过设置github的钩子,程序获取提交的markdown源码,包括新增,更新,删除的文件列表,然后将其拉取到数据库。前端解析markdown文本至html页面展示。
中间遇到一个很有意思的问题:目录的解析。
理解nodejs中的Buffer
nodejs的优势在于编写高性能的网络服务,而网络请求中,Stream和Buffer是其基础,因此理解这两个概念至关重要。
而Buffer又是Stream的基础,所以,先来看看Buffer吧。然后再去搞Steam。
使用C/C++编写nodejs原生模块
一直想了解一下使用C/C++编写nodejs原生模块,从网上找到的博客,大多都停留在如何搭建环境,然后一个Hello World完事。连更多的参考资料也没有。于是就自己整理了一下,备份成此博客,分享于此。
理解nodejs的事件循环
事件循环机制是nodejs非常非常重要的知识,从网上找的各种资料,却又各种“不同”。
有的文章,从js的执行栈,到事件机制,异步调用,一直讲到事件循环,但是到了事件循环本身的时候,却讲解的又十分含糊,扔张图上去,配两行文字说明,完了。而且,有的图还都不怎么相同,导致看完下来,还是十分模糊,这都说了些啥。。。
我将这些资料整理一遍,梳理了一下,加上自己的理解,成此文。
至于准不准确,其实,我也没底,真的。如果有哪位大神看到有错误的地方,劳烦指出,不胜感激。
node-mongodb-native原生驱动在固定集合上的坑
我们都知道, mongodb的固定集合,一旦插入数据后,再进行修改数据,会有限制:文档的大小不能改变,只能按照原来文档的大小进行修改。
我在实际项目中,遇到这么一个问题,找了好久才找到问题根源。