2013年9月14日
摘要: 译注:原文是《JavaScript高级程序设计》的作者Nicholas Zakas写的,本翻译纯属为自己学习而做,仅供参考。原文链接:这里 到目前为止,这个系列的帖子集中在和这些文件交互——用户指定的文件和通过File对象访问的文件。File对象实际上是Blob的一个特殊版本,表示一块块的二进制数据。Blob对象继承了File对象的size和type属性。 在大部分情况下,Blobs和Fi... 阅读全文
posted @ 2013-09-14 20:56 kingzzm 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 最近看完《Agile Web Development with Rails》一书,受益匪浅。书中先是用一个简单的web应用带你进入Rails的世界,然后在你大致熟悉之后,再带你了解Rails的一些细节,比如ActiveRecord,ActiveController等。最让我觉得Rails美的是其中的一些best practices,这些都可以很好地借鉴到平时的开发中去。下面我简单举几个在Rail... 阅读全文
posted @ 2013-09-14 20:55 kingzzm 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 平时工作和同事讨论敏捷,曾多次听到丰田的精益思想,说是很多敏捷的想法都是从丰田的精益思想中得来的,后来在Kent Beck的《解析极限编程》里看到有这样一本书是讲丰田的精益思想的,找来看了一下,发现书中讲的一些思想或者实践和敏捷开发很相似,下面我就讲讲我对于丰田生产方式和敏捷开发的一些联系。 一、逆向思维,由生产的最后一道工序为起点,从后往前推进。 丰田生产方式的两大支柱是准时化和自动化。准... 阅读全文
posted @ 2013-09-14 20:24 kingzzm 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 之前系统的持续集成覆盖率工具使用的是cobetura,使用的过程中虽然没什么问题,但感觉配置比较麻烦,现在准备改用jacoco这个覆盖率工具来代替它。接下来我介绍一下jenkins配置jacoco,并且在sonar显示单元测试和集成测试覆盖率的过程。 用jacoco来实现单元测试的覆盖率比较简单,在ant脚本中先增加下面的任务: build.xml 1 2 3 ... 阅读全文
posted @ 2013-09-14 20:23 kingzzm 阅读(7234) 评论(0) 推荐(0) 编辑
摘要: 原文:http://jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Day.html 有一种持续集成,比使用像CruiseControl这样的构建服务来的更容易更便宜。实际上,它是如此简单,你可以从现在开始做这件事,不用为你还没有构建服务而感到不舒服。 (肮脏的小秘密?我将要告诉你的是比使用CruiseControl更好的东西!... 阅读全文
posted @ 2013-09-14 20:23 kingzzm 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 先要在jenkins上安装jacoco的插件,安装完成之后在job的配置项中可以增加这个选项: 第一个录入框是你的覆盖率文件(exec),第二个是class文件目录,第三个是源代码文件目录。 配置好了之后进行构建,构建完成之后job首页就会出现覆盖率的趋势图,鼠标点击趋势图可以看到覆盖率详情,包括具体覆盖率数据和源码的覆盖率情况: 趋势图 覆盖率详情 阅读全文
posted @ 2013-09-14 20:22 kingzzm 阅读(2159) 评论(1) 推荐(0) 编辑
摘要: 首先要得到之前的单元测试和集成测试的覆盖率文件,还有对应的class文件以及单元测试的覆盖率报告,材料准备齐全之后,使用如下命令: build.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 阅读全文
posted @ 2013-09-14 20:20 kingzzm 阅读(2279) 评论(0) 推荐(0) 编辑
摘要: 我们系统使用weblogic做服务器,集成测试框架使用的是junit+selenium。 首先,要把jacoco的jacocoagent.jar包放到部署应用的服务器上,接着在系统服务的JAVA_OPTIONS 后面添加如下参数: 1 -javaagent:[yourpath/]jacocoagent.jar=includes=com.xxx.xxx.*,output=tcpserver... 阅读全文
posted @ 2013-09-14 20:20 kingzzm 阅读(2845) 评论(1) 推荐(0) 编辑
摘要: 覆盖率计数器 Jacoco使用一系列的不同的计数器来做覆盖率的度量计算。所有这些计数器都是从java的class文件中获取信息,这些class文件可以(可选)包含调试的信息在里面。即使在没有源码的情况下,这种方法也可以实时有效地对应用程序进行度量和分析。在大部分情况下,收集到的信息可以映射到源码,可视化到每一行代码的粒度。但这种方法还是有一些限制。这些class文件必须使用调试信息来编译,这样... 阅读全文
posted @ 2013-09-14 20:19 kingzzm 阅读(12656) 评论(0) 推荐(1) 编辑
摘要: 最近将开发工具IDEA升级到了12.0版本,被它新的UI界面深深吸引,看下面,很酷哦~ 一、下载安装 在IDEA官网下载最近版本12.0,有免费的社区版,还有收费的无限制版,大家可以自行下载。 下载后进行安装,windows系统直接执行exe文件即可,ubuntu系统先将下载包解压,然后执行bin文件夹里面的idea.sh就可以运行了。 二、使用新的UI界面 安装完后的IDEA默认... 阅读全文
posted @ 2013-09-14 20:17 kingzzm 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 有过编程经验的朋友都知道设计模式中的单例模式,最近又重新看了一遍设计模式,今天将单例模式的几种形式介绍一下: 1、懒汉形式(延迟加载) Singleton.java 1 2 3 4 5 6 7 8 9 10 11 12 13 public class Singleton{ private static Singleton singleton; private Singl... 阅读全文
posted @ 2013-09-14 20:17 kingzzm 阅读(9730) 评论(0) 推荐(0) 编辑
摘要: 最近写了一个jenkins插件,功能比较简单,时间主要是花在对jenkins插件框架和Maven的熟悉上。jenkins插件虽然以前也接触过一点,不过现在都忘得差不多了,这个笔记权当知识点记录,顺带介绍介绍经验。 首先是环境搭建,这里列一下jenkins插件开发所需工具: JDK6.0或更高 构建工具—Maven IDE—IDEA或eclipse web服务器:jetty或tomcat(可... 阅读全文
posted @ 2013-09-14 20:15 kingzzm 阅读(2331) 评论(0) 推荐(0) 编辑
摘要: 在上一篇blog中我们讲了如何搭建jenkins插件的开发环境,接下来介绍如何开发我们的插件。 创建HelloWorld插件 学习每门新语言的时候,我们都会写一个HelloWorld程序,这里介绍的是如何创建一个Jenkins的HelloWorld插件。 1、首先修改Maven的配置,将Maven的连接库修改为jenkins plugins的资源库,方便相关pom组件从jenkins上下载... 阅读全文
posted @ 2013-09-14 20:14 kingzzm 阅读(1872) 评论(0) 推荐(0) 编辑
摘要: 在上一篇blog 中我们介绍了如何创建我们第一个jenkins插件,在这一篇blog继续介绍在开发我们的插件过程中需要注意的一些问题。 扩展点选择 Jenkings插件是基于扩展点来实现的,比如基于Builder这个扩展点,那这个插件的功能就是一个构建插件,类似ant-builder(使用ant来执行构建脚本)。Jenkins插件的扩展点有很多,具体可以查询这里。该网页列出了Jenkins所... 阅读全文
posted @ 2013-09-14 20:13 kingzzm 阅读(3929) 评论(0) 推荐(1) 编辑
摘要: 断断续续看完了《持续交付——发布可靠软件的系统方法》一书,中间有几次由于事情太忙而中断,直到今天才把书读完。书的内容很精彩,大致分持续集成,测试和部署三大块,还有介绍包括软件开发、项目管理等其他内容。我下面介绍几个我印象比较深刻的内容。 预测试提交(pretested commit) 简单来说,预测试提交就是在将代码提交到代码库之前,先在本地跑一遍持续集成上的操作,比如编译,单元测试等,保证... 阅读全文
posted @ 2013-09-14 20:10 kingzzm 阅读(1883) 评论(0) 推荐(0) 编辑
摘要: 接触sonar已经有段时间了,最早是在一个项目组里面听到这个框架,后来在公司持续集成活动的推动下,也逐渐学习了sonar的具体功能。sonar集成了findbugs,pmd,checkstyle各种静态代码检查工具的功能,并且可以将各种扫描结果组合成一张张漂亮的报告,功能很是强大。下面介绍一下如何使用sonar来自定义javascrpit的扫描规则。 虽然使用过很多次sonar,但都是在别人搭... 阅读全文
posted @ 2013-09-14 20:09 kingzzm 阅读(3791) 评论(0) 推荐(0) 编辑
摘要: 在上一篇blog中,我们将sonar几个需要的环境都搭建好了,包括sonar的服务器,sonar runner,sonar的javascript插件。现在我们就来讲如何自定义JS扫描规则。 实际上有3种方法可以自定义代码的校验规则: 直接在sonar的web接口中增加XPath规则; 通过插件的功能来增加自定义规则,比如checkstyle,pmd等插件是允许自定义规则的; 通过新增一个代... 阅读全文
posted @ 2013-09-14 20:08 kingzzm 阅读(2798) 评论(0) 推荐(0) 编辑
摘要: 在上一篇blog中讲了在sonar中如何新增自定义的JS规则,这里面比较难的地方是XPath语句的编写,而要编写正确的XPath语句,首先要拿到语法的AST,下面我们就来介绍如何使用SSLR JavaScript Toolkit 工具来得到源代码的语法树。 首先通过在这里下载SSLR JavaScript Toolkit 工具,下载下来是一个jar包,在cmd窗口使用java -jar ssl... 阅读全文
posted @ 2013-09-14 20:07 kingzzm 阅读(1496) 评论(1) 推荐(0) 编辑
摘要: 在今年北京的QCon大会上听了facebook早期中国籍工程师王淮的演讲,受益匪浅,主题是如何打造高效能团队,主要介绍他在facebook的一些经历和管理上的经验分享。现在的他是一名天使投资人,投资的领域有移动互联,支付,云应用等。他还写了《打造facebook》一书,讲了facebook的公司文化和他在其中的开发管理等经历。 工具文化 这本书给我印象最深的一点是facebook的”工具文化... 阅读全文
posted @ 2013-09-14 19:59 kingzzm 阅读(773) 评论(0) 推荐(0) 编辑