`
aqingsao
  • 浏览: 174999 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
终于下定决心将博客搬家,现在有了自己独立的域名:xiaoqing.me   当然,搬家只是一个开始,在新的博客中,努力做到更高(质量)、更快(频率)。   谢谢!  
对应用中的调度任务应该有3种:基于cron的;固定间隔的(Fixed Interval);固定延时的(Fixed Delay)。 1. 基于cron 这比较容易理解,只需要给出一个cron的表达式,就可以根据表达式去执行。比如 "0 0 12 ? * WED" 代表"每周三的12:00” 它的几个部分分别代表:秒、分、小时、基于月的天;月;基于周的天;年(可选) 如果你使用Quartz,可以参考Cron Trigger一章 。   2. 固定间隔的 这个也很常用,比如每天执行一次,每小时执行一次。在Quartz中,有对应的SimpleTrigge ...
客户遗留系统的权限部分使用了Spring security中的FilterSecurityInterceptor,可以通过设置intercept-url及对应的权限进行验证。 其典型用法是在配置文件的Bean中定义:     <bean id="filterSecurityInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">         <property name="objectDefini ...
作为程序员,恐怕没有谁没加过班。无论是领导要求、半含威胁,还是员工自愿、半推半就;无论是项目无法完成,后期疯狂加班;还是临时出现了问题,需要突击 解决。加班,似乎和吃喝拉撒一样,乃是IT人员的生活必需品。 ...
团队实施敏捷,经常会遇到的一个问题是:“实施敏捷对个人能力要求高吗?”其实不止是正在实施的团队,国内各个敏捷社区、论坛 上也充斥着这样的论调:“实施敏捷对能力要求太高了,如果团队成员的能力达不到一定的 ...
How can we verify logic independently when code it depends on is unusable? How can we avoid Slow Tests ? We replace a component on which the SUT depends with a "test-specific equivalent." Sketch Test Double embedded from Test Double.gif Sometimes it is just plain hard ...
你能用一句话解释什么是敏捷吗? 米高的一篇文章里,谈到了他去客户现场第一天,客户就问这个问题:他们觉得了解敏捷了,可是很难说清楚。尤其是向别人解释的时候,需要费很多口舌。于是请教能不能一句话就能解释什么是敏捷。 读到这里,我下意识地想到,如果是自己,会怎样回答呢?之前向不少人介绍过敏捷,自己也感觉到颇为费劲:敏捷是软件开发的一种方法论...有很多相关的实践,比如...采用迭代式的开发方式,把最终用户引入进来...保证稳定地高质量的交付... 说实话,每次说这么多,把各个层次的内容罗列在一块,我自己也比较汗颜别人能否听明白。所以看到“能否一句话就解释什么是敏捷”时,立刻兴奋了起来,不知道会是 ...
对Web进行自动化测试,我们首先想象一个简单的场景,来看看需要测试哪些东西: a. 元素定位:无论使用XPath, Dom还是CSS,需要简单方便的API定位元素,可以延时等待元素出现; b. 交互操作:包括文本框、单选框、多选框、按钮、表格单元的输入或者点击; c. 页面操作:页面切换和关闭、对话框切换和关闭; d. 其他要求:对主流浏览器测试的支持、对JavaScript的支持等。 说起Web自动化测试,首先想到的就是Selenium。其实WebDriver就是基于Selenium的一个自动化测试类库,但它不再是运行在浏览器内的JS程序,而是自己可以控制浏览器。旨在改进Seleni ...
使用VPN,每次都要在Terminal上重复输入命令: ssh -D port user@host 出来密码提示符后,把复杂的密码拷贝下来,然后粘贴到Terminal,敲回车...   终于忍受不了这样的重复了,于是用Shell写一个可以自动登录的脚本: #!/usr/bin/expect -f set port port_no set user user_name set host host_name set password my_password set timeout -1 spawn ssh -D $port $user@$host expect &qu ...

enum in c

在c中定义一个enum类型很容易: enum _pet_type{DOG, CAT, COW}; 但是使用为了方便,可以使用typedef来定义: typedef enum _pet_type{DOG, CAT, COW} pet_type; 这样就可以直接这样使用了:pet_type type = DOG; 1. 关于枚举数值 在这样的定义中,DOG被赋予了整型值0,后面的依次加1。你可以指定某一项元素的整数值,其后的元素依然是依次加1。 比如 typedef enum _pet_type{DOG, CAT = 10, COW} pet_type; 则DOG的值是0, CAT是 ...
帮助客户实施敏捷,已经有一些开发人员在尝试使用TDD的方式进行开发。一再向他们强调:“写任何代码之前,先写一个会失败的测试”。这里说的写代码,不仅仅是指开发sotry或者修改bug,很多时候,当你有了一个新的想法,不妨先写一个测试: 某位开发人员告诉我,他想在项目中Spring事务,但是不熟,所以想花时间预研一下。讨论完Spring事务相关的问题,我接下来问他,有没有写测试?有了一个失败的测试,不管查资料,还是咨询别人,尽管做任何尝试,什么时候测试通过了,配置也就成功了。 代码检视,发现某个Dao类中,把对应Domain的enum字段转换成int存储,读取时再把int转换成enum类型。于是 ...
使用Abbot给Java Swing写单元测试,遇到这样一个问题:如果用到了showDialog(...)方法,由于是ModelDialog,系统执行到这里就被block了,无法通过Abbot写单元测试。 举个简单的例子来说:Frame中有个button,点击后会显示JColorChooser Dialog,选取颜色后点击OK或者Cancel按钮,Dialog消失,同时返回Color对象,然后就可以在frame中修改Label的颜色。 所以想象中的单元测试应该是这样: @Test public void testSelectColorRedAndClickOKButton ...
[注]:这是2008年底写的一篇关于即时验收(即常说的BA sign off)的文章,原文发表于《程序员》杂志。从去年刚开始加入ThoughtWorks,对敏捷懵懂了解,到现在随着经历的增多,对敏捷的了解也有了越来越多的体会。即时验收是敏 ...
敏捷中国大会已经结束,我9月12日参加了会议,下午与一些嘉宾在TDD workshop进行了结对编程活动,有一点感想。   我本来没打算参加TDD workshop,是临时被拉过去的。一坐下来就感觉非常尴尬──没提前熟悉题目就要跟别人pair, ...
BUG描述: 页面中某DIV使用了position:relative,结合top=-25px等元素定位。在FF和IE7下表现正常,但是在IE6中该DIV会随鼠标滚动而滚动。   分析: 这是IE6一个已知的BUG:当某position:relative元素 被带有overflow:auto/scroll属性的块级元素包含时,会表现出postion:absolute的行为。   解决方法: 1.为包含块元素添加属性position:relative 。 2.把该元素的position:relative属性去掉,使用默认的static定位,并通过margin-top等属性 ...
Global site tag (gtag.js) - Google Analytics