代码改变世界

Aspectj 实现Method条件运行

2013-07-07 11:23 by 破狼, 3290 阅读, 1 推荐, 收藏, 编辑
摘要:最近我花了半个小时实现了一个Method的按自定义条件运行的plugin,Condition-Run 。实现场景是由于我所工作的客户经常会是在同一个代码集上实现多个Brand,所以有些功能只会限制是几个brand调用,而其他的调用则不该调用。还有因为持续交互,我们会不停的release新的功能得到快速的反馈,在这前提下我们会经常遇见在我们刚开发完一个brand的产品代码,就要面临release,所以我们希望其不该对其他的brand产生影响。 面对这样的需求初级程序员有些人肯定会觉得没什么了不起的啊,不就是几个if/else或者switch/case。我和我的团队对代码有一种天生的洁癖,对于太. 阅读全文

sublime 2/3 for mac link to command

2013-07-01 20:03 by 破狼, 880 阅读, 0 推荐, 收藏, 编辑
摘要:Sublime command for mac :execute those command:subl 2:sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sub... 阅读全文

语言设计中的鸭子类型风格

2013-06-30 10:24 by 破狼, 4650 阅读, 2 推荐, 收藏, 编辑
摘要:在动态语言的世界里一直流传着一种叫做鸭子类型的风格,其来自谚语:“如果行鸭子一样走路,像鸭子一样呱呱叫,那它就是一只鸭子”。 从鸭子类型,我们可以联想到它的推导,并不在乎类型的真正实体,只要他的行为有鸭子的特性,那么我们就可以把它当做一只鸭子来看到。在动态语言设计中,可以解释为无论一个对象是什么类型的,只要它具有某类型的行为(方法),则它就是这一类型的实例,而不在于它是否显示的实现或者继承。 阅读全文

隐藏在mock之后的‘快感’

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

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

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

细说Angular ng-class

2013-05-22 09:41 by 破狼, 193474 阅读, 8 推荐, 收藏, 编辑
摘要:在前面Angularjs开发一些经验总结中我们说到在angular开发中angular controller never 包含DOM元素(html/css),在controller需要一个简单的POJO(plain object javascript object),与view完全的隔离(交互angularjs框架的职责。但在某些项目中看见controller涉及DOM的元素最多的是在controller scope上定义某变量,其值为class name,形如:function ctr($scope){ $scope.test =“classname”;}<div class=”{.. 阅读全文

CSV和集合对象基于Annotation操作封装

2013-05-16 21:44 by 破狼, 1117 阅读, 0 推荐, 收藏, 编辑
摘要:随着项目上线,暂时处于闲置状态,所以趁闲带着团队对在这一年项目中做的比较好的组件,工具和实践总结和抽取出来,在我后续的随笔中将会陆续发布出来。今天主要是一个简单的maven小组件,对opencsv基于Annotation简单的封装,使得我们可以轻易的将CSV文件转化为List对像和把List对像导出为CSV文件。 项目托管地址于github https://github.com/greengerong/opencsv-utils。 对于代码就不用多说了,简单看看如何使用。Object 1 package opencsv.utils; 2 3 4 5 public class Pers... 阅读全文

闲谈简单设计(KISS)疑惑

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

Angularjs Controller 间通信机制

2013-04-16 20:54 by 破狼, 70456 阅读, 13 推荐, 收藏, 编辑
摘要:在Angularjs开发一些经验总结随笔中提到我们需要按照业务却分angular controller,避免过大无所不能的上帝controller,我们把controller分离开了,但是有时候我们需要在controller中通信,一般为比较简单的通信机制,告诉同伴controller我的某个你所关心的东西改变了,怎么办?如果你是一个javascript程序员你会很自然的想到异步回调响应式通信—事件机制(或消息机制)。对,这就是angularjs解决controller之间通信的机制,所推荐的唯一方式,简而言之这就是angular way。 Angularjs为在scope中为我们提供了冒泡. 阅读全文

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

2013-04-14 09:35 by 破狼, 28497 阅读, 2 推荐, 收藏, 编辑
摘要: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. 阅读全文
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 26 下一页