挨踢的人,哪有进度不紧张的?面对进度,不紧不慢的不多,被进度冲昏头脑的,我却经常碰到。
公司早就有了自己的平台无关的业务和界面实现封装,平台无关性不敢说做到了什么程度,但至少下成熟的平台上,Win32下和真实环境下几乎没有区别。
前段时间就碰到这么一个项目组,号称只有大约xx天时间要出一个样机,于是拿了个以前所谓类似的项目,就开始在真实环境(一个非常成熟的平台方案)下改代码,说时间太紧,Win32就仅仅用来做个界面了,业务流程全部在真实环境下完成,结果改了差不多一个星期,基本的搜索功能还有问题。于是可怜偶大周末的下午7点多过去给帮忙解决。(ft啊)过去一看log,非常明显的断言(告诉我没注意,再次ft),某个handle传了个空,顺藤摸瓜找上去,很快发现某个消息发送和接收的时候对参数的解释不同。
做这个项目也算是有经验的老员工了,这么明显的错误不可能看不到,只能解释为被进度冲昏了头脑。
所幸这次碰到的还是小case,查代码就能搞定,如果是哪种隐藏较深的问题,仅仅查log,解决起来的效率可就跟用专业的调试工具不能比了。
如果项目一开始,就从Win32工程动手,虽然表面看起来进度没有现在的方法直观,但不仅知的问题能更早更容易的发现解决(至少以Win32下的断言提示,没有人不会不注意它吧),可能潜在的问题解决起来,风险也会小很多。如果说担心移植方面的问题,一则这是个成熟的平台,出现这种问题的概率较小,二则即使确实存在问题,也可以通过同步验证等方法尽早发现、尽早提交到相关部门解决,三则退一万步,也至少可以把明显平台无关的放到Win32下开发提高进度。
无独有偶,上周又碰到了这样的项目,到了项目最后的几天了,在真实环境验证没有问题,但Win32工程同样缺失,于是一个内存泄漏+一个解决过程中引起的空指针读取问题,就搞了3天,而在Win32下,我们知道编译器基本上是可以直接定位这些内容的。