
客户端
说起一件过去的事情。我从事编程行业已经很多年了。刚毕业那会儿,Desktop(胖
客户端)非常流行。当时我们
公司研发部差不多有四十个人,分成两个主要团队:底层组件组和上层Desktop组。我是Desktop组的负责人,我们的任务是把底层组件封装成完整的Desktop应用。这些底层组件不仅可以供我们使用,还可以提供给其他团队进行二次开发,这是当时比较主流的架构设计。而底层组件的设计基本上参考了一款国外著名的软件,可以说是依
葫芦画瓢。底层组件的开发用的是
C++,而Desktop封装则使用Visual Basic。有一天,测试部门(独立于研发的一个部门,人也不少)提交了一个问题报告,说About对话框一弹出就会报内存错误,然后整个系统就崩溃了。这个Bug并不是每次都会出现,但发生的概率相当高。这让我感到十分困惑,因为About对话框的代码非常简单,只是弹出一个窗口,显示软件版本、
公司名称和Logo而已。同事们知道后还调侃我们:你们厉害啊,连写个About对话框都能出Bug!尽管如此,我们还是认真排查问题,但怎么查都找不到原因。我们只好请底层组件组一起参与联调。经过大半天的努力,终于发现问题的根源:原来是一个程序员在使用指针时不够规范,导致了读取地址错误。这个有问题的组件属于最底层的算法模块,渲染组件也会调用它。当About对话框弹出时,偶尔会触发渲染操作,从而暴露了这个Bug。问题解决之后,Desktop组反过来嘲笑组件组,觉得他们太不严谨。回过头来看,这么多年过去了,国内软件研发的整体水平并没有太大的提升。从技术层面看,我们依然在追随别人的脚步;而在管理方面,真正做得出色的
公司更是寥寥无几。