作者oopFoo (3d)
标题Re: [请益] 请问要怎麽改老旧的程式码?
时间Sun Mar 4 21:05:48 2018
啊!时代的眼泪。MS COM(component object model).
你先找一下资料,看COM是什麽东西。
第一张图只是把ptr function call变成比较清楚的function名称。无特殊功能。
第二张图ifdef只是看要用macro text substitution还是真function. debug purpose?
---------------------------------------------------------------------------
要understand legacy code其实是有方法的。
不是top-down从main追流程。要bottom-up。记得演算法就是divide and conquer.
Fred Brooks说"Show me your flowcharts and conceal your tables, and I shall
continue to be mystified. Show me your tables, and I won’t usually need your
flowcharts; they’ll be obvious."
首先把所有struct, global variable列出来。尽可能写出它们的用途.
然後class data同样写出。
第二,找出最简单的function, 除了c library/win library, 没有call其他function.注
解功能。
第三,找出function只call已经注解的function.
第四,repeat 3, 直到所有function都注解了。
第五,从main开始trace.很简单的完成任务。
----------------------------------------------
因为com的原因,你会有很多program. 一样divide and conquer.
没有depend on其他com(program)的program先解析。
然後解析只depend已经解析过的program.
----------------------------------------------
你可以一边解析一边port到java.
mindmap可能可以帮助你了解dependencies.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.153.229
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1520168750.A.184.html
1F:推 a88241050: 好哦,谢谢你 03/04 21:29
2F:推 s89162504: 感谢楼主 下次看旧的code时来练习 03/04 22:47
3F:推 jj0321: 好人推推 03/04 23:15
4F:推 louisalflame: 推 03/05 01:02
5F:推 dannypsnl: 推 03/05 01:15
6F:推 GLaDOS1105: 推 03/05 17:45