代码改变世界

随笔分类 - 敏捷/持续集成

Swagger - 前后端分离后的契约

2015-07-29 15:55 by 破狼, 127948 阅读, 收藏, 编辑
摘要:前后端分离按照现在的趋势,前后端分离几乎已经是业界对开发和部署方式所达成的一种共识。所谓的前后端分离,并不是传统行业中的按部门划分,一部分人只做前端(HTML/CSS/JavaScript等等),另一部分人只做后端(或者叫服务端),因为这种方式是不工作的:比如很多团队采取了后端的模板技术(JSP, ... 阅读全文

推荐书籍 -《移动App测试的22条军规》

2015-07-25 08:00 by 破狼, 6967 阅读, 收藏, 编辑
摘要:在今天的博文中,博主希望给大家分享一本博主同事黄勇的最新利作:《移动App测试的22条军规》。黄勇是ThoughtWorks资深敏捷QA和咨询师。对于我来说,和黄勇在一起的工作的这个项目,是我至今所一直怀念的那种少有的项目。黄勇在团队中以资深QA的团队协调能力和专业技能,不仅保障了项目的交付质量,同... 阅读全文

TW2015技术雷达中文版发布

2015-01-29 12:29 by 破狼, 4345 阅读, 收藏, 编辑
摘要:今天thoughtworks 2015新版技术雷达pdf发布了,在这里你可以了解到我们都在用什么技术,那些技术是推荐的,那么技术是不再推荐的.技术雷达主要分为技术、工具、平台和语言及框架四个象限,以及采用、试验、评估、暂缓四个态度来评价。 阅读全文

TDD(测试驱动开发)培训录

2015-01-06 12:20 by 破狼, 3944 阅读, 收藏, 编辑
摘要:2014年我一直从事在敏捷实践咨询项目,这也是我颇有收获的一年,特别是咨询项目的每一点改变,不管是代码质量的提高,还是自组织团队的建设,都能让我们感到欣慰。涉及人的问题都是复杂问题,改变人,改变一个组织是个更复杂问题,这里可能涉及很多的非技术,非能力问题。在2014年12月我在某企业内部推行TDD(... 阅读全文

Nightmare基于phantomjs的自动化测试套件

2014-11-20 19:28 by 破狼, 5474 阅读, 收藏, 编辑
摘要:今天将介绍一款自动化测试套件名叫nightmare,他是一个基于phantomjs的测试框架,一个基于phantomjs之上为测试应用封装的一套high level API。其API以goto, refresh, click, type…等简单的常用e2e测试动作封装,使得其语义清晰,简洁。其官方在... 阅读全文

简介Gulp, Grunt, Bower, 和 Npm 对Visual Studio的支持

2014-10-07 12:37 by 破狼, 11232 阅读, 收藏, 编辑
摘要:[原文发表地址]Introducing Gulp, Grunt, Bower, and npm support for Visual StudioWeb 开发,特别是前端 Web 开发,正迅速变得像传统的后端开发一样复杂和精密。大多数项目不仅仅是通过 FTP上传一些 JS 和 CSS 文件。而现在的... 阅读全文

karma作为jQuery单元测试Runner

2014-09-07 08:50 by 破狼, 3831 阅读, 收藏, 编辑
摘要:karma作为angular测试runner出现,如果你使用过karma一定感受到这很不错的javascript测试runner。简单干净的配置文件karma.config.js,以及karma init一些快捷的配置command。以及整套测试套件,如html2js,coverage。对于angu... 阅读全文

软件架构设计模式简述

2014-03-25 20:33 by 破狼, 6346 阅读, 收藏, 编辑
摘要:在软件开发设计中我们经常会面对业务分析,提取领域问题,从而实现软件架构设计。关于 软件架构设计Martin Fowler在2004出版的《企业应用架构模式》中 概括了四种方式的架构模式。它们分别为事务性脚本,表驱动模式,活动记录模式,领域驱动设计。前两者事务性脚本,表驱动模式作为 面向过程方式架构设计,后两者为面向对象架构设计。它们适合于不同的业务场景,它们也各有长短。事务脚本模式事务脚本模式是架构设计中最简单的架构模式,面向过程模式。该模式以用户的操作,UI表现为起点,设计业务组件, 即业务逻辑将直接映射到用户界面的操作。这通常是从表现层逻辑出发,表现层需要什么那么业务层就提供什么, 直到数 阅读全文

[翻译]docker生态圈Mindmap

2014-03-18 17:12 by 破狼, 1614 阅读, 收藏, 编辑
摘要:Docker是一个开源的Linux容器,其被业界所接受,很快成为了一个产业标准。Docker可以减少应用程序启动 时候的大量资源的筹备。docker很快的成为了新兴的应用程序容器标准。现在有很多项目正围绕着它处于开发中。 下面将是Mindmap出我所知道的一些项目。你可以在这里访问Mindmap.英语原文链接http://allthingsplatforms.com/platforms/docker-ecosystem-mapped-out/ 阅读全文

自定义项目脚手架- Maven Archetypes

2014-03-17 20:14 by 破狼, 27007 阅读, 收藏, 编辑
摘要:在上篇Intellij修改archetype Plugin配置 中我们已经简单介绍了关于archetype的作用。简单来说maven archetype插件就是创建项目的脚手架,你可以通过命令行或者IDE集成简化项目创建的工作。例如:org.apache.maven.archetypes:maven-archetype-quickstartorg.apache.maven.archetypes:maven-archetype-siteorg.apache.maven.archetypes:maven-archetype-webapp以及spring或者第三方提供了一些archetype plu 阅读全文

ng-template寄宿方式

2014-03-15 14:26 by 破狼, 20297 阅读, 收藏, 编辑
摘要:如果你是一个angular的开发者的话,对于ng-html2js你应该 很熟悉。对于angular的指令,我们经常需要定义模板( directive template/templateUrl),你可以选择讲html page 放在真正的的web容器中寄宿,也可以选择angular的ng-template 放在view的page之上,抑或也可以讲html打成一个js文件和directive 的js文件合并在一起发布。对于直接寄宿在web容器.这很简单,直接放在jetty,tomcat,iis, 抑或node express public目录下。这里没什么可以多说的,所以我们跳过。angul... 阅读全文

ThoughtWorks持续集成平台GO开源了

2014-02-28 22:44 by 破狼, 4032 阅读, 收藏, 编辑
摘要:ThoughtWorks 持续集成平台Go最近宣布开源了。其基于Apache 2.0 开源协议。Go下载地址为http://www.go.cd/download/.下面是几张来自官方的视图:GO流程图:GO截面图:GO的版本:Thoughtworks官方的宣布文章你也可以在ThoughtWorks中国微信雷小达看到:GO!我们开源了!同类的持续集成工具还有Jenkins感兴趣的同学更待何时,可以去官网http://www.go.cd/download/.下载,来把玩一番了。 阅读全文

记录maven java.lang.String cannot be cast to XX error

2013-09-10 21:47 by 破狼, 3614 阅读, 收藏, 编辑
摘要:在项目开发中自定义了一个maven plugin,在本地能够很好的工作,但是在ci server上却无法正常工作报错为:----------------------------------------------------- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) ... 阅读全文

隐藏在mock之后的‘快感’

2013-05-29 21:11 by 破狼, 2539 阅读, 收藏, 编辑
摘要:最近某同事抱怨他们的测试难写,经常花费在测试的时间比产品代码更多,而且每次重构后都必须修改一大堆的测试。和同事闲谈后得知,在其项目中大量的使用了mock,或者说对mock的使用过度极端对所谓的单元测试“快速”,“独立“的过度。 在前边转载过《软件开发中没有所谓正确的方法》,当你把某一种方法论作为银弹使用的时候,早晚魔鬼会伴随在你身边。 Mock给我带来了感知,剥离了类与类之间的依赖,有助于我们更好的工作在当前的关注点 .但同时由于太多的对场景的假设,导致这块代码成为了信息的孤岛,甚至很多时候不得不用mock的第二特性verify,order,以至于你的测试关心的不再是代码存在的busin... 阅读全文

集成服务监控器-green.monitor发布

2013-05-26 18:42 by 破狼, 1865 阅读, 收藏, 编辑
摘要:在大型企业应用开发中,一个项目经常需要依赖于多个项目集成,经常某个集成服务的升级或者不工作,会导致你所工作的服务也挂掉,甚至影响你的开发流程。你是否还在接到测试团队或者运维团队的某个Bug,而自己花费了大量时间终于查出来是某个集成服务升级或异常,在这里浪费了大量时间,在笔者为所在项目建立了一个第三方集成服务监控的Monitor,去实时监控项目所依赖的所有集成服务,数据库。现在开源在github https://github.com/greengerong/green-monitor,在其sample目录下有个使用demo。mavendependency<dependency> &l 阅读全文

闲谈简单设计(KISS)疑惑

2013-05-07 09:44 by 破狼, 2342 阅读, 收藏, 编辑
摘要:忙碌了一年了项目又到了交付了,虽然项目能成功上线(因为还有维护支持的团队)。但是个人从技术上看,这是一个不那么成功的项目,因为后期艰难的修复bug,添加feature。这与简单设计有什么关系呢?在某模块开发起初,由于架构的经验预见性的告诉我这模块开发中会出现什么问题,所以选择了提出某些比较好的解决方案,但是由于团队成员一致的所谓简单设计,通过TDD,重构达到”合适”的”完美”的设计,可是最后的结果如我所料一切的发生。这里插一句,现在在一家敏捷公司,敏捷强调是合作,所以没有一个人统一规划决策,不同之前的公司作为架构师决策一切架构设计。敏捷合作交流我不否认你正确性,因为我也相信软件是人和时间的问. 阅读全文

利用Travis CI 让你的github项目持续构建(Node.js为例)

2013-04-14 09:35 by 破狼, 28022 阅读, 收藏, 编辑
摘要:Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了。 下面是本人的构建历史: 搭建Travis CI build,需要你有个github账号和github项目:1:用github账号登陆Travis CI.2 :在右上角你的账户名点击进入 account,在Reposito. 阅读全文

利用Node.js本地构建

2013-02-23 23:12 by 破狼, 3417 阅读, 收藏, 编辑
摘要:Node.js是一个基于Google Chrome浏览器v8 javascript执行引擎的异步I/O事件驱动的运行平台。直从2009年诞生开始,已经在业界得到了很多的关注,在这里也必要多说,如果你还不清楚的,请移步到Node官网。在这里我们要讲的是用Node.js来构建本地Build。构建本地Build,我们已经有很多选择,如Ant,Maven,Gradle等。为什么我们还需要Node.js?对于我们的开发中会有一些小的基本自动化构建,如文件的监控(Less编译),javascript的压缩,不稳定集成服务代理,快速的集成反馈,文件的迁移…而对于项目来说我并不像引入太多的技术债, Node. 阅读全文