- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 最近的bug
最近的几天一直在修bug,修自己的BUG,接二连三的bug.最近做的三个story全都出现了BUG,有的修完了再测的时候又出现了新的bug.在xp中,我觉得是应该想想这一个星期到底发生了什么了首先,项目进入了后期阶段,我们做的story与之前曾经做过的一些story多少有一些相似之处,思想上难免有所放松.想着无非照着葫芦画瓢.所以不管是单元测试还是功能测试,都参照着以前相似的story,拿来把数据和mock改一改,直接用就可以了.这里,我们实际上已经失去了测试的保护.这些测试没有错,但只是覆盖到了happy
2010-08-31 00:21:00
154
原创 性能调优
项目的性能遇到了问题,时间大概是客户期望的100倍以上,除了做系统的水平扩展外,在单机运行的性能也需要有比较大的优化.我们的优化步骤:设计测试场景,准备测试数据.找一个性能测试工具, 根据不同的测试数据分别进行测试,记录运行时间.查看运行后的测试报告,发现有几个地方使用了反射机制来生成对象,进行了修改,使得一个方法的调用时间从平均9.2ms降到了6.5~7.5ms之间.这个方法的时间虽然有所改进,但是由于调用的数量巨大,仍然占用了大多的运行时间.查找该方法所有被调用的地方,将可以更换的地方进行调整.其实
2010-08-15 15:58:00
104
原创 Single Methods在ruby单元测试中的应用
在实现ruby quiz的MadLib的时候, 需要在程序运行时读取用户从控制台的输入,将模板字符串中的place_holder替换为用户的输入class MadLib def play parse_template() retrive_place_holder_values() generate_result() end def retrive_place_holder_values for place_holder in @place_holde
2010-08-15 02:25:00
145
原创 Ruby中inspect和to_s的区别
inspect is used more for debugging and to_s is for end user or display purposes.inspect多用于调试的输出,而to_s则用于最终用户或者显示的目的.如代码段:a = ["abc", 123, :memeber]puts a.to_sputs a.inspectputs a其输出结果是:abc123member["abc", 123, :member]abc123member
2010-08-14 23:58:00
1191
翻译 Java程序员需要知道的关于Ruby的十件事
在学校的时候我一直在使用JAVA, 开始工作以后,由于各种需要和长久以来对脚本语言和DSL的憧憬,开始学习ruby.和大多数java程序员一样,我面临也是如何能够转变思维方式的问题."不要用ruby去写java代码",这是经验人士给大多数java程序员的忠告.
2010-08-14 23:49:00
1654
翻译 IntelliJ IDEA中创建自己的代码模板
经过了一段时间的使用,在享受IntelliJ IDEA那些预先定义好的快捷模板所带来的快感的同时,很自然的需要编写自己的Live Template,当然,我们同样可以修改已有的模板,上官网查了一下,相关步骤翻译如下, 在IDE settings (Ctrl+Alt+s),选择打开 Live Templates 页面, 展开需要查看的模板组;可以选择一个已有模板
2010-03-02 14:28:00
6754
原创 CruiseControl + Mercurial 的简单配置
第一次接触CC,花了一晚上搞定的,126的邮箱太烂了,smtp服务器总是出问题,gmail和hotmail之类的又在命令上有问题,也懒的去深究,最后换成163的了,还好点;遇到几个小问题,这里记一下,以后可能在慢慢补充
2010-02-23 00:00:00
868
翻译 关于代码中的边界(boundary)
使用第三方的代码接口提供者和接口使用者之间天然存在着一张力。第三方包和框架的提供者总是在为广泛的应用性而努力,这样它们才可以在更多的环境中使用从而吸引更多的用户。另一方面,接口的使用者则希望接口可以集中于他们特殊的需要。这种张力可能会在我们的系统边界引起各种问题。以java.util.Map为例,一种较好的使用Map类的方法如下public class Sensors {
2010-01-19 13:47:00
354
原创 转向使用IntelliJ IDEA
从本科毕设的时候开始,使用了Eclipse基本上整整三年了,Eclipse3.2+MyEclipse5.0真的非常好用,不过随着Eclipse的发展,渐渐觉得有点不对劲了,eclipse的启动速度大幅增加,我的本本现在就2G内存,别说用MyEclipse7了,就单只是启动Eclipse3.5就得需要四分钟左右的时间。启动以后所占用的内存量也大的可以,也许是因为其功能也在不断的增强,但是对插件的管理
2009-12-26 17:52:00
305
转载 包的稳定性度量
一种方法是计算进、出该包的依赖关系的数目。可以使用这些数值来计算该包的位置稳定性(positional stability)。(Ca)输入耦合度(Afferent Coupling):指处于该包的外部并依赖于该包内的类的类的数目。(Ce)输出耦合度(Efferent Coupling):指处于该包的内部并依赖于该包外的类的类的数目。(不稳定性I)I = Ce / (
2009-12-18 22:07:00
240
1
转载 敏捷开发中的无环依赖原则
无环依赖原则(Acylic Dependency Principle,ADP):在包的依赖关系中不允许存在环。 你曾经有过这样的经历吗?工作了一整天,终于完成了某项功能后回家,不料第二天早晨一来却发现那项功能不再工作了。原因是什么呢?因为有人比你走的晚,并且更改了你所依赖的某些东西。有人称之为“晨后综合症”。近几十年来,逐步形成了两个针对该问题的解决方案,这两个方案都来自于电信业。第一
2009-12-18 21:34:00
510
翻译 运行测试
运行测试的方法很简单 ruby test_file.rb 或者 ruby test_file.rb --name test_function_name 通常情况下,项目结构可以这样安排 project ----- lib/ ----- file1.rb ----- file2.rb .... -
2009-12-15 18:42:00
166
转载 敏捷开发人员如何知道要做什么
敏捷开发人员知道要做什么,是因为他们遵循敏捷实践去发现问题他们应用设计原则去诊断问题,并且他们应用适当的设计模式去解决问题软件开发的这三个方面间的相互作用就是设计。这些面向对象的设计原则包括:单一职责原则(The Single Responsibillity Principle, SRP)开放 - 封闭原则(The Open - Close Principl
2009-12-14 14:19:00
212
翻译 多线程中的异常处理
在Ruby中,如何处理一个线程中的未处理异常,取决于abort_on_exception标志位和解释器debug标志位的设置。如果abort_on_exception和debug标志位均设置为false(这是默认情况),一个未处理异常会终止当前线程 -而其它所有线程则会继续运行。实际上,如果你不调用可能抛出异常的join方法,你根本看不到异常的存在。如:threads = []4.t
2009-12-13 22:29:00
608
翻译 File.open和File.new的区别
在Ruby中,你可以使用File.new来创建一个新的File对象file=File.new("testfile","r") #...processthefilefile.close 方法File.open同样也用于打开一个文件,在通常情况下,它与File.new相同。但如果有一个代码段与该方法调用关联起来,open方法的行为则会有所不同;它不会返回File对
2009-12-13 00:46:00
1046
Pragmatic Thinking and Learning-Refactor Your Wetware
2011-01-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人