解惑

解己之惑,解人之惑

标签:工具

使用工具修改代码时一定要谨慎

今天早上来更新了下代码,发现自己负责的和Crystal Report集成的代码突然不能工作了,刚好昨天升级了Crystal Report,而我们明天早上就要做演示的,天啊。
不过好在我是一个经验丰富的老鸟了,这点事情还不至于让我手忙脚乱,看了下控制台,没有异常信息,在关键代码的地方设置了断点,跟踪了下,发现原来工作的一个Query不能工作了,但是异常被截获并忽略了,把异常信息打出来,报的信息是查询无法识别,我没有修改过啊,而且这个查询是提交到Crystal Report Server的,那个Server并没有升级啊,再仔细一看,原来是我的查询被修改了,加了一个/*ARQXXXXX*/的注释,呵呵,原来罪魁祸首是美国那边的架构师,不知道他使用什么工具把我们系统全部代码的SQL前面全加了一个这个注释,但是我的这个查询虽然和SQL很像(也是Select … From … Where),但是实际是完全不同的东西啊,根本就不支持注释。

我同时记起了我自己前两个月犯的一个类似错误,我在造自己的大轮子,那个时候在写表现层的底层部分,生成HTML,在格式化的时候,我开始选择的是使用4个空格作为缩进,但是后来考虑到这样会导致生成的HTML太大,就使用tab替换,但是我写的单元测试已经是使用空格了,所以使用UltraEdit使用表达式进行全部替换,结果我的代码全部没有了(UltraEdit的那个功能没有Undo),因为我的代码也是使用四个空格作为缩进的,好在还能恢复很多,因为Eclipse是带本地历史记录功能的,可以恢复到上一次修改的状态,然后把最后的一次修改再做一下(浪费了一个小时的时间)。

更新:架构师的批量修改又有新问题,一些调用Oracle的存储过程的SQL也被加了那个,但是也不能加

Google面试题解说性能之八:工欲善其事必先利其器

按照原先的计划,这个系列只应该有四篇,但是后来打算多写一些,把这个问题研究透彻,所以出现了总结篇先于其它篇的情况。
这次我们按照总结篇中提到的方法实际演示下代码覆盖工具如何帮助我们优化程序提高性能,先给出我们未经好好优化的程序:
package com.jiehoo.util;

public class GoogleFn {
private static final int MAX = 2600002;

private static long start = System.currentTimeMillis();

private static int[] bases = new int[15];

private static int[] values = new int[15];

static {
bases[0] = 0;
bases[1] = 10;
values[0] = 0;
values[1] = 1;
for (int i = 2; i < values.length; i++) {
bases[i] = (int) Math.pow(10, i);
values[i] = i * (int) Math.pow(10, i – 1);
}
}

阅读全文

好用的工具会造成思维懒惰?

现在下载一直用迅雷,感觉非常不错,充分利用了服务器方式和P2P方式两种的优点又巧妙的避免的各自的缺点。当然,这个对于服务器提供者是不利的,这个不是今天的主题,暂且不谈。
其实想说的是由于它很好用,因此每次下载什么东西都是先搜索,那怕是一个电视剧,也差不多是点击搜索出来的结果一个一个的加。
今天在下载一个东西的时候突然想到了原来用FlashGet的时候是批量处理的,既然迅雷会自动搜索相关资源,那么为什么不能找到一个地址之后然后只修改一下文件名一次性把那些都加上呢?试了一下,效果非常的不错,所以说,好用的工具可能会造成思维的懒惰,慢慢的变成工具的奴隶。
当然,公欲善其事,必先利其器。

© 2024 解惑

本主题由Anders Noren提供向上 ↑