Questions tagged «legacy-code»

3
编码Katas,用于练习遗留代码的重构
最近几个月,我对编写kata编码非常感兴趣。我相信它们是磨练我的编程技能和提高我在工作中编写的代码质量的好方法。 卡塔斯有很多地方。喜欢.. http://codekata.pragprog.com/ http://schuchert.wikispaces.com/Katas http://www.codingdojo.org/ 我发现它们是Katas的绝佳存储库...我对其中一些的尝试获得了极大的回报。 但是,我觉得到目前为止,我所看到的所有Kata都有一个短暂的来临。他们似乎都不允许我练习重构不良代码。第一次学习如何编写干净的代码真是太好了……但是在我目前的工作中,我没有太多的机会编写新代码。相反,我经常与遗留代码作斗争,并试图弄清楚如何重构模块,消除依赖关系并减少耦合。 因此,我一直在寻找一些Katas,可以用来磨练重构遗留代码并将其转换为干净代码的技能。 有谁知道已经存在的东西吗?我知道我在工作时会进行很多练习...但是我希望将自己的技能磨练到可以迅速了解如何打破依赖关系并在班级中分离关注点的程度做太多了。

3
为什么将自由的返回值转换为无效?
我正在读一本使用C 的书(Butenhof的《使用POSIX线程编程》,1997年),并且遇到了以下问题: (void)free(data); 这data只是指向已分配结构的指针, data = malloc(sizeof(my_struct_t)); 为什么free被强制转换为void? 从我对C的理解来看,这似乎没有任何意义,原因有两个: 自由功能已经返回 void 该代码未使用返回值(甚至未分配给变量) 这本书写于1997年。这是某种遗留的东西吗? 作者提到这些示例是在Digital Unix 4.0d上运行的,但是如果您不打算使用该结果,我仍然无法想象有理由使用函数的结果。
82 c  casting  free  void  legacy-code 

8
将单元测试添加到旧代码中
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 事后,您是否曾经将单元测试添加到旧代码中?代码有多复杂,存根和模拟一切有多难?最终结果值得吗?

19
熟悉大型代码库的最佳方法是什么?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 加入已经拥有大型代码库的现有团队可能会令人生畏。最好的方法是什么? 广阔; 尝试从代码中获得所有内容如何链接在一起的一般概述 狭窄; 一次专注于一小段代码,了解它们如何充分发挥作用 选择一项功能,以在发展中学习和学习 尝试从类图和uml中获得见解(如果有)(并且是最新的) 还有其他东西吗? 我正在研究目前大约有2万行的C ++应用程序和库(编辑:在宏伟的计划中占很小的空间!)。在行业中,我想您会得到经验丰富的程序员的介绍。但是,如果不是这种情况,您应该怎么做才能尽快开始增加价值? - 答案摘要: 在调试模式下单步执行代码以查看其工作方式 与比您更熟悉代码库的人配对,轮流成为编码人员和观看/讨论人员。在团队成员中轮换合作伙伴,以便知识传播。 编写单元测试。首先声明您认为代码将如何工作。如果结果符合您的预期,则您可能已经理解了代码。如果没有,您将有一个难题需要解决,或者需要进行询问。(感谢多纳尔,这是一个很好的答案) 与上述类似,对功能代码进行现有的单元测试 阅读UML,Doxygen生成的类图和其他文档,以广泛了解代码。 进行少量编辑或错误修复,然后逐步建立 记笔记,不要跳进去开始发展;花时间理解比生成混乱或不合适的代码更有价值。 这篇文章是使用继承的代码库熟悉自己的最佳方法的部分重复

8
旧版C / C ++项目中的死代码检测[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 您将如何进行C / C ++代码中的无效代码检测?我有一个相当大的代码库可以使用,并且至少有10-15%是无效代码。是否有任何基于Unix的工具来识别此区域?有些代码仍然使用大量预处理器,自动化过程可以处理吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.