修改node-webkit的默认图标
2014-08-08 · 375 chars · 2 min read
使用 node-webkit 开发应用程序的时候,最终生成的 exe 文件,使用的默认的图标,无法在代码中修改。这次就说说这图标的事,要用到两款软件(当然你可以用别的,我只提供一下我的方案):Resource Hacker 和 Axialis IconWorkshop。
2014-08-08 · 375 chars · 2 min read
使用 node-webkit 开发应用程序的时候,最终生成的 exe 文件,使用的默认的图标,无法在代码中修改。这次就说说这图标的事,要用到两款软件(当然你可以用别的,我只提供一下我的方案):Resource Hacker 和 Axialis IconWorkshop。
2014-07-31 · 610 chars · 4 min read
在 Javascript 里比较常见的数据格式就是 json,xml,但是这两种格式在数据传输方面有明显不足。而 Protocol Buffers 可以很好的解决这个问题,下面引用百科的对 Protocol Buffers 的定义:
Protocol Buffers 是 Google 公司开发的一种数据描述语言,类似于 XML 能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。现阶段官方支持 C++、JAVA、Python 等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。
同为数据的存储格式,和 json 相比,Protocol Buffers 的优点主要体现在性能和体积上,性能方面需要实际的测试,暂且不说,数据体积方面的优势是比较明显的,例如,一个 json 文件:
2014-07-08 · 433 chars · 3 min read
2014-07-03 · 694 chars · 4 min read
这两天在重新做公司内网首页,信息都是从别的系统获取的,产品原来打算直接上静态页,jsonp 异步取数据。但是一来 jsonp 比较坑(一直不喜欢),二来整个页面的数据都异步获取的话,刚刚打开页面的时候会空白一片,体验极其差。所以决定用 node.js + express + redis 简单搞下。今天早晨一直在折腾 Redis,看了挺多文章,可能是版本或者其他的原因,我遇到的问题他们都没有提,不过终于还是部署上了,下面把过程写下给大家参考。
2014-06-27 · 1,083 chars · 6 min read
2014-06-26 · 690 chars · 4 min read
有些时候,使用 javascript 控件的时,需要执行一些初始化设置,那么一般的做法是这样的:
<script src="path/to/your.js"></script> <script type="text/javascript"> your.init({ id: 1, }) </script>
2014-06-22 · 419 chars · 3 min read
前面一直在学习 Jasmine,并且很简单很简单的测试了jqPaginator的代码,这一次来看看怎么使用 Travis CI 对 Github 的项目进行自动化集成测试。借用 wikipedia 的话介绍下:
Travis CI 是在软件开发领域中的一个在线的,分布式的持续集成服务,用来构建及测试在 GitHub 托管的代码
虽然 jqPaginator 的测试还没写好(测试真是门学问,还需下功夫好好研究),但忍不住先来看看怎么用 Travis CI。
2014-06-21 · 808 chars · 5 min read
jqPaginator是我自己写的一个分页组件,已经用在了公司的两个项目上。这次学习 Jasmine,首先想到的就是怎么测试下 jqPaginator。
看过 jqPaginator项目的都知道,它是基于grunt自动化构建的,使用 Jasmine 自动化测试的话,就要用到grunt-contrib-jasmine了。先大概讲一下 grunt-contrib-jasmine:
2014-06-21 · 652 chars · 4 min read
Jasmine Clock 可以用来测试setTimeout
和setInterval
的回调操作。它使回调函数同步执行,当 Clock 的时间超过 timer 的时间,回调函数会被触发一次。这使依赖于时间的代码更加易于测试。
Jasmine Clock 使用jasmine.clock().install
在需要调用 timer 函数的 spec 和 suite 中初始化。在执行完测试的时候,一定要卸载 Clock 来还原 timer 函数。使用jasmine.clock().tick
设置时间以使注册的回调触发。
2014-06-21 · 1,307 chars · 7 min read
Spies 是 Jasmine 里面比较高端的方法,可以用来模拟函数的执行,以达到隔离复杂依赖的效果。例如,你要测试列表的处理是否正确,但是数据是异步请求接口取得的,这时你就可以使用 Spies,模拟返回各种不同的数据进行测试。
spy 可以保存任何函数的调用记录和输入的参数,spy 只能存在于 describe 和 it 中,在 spec 执行完之后销毁。先说两个针对 spies 的 Matcher,toHaveBeenCalled
用来测试函数是否被调用过;toHaveBeenCalledWith
用来测试函数被调用时的参数列表,匹配的话返回true
,看个例子: