Cui.Liqiang

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年2月9日

摘要: 最近用java写了一个命令行大富翁的小程序。代码自然是是TDD出来的。测试这个东西,可能刚开始写的时候会觉得是多余的拖累,但是每次当你做了一些修改,运行所有测试发现某些测试废掉了,你就知道,之前的那些努力都不是白费。 关于TDD的第二个D,初始提出来的含义自然是Development。但是后来很多人又把这个D做Design来理解。我觉得其实二者是反映了TDD过程中的不同侧面。当我写一个比较顶层的功能性测试的时候,我是描述了程序的外部特性。因此,当我让这个测试通过的时候,我是实现了功能,至于程序内部(或者说某个接口之下)是如何实现的,不得而知,这时的D,肯定是个Development;当我... 阅读全文
posted @ 2012-02-09 23:07 Cui.Liqiang 阅读(264) 评论(0) 推荐(0) 编辑

2012年1月15日

摘要: 在linux下本来是一件很容易的事情,到win7下做的时候就困难重重。 首先在Amazon上开一台机器。在action里面选择connect,就会得到如下的登陆指令: ssh -i key.pem ec2-user@xxxxxxx.compute-1.amazonaws.com 这里使用的是Amazon上面产生的key pair来做ssh验证的。当我把同样的文件放到win7上,再执行这条命令的时候(在此之前,要先安装openSSH),就报错说key.pem的权限不对。这也是意料之内的,Amazon已经告诉我了,我应该把key.pem文件的权限改到400。可是在win下面怎么做到把... 阅读全文
posted @ 2012-01-15 09:55 Cui.Liqiang 阅读(396) 评论(0) 推荐(0) 编辑

2012年1月9日

摘要: 今年是毕业也是参加ThoughtWorks的第二年了。看着郑大晔校三期的学员,发现自己已经慢慢成为“老员工”了。 过完年之后回到西安小小的办公室开始打酱油。难得的beach时光,到目前为止总共也就只有那一个月。beach期间做了第一次pair interview。现在已然是家常便饭了。然后就是受命准备一些awayday的视频,包括西安办公室简史和新员工介绍。刚好那时候新买了相机,那段时间好好过了一阵子导演,摄像,剪辑的瘾。把IMovie给用熟了,同时也极度体验了苹果软件稳定性之烂。beach期间做的另外一件事情就是接手了Feedback应用的维护工作,这个工具是给公司做Annual Re... 阅读全文
posted @ 2012-01-09 00:41 Cui.Liqiang 阅读(217) 评论(0) 推荐(0) 编辑

2011年8月19日

摘要: 头几天的时候最大的感受是,好多中国人,好多中国馆子。 墨尔本城区很小,有着广阔的郊区,大多数人都住在郊区的大房子里。郊区不如城市繁华,高楼不多,看起来多其貌不扬,有的墙上还会有些涂鸦,竟然有一种班加罗尔街头的感觉。 去超市买了一堆东西,才17块,觉得很便宜。然后像电子产品都跟国内价格差不多,但是人家的薪水肯定比中国的薪水多了,所以就觉得这边人的购买力肯定比中国的高很多。然后就想着算一算,据说这边做IT的做5,6年的年薪差不多是8,9万,相比下北京的做5,6年的平均水平肯定在20万左右了,也就是说墨尔本的薪水是北京的两到三倍,然后考虑这边的日常生活开销,如果都在外面吃,花费差不多是北京的3倍左右 阅读全文
posted @ 2011-08-19 19:40 Cui.Liqiang 阅读(1347) 评论(0) 推荐(0) 编辑

2011年6月11日

摘要: 为期六天的Inception四天已经过去了,总体的感觉是过程不够给力,但是最终的结果应该还是比较乐观的。 为了这个Inception,我们提前两周就开始分析可能纳入scope的story,做mock up,分析AC和需要的数据。希望能够在之后的分析中给出“建设性”的意见。根据客户发过来的想讲的东西加上story的分析,做了一个Agenda发过去。并且对于每个workshop怎么做,在流程上做了计划。 所以我们的有如下的期望: 1,理清业务需求,理解用户价值。 2,按照我们的Agenda一步一步把scope理出来。 3,分析每个story,估算,排迭带计划。原则是不能不负责任的排完,然后Tea. 阅读全文
posted @ 2011-06-11 19:18 Cui.Liqiang 阅读(471) 评论(0) 推荐(0) 编辑

