我被要求重新编写(从头开始)现有的C#winforms应用程序。不幸的是,在过去的三四年里,至少有十几个不同的开发人员修改了这个代码,他们似乎都没有看到任何类型的编码标准。要说这个代码库是乱七八糟的,那就是礼貌地说。考虑到代码的大小(~24k行)以及代码对我来说是全新的事实,我想找到某种实用工具来帮助我更快地理解这个应用程序在高级别上的工作原理。请记住,在这段代码中似乎没有大量优秀的OOP实践,所以我需要比类图更详细的东西。我已经看到了生成序列图的参考,这可能更像我正在寻找但我只有VS2010 Premium,我的印象是这个功能只提供VS Ultimate SKU。我可以访问当前版本的.NET Reflector,我看到有几个人提到有插件可能有用,但我没有任何特定的名称。
答案 0 :(得分:6)
从头开始重写代码可能是一场灾难:请参阅:http://www.joelonsoftware.com/articles/fog0000000069.html
这不是一件容易的事,因为你提到过你之前有十几位开发人员。 每个开发人员背后都有他自己的方法论和他自己的系统逻辑。大家 是按照自己的方式做的。
以下是您可能遇到的一些问题
除了有一堆应用程序的流程图/图表之外,最好要求或获得的是技术规范。该计划的目的是什么,并且鉴于其他12人参与其中,您可以自己采取什么措施?
你提到过OOP,你是否计划采用意大利面条代码并进行整个重写以适应面向对象的模型?如果是这样,那就是很多工作......并且有12个先前的大脑正在研究它,某人的逻辑肯定会让你失望。
抱歉,我没有最好的建议,但这可能是一项艰巨的任务......特别是如果你之前的开发人员不在那里。
有关详细信息,请参阅这些SO主题:
答案 1 :(得分:3)
看看NDepend,它是一个代码管理工具,可以帮助您,感谢code querying,code rules,smart technical debt estimation,依赖{{3} }和矩阵,graph,因为基线...
哦,还有code diff。
答案 2 :(得分:0)
我很确定,虽然整体无效,但现有代码的某些部分非常好。我建议您采取这些部分,将单元测试放在它们周围并喘气,将它们粘贴到您的新项目中。这样,你就会把你的烂摊子一点一点地过滤成重塑和测试过的东西。
此外,我一直想做的事情是打印大量代码并通过切割(使用真正的金属刮刀)将工作流可视化,并将它们重新组合在一起使用它们。