回答
根据您的工具集,从建筑或结构角度分析代码库时,通常会有一些帮助。
在VS 2010 Ultimate或者像nDepend这样的工具中,您可以生成依赖关系图,以帮助您查看应用程序的依赖关系和代码使用情况,当尝试将较大的代码分解为较小的API或服务时非常有用。
此外,单元测试和集成测试可以帮助确保功能得到维护,而不会引入错误并使用重构工具,如resharper,justCode或coderush可以真正帮助您在处理时调整名称空间,代码文件物理位置和类/方法签名一个庞大的代码库被集成到更小的更易于管理的库和项目中。
在规划方面,您确实需要从关注点分离的角度建立应用程序的关键元素,以定义每个模块的边界。
也许你可以做的最糟糕的事情只是启动并开始将代码分解为块。一次为一个模块绘制分阶段迁移将是我的首选策略。
同意上述评论,但问题太广泛,无法得到任何有意义的答案。
由于有许多技术(例如大量的单元测试代码)有助于您的问题,因此您的问题非常广泛。阅读关于该主题的书可能是最好的。我强烈建议你迈克尔羽毛
虽然这本书主要是Java为中心所描述的技术是普遍适用的。它肯定会改变你编写和思考代码的方式,并且在处理现有应用程序时会有所帮助。
羽毛的书也是this SO post最推荐的书籍之一。
感谢0xA3。好书。 – logeeks 2011-05-05 10:24:17
要在加工完成Mac的答案,如NDepend的(免责声明:我是NDepend的工具的开发商)我建议阅读如何分区组件,层和组件代码these 2 white books。这当然是打破你的单一代码库的关键。
- 1. 一个简单的项目
- 2. 把手 - 获取前一个项目
- 3. 手动制作一个WPF项目
- 4. 如何导入一个cocos2d项目的一部分到另一个项目
- 5. 分组几个目标到一个单一的一个
- 6. 基于另一个项目的分支启动一个新的github项目
- 7. MonoDroid项目中包含一个Windows 7手机项目?
- 8. Html助手项目可以被另一个项目看到
- 9. 分叉一个Rails项目的宝石
- 10. 拆分一个bzr版本的项目
- 11. 的Heroku:拉来一个项目分支
- 12. 分支git的一个项目
- 13. 如何划分其在DLL中的一部分,另一个在代码(棘手的问题)一类项目
- 14. 单选桌上的一个项目
- 15. 创建一个简单的Ruby项目
- 16. 在一个单独的项目
- 17. 当您点击下一个手风琴项目时,您如何关闭上一个手风琴项目
- 18. 17.8 MiB为一个简单的“Hello World”项目分配堆?
- 19. 一个项目
- 20. Rails的分配与一个表单项
- 21. 明确的单一项目
- 22. 从后续项目中总结第一个分组的项目
- 23. Javascript分页(下一个项目/以前的项目)与jQuery?
- 24. 在我的项目中使用另一个项目的一部分
- 25. 单位多个项目到一个maven项目
- 26. 如何分析一个项目
- 27. NSFetchedResultsController组项目在一个部分中
- 28. 分裂一个大串入组项目
- 29. 分享一个Eclipse CDT项目
- 30. 分享一个项目到svn
这是什么呢? – BoltClock 2011-05-04 19:19:46