今天改了一笔代码,是一个图像输出模块的字符格式处理功能的代码,
这个代码本身是在我们的库里面,
这个图像输出模块一共有2个函数,以及2个成员变量,
分别叫做FunA、FunB、Mb1、Mb2,
Mb1 用来接收外部传进来的一个字符串,
FunA 用来处理Mb1,变成Mb2,
FunB 用来把Mb2 画出来,到指定的位置,
很明显就可以看出来,实际上调用流程就是,
SetMb1,CallFunA,CallFunB,后续每次要画文字的时候,只要文字不变,都调用一次FunB就可以了,
今天,我要修改的是FunA,由于FunA早期版本过于老,
需要收传入的参数太多,并且获取的Mb2并不是我们要的效果,导致FunB画Mb2的结果是不符合我们预期的,
结果,我就把我们库代码修改了,
主要修改位置就是Mb1 的这个函数,
然后就悲剧了,
我老大提出2点理由质疑我的修改,
1:我的代码效率的问题,FunA函数的问题
2:基础库代码不能改,我是否有其他办法解决问题
然后我就非常头痛。
1:至于代码效率问题,其实我已经说得很清楚,
我修改的函数并不是一个频繁调用的函数,
由于我修改的函输只有一个整理数据的功能,
所以我所修改的函数并不会频繁被调用,
实际上频繁被调用的是FunB函数,因为每次展示几乎都要调用,
所以,关心FunA的效率,其实是很奇怪的一个事情,
(有个小插曲是,之前我们的库里面有个更加频繁调用的内存申请函数MemAlloc,内部是包了一个类似于 ExAllocatePoolWithTag 的函数,
但是呢,MemAlloc 函数的作者竟然在这个函数里面加了一个类似于 ZeroMemory 的功能,
我当时就提出来,如此频繁被调用的一个函数,而且是个最基础的功能函数,加上一个不一定用得到的功能,是否真的有必要,但是我老大直接就把我卡了。)
2:至于基础库是否可以改的问题,其实我已经说得更清楚了,
由于我要修改的这个模块是前几天新加的,一个新的模块并不一定会有人来用它,
这个模块就是给我用的,但是它不符合我的要求,我就需要修改,
但是我老大就是说,它是在基础库中的。
哎,我只想好好地写代码。