我被要求重新编写(从头开始)现有的 C# winforms 应用程序。不幸的是,在过去的三四年里,至少有十几位不同的开发人员修改了这段代码,他们似乎都没有遵守任何类型的编码标准。说这个代码库一团糟是客气的说法。考虑到代码的规模(约 24k 行)以及代码对我来说是全新的事实,我想找到某种实用程序来帮助我更快地理解这个应用程序如何在较高层次上工作。请记住,这段代码中似乎没有大量良好的 OOP 实践,因此我需要一些比类图更详细的东西。我已经看到了生成序列图的引用资料,这可能更像我正在寻找的东西,但我只有 VS2010 Premium,而且我的印象是只有 VS Ultimate SKU 提供了此功能。我可以访问当前版本的 .NET Reflector,我看到一些人提到有一些插件可能有用,但我没有任何具体名称。
最佳答案
从头开始重写代码可能是一场灾难:参见:http://www.joelonsoftware.com/articles/fog0000000069.html
这不是一件容易的事,因为您提到在您之前有十几位开发人员。 每个开发人员的背后都有他自己的方法论和他自己的系统逻辑。每个人 以他们自己的方式行事。
以下是您可能会遇到的一些问题
- 遵循另一个开发人员的逻辑
- 开发者是否还在,或者是否换了职位,或者更糟的是换了工作
- 查找甚至是否存在技术规范(这是最重要的)
- 最初编写的遗留代码,然后修补,然后一次又一次地修补......
- 可能已集成或编写在应用程序中的自定义代码
- 安全,如果有的话
除了拥有一堆应用程序的流程图/图表外,最好索要或获得的是技术规范。该计划的目的是什么?考虑到其他 12 个人参与了该计划,您可以自己承担吗?
您提到了 OOP,您是否打算采用意大利面条代码并进行整个重写以适应面向对象模型?如果是这样,那将是很多工作……并且有 12 个先前的大脑在处理它,某些人的逻辑一定会误导您。
抱歉,我没有最好的建议,但这可能是一项艰巨的任务……特别是如果您之前的那些开发人员已经不在了。
查看这些 SO 线程以获取更多信息:
关于c# 代码流映射/可视化实用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5650391/