最近工作中犯的一些错误,以及总结的体会

1. 做事切忌急于求成,一定要按部就班的来。每一个小小的步骤都必须确信没有问题了,才能进入下一个步骤。以前,为了尽快看到效果,我会选择将某些复杂的任务用一个简单的任务替代,待到效果实现之后,然后再继续修改为复杂的任务,这其实是一种极其低效的工作方法,等于原来写的简单任务的代码完全作废了,而且在修改的时候说不定会遇上新的原来未考虑到的问题,这甚至导致所有的代码必须重写。
另外一个例子:在clearcase中的vc项目中添加新文件的时候,不应该急于修改刚加的文件,而是应该先将项目checkin,然后再将空文件add to source control,这样别人就可以继续修改项目,而且不会编译不通过了。
2. 当实现的时候遇到逻辑非常复杂,难以处理的时候,不要过多的纠缠于局部的逻辑,而应该从整体逻辑上考虑,原有的设计是否存在不合理的地方。
例如在处理MVC设计的时候,View可以通过多种方式被关闭:首先通过View本身的close关闭,其次文档关闭时View也要关闭,而View本身又涉及到窗口,IView实例等的关闭,这时的逻辑非常复杂,此时不应该纠缠于局部的实现,而应该从整体上考虑:1. 既然View的关闭涉及到这么多东西,我们不应该将这些逻辑分散到各个不同的对象中,而应该统一用一个外部的策略来处理,这里选择用关闭的系统任务来实现。2. 询问文档是否需要保存等操作也可以放到系统任务中,因为其本身就是系统应该做的事情。但是如果是某些特别的View有特殊处理,不允许关闭时,可以考虑由View本身来预处理关闭任务。也就是说,某些对象特有的操作应该交给该对象自己处理。
3. 尽量少拷贝代码,而应该自己写,这样一个是增强记忆,这样下次使用时不用到处查,另外也能更清晰的了解代码的逻辑,说不定还能找到代码的错误。
4. 怀疑一切的精神。对于一些已有的实现,不一定就是好的实现。别人提出的某些想法,不一定就是最终的解决方案,在逻辑清晰的思考出来之前,不要为了怕思考问题,而强制自己接受之。思考问题的方法:不是先有结果,然后强制自己去找所谓的原因来说服自己;而应该从问题本身出发进行分析,从而得出结果。
5. 思考问题要抓住重点,不要纠缠于细节,不要毫无目标的思考,这其实和第2点是一个意思。例如在分析View/Doc的关系时,重点在于View由Doc创建也就必须由Doc关闭。又比如Slot中的问题层出不穷,其实重点在于静态变量的生命周期没有理顺。

你可能感兴趣的:(体会)