在编写Java程序时,Exception类的printStacktrace()可以打印异常堆栈,这个小工具极大的提高了调试效率;虽然不是一个好习惯,却很实用。习惯了Java编程,很希望 C/C++里也有这样的小工具可以帮助调试程序. 经过几天查找,发现其实每个系统都提供了打印调用堆栈的函数;这些函数是系统相关,这里仅以Linux下的函数作说明. Linux中共提供了三个函数用于打印调用堆栈:
继续阅读 »
Table of Contents
{:toc}
最近遇到了一些函数式编程的概念,心想我用 Python 的 map reduce 不就是在函数式编程嘛,
但看了半天仍然一头雾水,什么是 UnitBox?flatMap 和 map 差在哪里?于是先学了阮老师的[函数式编程入门教程][1],
唉哟喂,和我原来想的还不一样,Python 这些操作虽然算是函数式编程,但要系统地理解为什么能这样,
还得从头说起。
继续阅读 »
content
{:toc}
记录一下阅读蝴蝶书的笔记,本篇为第一部分包含书中前三章内容:语法、对象和函数。
原书中第一章为精华,做了一些周边介绍,略去。
继续阅读 »
防抖(Debounce)和节流(Throttle)都是用来控制某个函数在一定时间内执行多少次的技巧,两者即相似又不同。
我们无法直接控制 DOM 事件触发频率,但我们可以在事件绑定和函数执行之间加一个控制层,所以当我们绑定 DOM 事件的时候,加上防抖或节流的函数变得特别有用。
more
看下面滚动事件的例子:
当使用触控板,滚动滚轮,或者拖拽滚动条的时候,一秒就可以触发 30 次事件。经测试,在移动设备上轻轻滚动一下,一秒可以触发 100 次之多。这么高的执行频率是你期待的吗?
早在 2011 年,Twitter 就出现了一个问题:当向下滚动页面的时候,页面会变得很卡顿。John Resig 发表了一篇博客解释这个问题
继续阅读 »
本文是「Java 8 函数式编程」第三章的读书笔记,章名为流。本章主要介绍了外部迭代与内部迭代以及常用的高阶函数。
外部迭代与内部迭代
外部迭代
过去我们要对一个List进行迭代时,往往会采用如下方式:
java
int count = 0;
for (Artist artist : artists) {
if (artist.isFrom("London")) {
count++;
}
}
继续阅读 »
介绍
一群恶魔的猪从无辜的小鸟那里偷走了所有的前端架构,现在它们要夺回来,一对特工英雄(愤怒的小鸟)将攻击那些卑鄙的猪,直到夺回属于他们的前端架构。(译者注:本系列是关乎前端架构的讨论,作者借用当前最风靡的游戏 - 愤怒的小鸟,为我们揭开了前端架构的真实面目。)
本文将介绍红色大鸟,它们以 IIFE 作为中坚力量进行进攻,IIFE 是一切私有化的基础。
译注:IIFE (Immediately-invoked Function Expression) 立即调用的函数表达式
猪猪偷走了什么
多年来小鸟们们习惯于将它们自定的变量和函数乱扔在全局命名空间下(window 对象),随着时间的推移,它们慢慢学会了如何使用一些技巧
继续阅读 »
函数(Functions)是指可重复使用的程序片段。它是有名字的代码块,接受输入、提供输出并可存储在文件中供以后使用。你通过这一特殊的名字在你的程序任何地方来运行代码块,并可重复任何次数。
more
定义函数
继续阅读 »
一些重构的建议:
提炼函数
* 避免出现超大函数
* 独立出来的函数有助于代码复用
* 独立出来的函数更容易被覆写
* 独立出来的函数如果拥有一个良好的命名,
* 它本身就起到了注释的作用。
比如在一个负责取得用户信息的函数里面,我们还需要打印跟用户信息有关的log,那么打印log的语句就可以被封装在一个独立的函数里:
var getUserInfo = function() {
ajax('http://xxx.com/userInfo', function(data) {
console.log('userId: ' + data.userId);
console.log('u
继续阅读 »
使用datetime, 构造一个cron task定期执行给定的函数方法
一个Plan类, 包含next_datatime, execute, 两个方法, init方法指明在实例化的时候,需要给定一个func作为参数, 其他参数可以是时间间隔, 或具体的时间点,
继续阅读 »
MongoDB 在使用类似 Group 之类的聚集函数的时候有个限制:返回结果不能超过 16M。
more
解决方案有三:
合理的设计,避免超过这个限制;
多次查询,切割数据,在程序中再组装;
使用 Map Reduce(同时执行多个 Map Reduce 任务需要把 MongoDB 升级到 2.4)。
继续阅读 »