Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578233
  • 博文数量: 79
  • 博客积分: 2513
  • 博客等级: 少校
  • 技术积分: 806
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-04 18:46
文章分类

全部博文(79)

文章存档

2014年(1)

2010年(5)

2009年(8)

2008年(11)

2007年(41)

2006年(13)

我的朋友

分类:

2007-01-11 22:37:47

进入 2007 年,先后出现了两次类似于“千年虫”的边界极值问题,一个是时间上跨年引起的,另一个是文件长度而引起的。

1 月 1 号中午吃完饭不久,接到同事的电话,说是监控的程序报警,问我是什么问题。当时以为是另外同事的问题,也没放在心上。回到公司后,跟同事商量这个事,结果发现是我的程序里的问题。由于获取到的报表里的两个时间数据是没有年份的,所以我懒惰之下,直接加上 2006 作为年份。不想 2006 年 12 月 31 号晚上 12 点一过,便报警出错了。把 2006 改成 DateTime.Now.Year,暂时解决这个问题。然而这里还是需要一个推导的,在年份交替的时候,这个 DateTime.Now.Year 并不一定正确,不过一般也只可能错误一小段时间了。

另一个文件长度的问题,是因为 Pascal 那种风格的文件操作的限制。上个周末发现一个文件出现 IO 错误,开始不知道什么原因,担心是硬盘坏了,那样就麻烦大了。把文件备份了一个,然后改名让程序重新开始写,倒是正常了。后来才知道是 Pascal 风格的文件操作只支持 2G 的文件大小,而那个文件正好达到 2G,于是写不进新的数据。

对于这样的边界极值问题,实在很难完全避免。毕竟未来的发展可能远远超出现在的预计。再怎么说,一年的时间都是很短的,这是教训。除非是打算马上抛弃整个结构,否则“小号”的代码是很难得到修正的机会。
阅读(1184) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~