Home

重构:替换算法

2年前
如果你发现做一件事可以有更清晰的方式,就应该以较清晰的方式取代复杂的方式。有时候你想修改原先的算法,让它去做一件与原先略有差异的事。这时候你也可以先把原先的算法替换成一个较易修改的算法,这样后续的修改会轻松很多。

重构:简化条件表达式-以卫语句取代嵌套条件表达式

2年前
卫语句取代嵌套表达式的精髓就是:给某一条分支以特别的重视。如果使用if-then-else结构,你对if分支和else分支的重视是同等的。这样的代码结构传递给阅读者的消息就是:各个分支有同样的重要性。卫语句就不同,他告诉阅读者:“这种情况很罕见,如果他真地发生了,请做一些必要的整理工作,然后退出。”

重构:简化条件表达式-分解条件表达式

2年前
程序之中,复杂的条件逻辑是最常导致复杂度上升的地点之一。你必须编写代码来检查不同的条件分支、根据不同的分支做不同的事,然后,你很快就会得到一个相当长的函数。大型函数自身会降低代码的可读性,而条件逻辑会使代码更加难阅读。

重构:重新组织函数-提炼函数

2年前
当看见一个过长的函数或者一段需要注释才能让人理解用途的代码,可以将这段代码放进一个独立的函数中,并用新函数名称来解释该函数的用途。

重构:简化函数调用-以函数取代参数

2年前
如果函数可以通过其他途径获得参数值,那么它就不应该通过参数取得该值。过长的参数列会增加程序阅读者的理解难度,因此我们应该尽可能缩短参数列的长度。

启用 HTTP2 升级 Nginx 记录

3年前
Nginx 1.9.0以上的版本已经支持 http2 了,使用 nginx 的 with-http_v2_module 模块和 LibreSSL 即可启用。在编译 nginx 的过程中遇到了几个问题在这里记录一下,以避免以后的安装遇到相同的问题。

虚拟 Dom (virtual-dom) 的理解与研究

3年前
在虚拟dom还没有普及的时候,一些解析html的模板引擎会用innerHTML来输出到页面上,不管这个dom节点和要输出的html数据是否有没有变化,假如这里只是改变了其中一个节点的text,但是它却直接将整个节点的innerHTML重新赋值渲染到页面,一下子销毁那么多元素,而且某些节点如果还绑定了事件,这样就造成了性能浪费,还可能会导致GC出问题。