2011年1月15日

摘要: 最近项目上做了一个看起来既不是story也不是bug的东西。可以定性为一个tech story。这件事情看起来很简单,但是后来被证明涉及到了系统的太多地方,做的非常艰难,在认为做完之后,不但fail了一堆test,而且引入很多bug。又花了很多时间去修。就这些问题做下总结。  1,刚开始写这个sotry的时候,由于缺乏对系统的整体认识,低估了复杂度。虽然我也把问题进行了细化,但是对每个问题都没有去估计其复杂度和它会涉及到的部分。即使对系统不够熟悉,也应该先花点时间,通过IDE对代码的分析功能,比如查找reference等,对每个细化了的子问题进行分析,从而尽量避免bug的引入。  2,关于te 阅读全文
posted @ 2011-01-15 19:03 Cui.Liqiang 阅读(939) 评论(0) 推荐(0) 编辑

2010年12月24日

摘要: TDD是现在很流行的一种软件开发实践。此文一作个人体会总结,二作给对TDD有兴趣的但是还不是很熟悉的同学一个分享。   对TDD本文从三个方面加以说明:What, Why, How.   首先说明什么是TDD。全称是测试驱动开发。从字面可以看出其中包含两层含义。我们把实现产品功能的代码称为产品代码,第一层含义就是编写的代码需要有测试。这些测试也是以代码的形式存在,称为测试代码。因此很容易通过这些测试代码对产品代码进行自动化测试。这些测试可以分为:单元测试,集成测试,功能测试。这些不同种类的测试具体是做什么的会在How的段落加以说明。TDD的第二层含义就是“驱动”二字,也就是说先写测试代码,然后 阅读全文
posted @ 2010-12-24 22:39 Cui.Liqiang 阅读(708) 评论(0) 推荐(0) 编辑

2010年12月12日

摘要: 记得来TW之前看到过一个论坛上有人对TW的一条评价:这是一个奇怪的公司,非常强调代码风格。  现在已经在TW工作半年多了,回想起这句话,发现自己已经完全融入到这种“奇怪的”代码风格了。简言之,就是要把程序写的清晰易懂,易维护。具体如何达到这种目的。可以参看下面thoughtworks文集中的一篇,对象健身操,中所阐述的“编程规范”。方法只使用一级缩进拒绝else关键字封装所有的原生类型和字符串一行代码只有一个"."运算符不要使用缩写保持实体对象简单清晰任何类中的实例变量都不要超过两个使用一流的集合不使用任何Getter/Setter/Property  以上的这些标题如果感觉不是很能表意,不妨 阅读全文
posted @ 2010-12-12 17:05 Cui.Liqiang 阅读(15208) 评论(25) 推荐(5) 编辑

2010年11月29日

摘要: 这两天做javascript的时候遇到一些scope方面的问题。然后就搜搜试试搞了一阵子。得到以下一些有趣的结论。为了清楚起见,下面使用代码配合文字来说明下问题。[代码]1,在用this.fun的形式定义的函数里面如果再嵌套使用this定义函数或者变量,该this仍然是最高层的this。  比如在这个例子中,在fun1, fun2, fun11, fun21中都可以用this指针调用到其他三个函数... 阅读全文
posted @ 2010-11-29 23:47 Cui.Liqiang 阅读(475) 评论(0) 推荐(1) 编辑

2010年11月19日

摘要: 之前的项目已经release过若干次了,不过自己并没有参与到release的核心步骤中。TWU以学习为主要目的。因此release这块也讲的比较详细,再加上自己的的实践,算是对它有了一定的认识。  本文将从理论到实践描述如何通过创建branch的对release进行管理。  首先给release这个场景一个定义。项目开发到了一定的阶段,做了很多feature在里面,有很多bug在list中,另外还... 阅读全文
posted @ 2010-11-19 00:59 Cui.Liqiang 阅读(314) 评论(0) 推荐(0) 编辑