码迷,mamicode.com
首页 > 其他好文 > 详细

如何去修改一段陌生的代码

时间:2015-12-20 23:59:25      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:

写在这里仅仅是为了备忘

场景:

最近的工作中用到使用ffmpeg实现了一些功能,现在有需求的变更,需要修改(重新组合或者拆分)这些功能。

本人对ffmpeg十分陌生,对我们项目中ffmpeg实现的功能比较熟悉。这是典型的对业务熟,对代码不熟,呵呵。

1、熟悉功能

2、不熟悉实现功能的代码

3、要去修改这些功能(代码)

 

通过这几天的工作努力完成这项工作。特总结如下:

1、理解功能,对功能根据代码的结构进行细化,比如保存文件细化为 编码 + 保存文件

 (功能的细化是根据代码的实现逻辑来的,并不是凭空想象),不需要知道很详细的代码实现细节,宏观上即可。

2、忽略一些方法,很多方法其实我们只需要知道用在哪个功能里面就好了,比如av_interleaved_write_frame是用在保存文件中的,这样就够了,不需要去深究。因为有的地方(不需要拆分的地方)我们只需要照着原来的做就好了。

3、找到模块之间的衔接方式(方法,对象等等)如果需要拆分一个大功能的话,比如保存文件拆分为 编码和保存文件。

4、实现细化之后的模块化。

这样我们基本上就解决了问题。好吧,通常情况下问问远远没有解决。

5、模块化之后就是运行程序了。但是这里结果往往不尽如人意。

6、在做完模块之后,其实我们对那些陌生的模块已经有一定的了解了,这时我们就需要对代码进行更细致的了解,但并不是对所有的部分都要这样,对相关的模块即可。

7、这时我们对代码已经熟悉了,应该能解决问题了,如果还是不行就到网上查找一些实例代码(不要忽略官网的例子),通过学习demo来深入理解api

8、不要忘了原有的代码是没有问题的,而且使用场景和现有场景基本完全吻合,所以他也是一个很好的demo

    回过头来看看原有的代码,看看原来的代码和现在的代码有和不同,

9、调试原来的代码。通过修改原有代码(替换一些api的参数,删减一些函数调用等等)来加深对api的理解,印证自己的想法。

10、问题这时还没解决,基本上已经陷入其中,先休息一下,之后要把自己抽出来,从宏观上捋清思路,制定策略

这时对代码基本已经很熟悉了,应该能解决所有的问题了

如何去修改一段陌生的代码

标签:

原文地址:http://www.cnblogs.com/Haijunzhu/p/5062116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!