Welcome to my blog. The English verison of posts are in En page.

Javascript中变量的作用域

问题引出

方才阅读es6的时候遇到一个问题:

问题解决

这就想了,如果没有let关键字,我们如何处理这个问题呢?

此时就涉及到一个概念,闭包 clojure

不要被这个复杂的名词欺骗了,就是函数套函数,函数返回函数而已。解决这个问题关键在于

块级作用域和函数作用域的理解;在Javascript中,并不支持块级作用域,它只支持函数作用域,

而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。

因此,我们在Js这个特性的基础上,使用闭包,然后就可以解决这个问题了:

为什么要解决这个问题?因为有时候在for循环中使用回调可能与参数i有所联系,可能会遭遇到

问题;

当然,如果使用es6这种问题就不会发生了。es6大法好。

如何更新自己的主题

在使用hexo的主题的时候,许多人经常把主题fork到自己的repo,对我而言,这是没有必要的。

一般情况下,我不需要修改很多关于主题的内容,只需要改改配置文件就可以了,但是每次

更新,git pull的时候都提示需要提交自己的修改,这个时候应该怎么做呢?

[阅读全文]

对BaaS的一些思考

BaaS,是Backend as a Service,即后端即服务。

在使用BaaS时,可以减少许多因对后端本身不擅长而增加的创业成本。

[阅读全文]

单元测试

单元测试十分的重要,简单说一下微信小程序中的单元测试

[阅读全文]

批量修改图片大小

这两天做数据采集的时候,发现直接获取的数据文件太大了,保存起来占用内存太多,

手机端又不需要这么大的内存。

[阅读全文]

使用Docker的一些Tips

Docker是一种强大的DevOps工具,使用其无论是作为开发环境还是生产环境,但是非常

好的选择;在这篇文章中,讲讲Docker的几个开发Tips。

[阅读全文]
Docker 

翻译了meteor

简单翻译了一下Meteor指南,网址在: https://www.gitbook.com/book/svtter/meteor_tutorial/details

翻译完之后心情很复杂,虽然我没有看过ruby on rails的相关代码,但是根据之前的了解,可能是在Javascript上的一个相似的东西,这种东西实现出来的产品,可能拓展速度很快,但是重写以及拓展方面,可能有些麻烦。

[阅读全文]
Meteor 

Python-logging模块

logging 是 python 自带的日志模块,用于收集并且导出日志。

要想使用好logging,需要明确几个概念:

1. logger

logger 可以理解成输出日志的核心变量。 通过 logger,可以输出 warning, info, debug, critical 等类型的日志。

2. handler

handler 处理器,是把内存中 logger 的日志导向不同的输出。 例如文件、邮件、stdout 等。

3. formatter

用于规范化日志的结构,补充日志的元信息。

4. filtter

用于 logger 中日志的过滤。

Python 

CallBackHell

这两天做微信小程序赶个潮流,体验了一下回调——之前一直听人讲“回调地狱”,这次终于

亲身感受了一下。的确是“地狱”。

不过既然能够出现“回调地狱”,也必然有人可以避免,甚至在一定程度上解决这个问题。

回调地狱解决方法

一般情况下,我不怎么写回调的代码;一方面是因为没有这个习惯,之前写算法题目,基

本上不写回调——不过行文至此,突然想起许多题目都有用回调从而更加优雅解决的方案,囧。

再贴一篇c++的函数传递

本以为Java不存在回调地狱,也就不存在回调——询问之后,才意识到Java之所以不存在回调

地狱,是因为Java本身要用回调,需要传类作为参数;一方面,如果使用回调,会使得代码

变长;另一方面,尽管代码变长,但是相比较简短的代码,问题描述的更加清晰明确。

这可能就是为什么Js被称为玩具语言的原因之一吧。

回调函数的优势:

然后讲讲Python:

最后一个才是最酷的。