最近几个月我对编码katas很感兴趣.我相信它们是磨练我的编程技巧和提高我在工作中编写的代码质量的好方法.
Katas可以在很多地方找到.喜欢..
http://schuchert.wikispaces.com/Katas
我发现这些是Katas的优秀资料库......我对其中一些人的尝试得到了极大的回报.
但是,我觉得到目前为止我见过的所有卡塔都有一个短暂的来临.他们似乎都不允许我练习重构坏代码.第一次学习如何编写干净的代码真是太棒了...但在我目前的工作中,我没有太多机会编写新代码.相反,我经常与遗留代码作斗争并试图弄清楚如何重构模块,消除依赖关系并减少耦合.
因此,我正在寻找一些可以用来磨练我重构遗留代码并将其转换为干净代码的技能的Katas.
有谁知道任何已存在的?我知道我在工作的时候会接受很多练习...但是我想磨练自己的技能,以便能够快速地看到如何分离依赖关系,并在课堂上分离关注点做得太多了.
我正在阅读一本使用 C的书(Butenhof 的POSIX 线程编程,1997 年),我遇到了以下行:
(void)free(data);
Run Code Online (Sandbox Code Playgroud)
这里,data只是一个指向已分配结构的指针,
data = malloc(sizeof(my_struct_t));
Run Code Online (Sandbox Code Playgroud)
为什么是free被强制转换的结果void?
根据我对 C 的理解,这似乎没有意义,原因有两个:
void这本书写于 1997 年。这是某种遗产吗?
作者提到这些示例是在 Digital Unix 4.0d 上运行的,但如果您不打算使用该结果,我仍然无法想象有理由强制转换该函数的结果。
事实上,您是否曾将旧单元测试添加到遗留代码中?代码有多复杂,存根和模拟一切有多难?最终结果值得吗?
加入已经存在大型代码库的现有团队可能会令人生畏.什么是最好的方法;
我正在研究目前大约20k行的C++应用程序和库(编辑:在宏观方案中很小!).在工业界,我想你会得到一位经验丰富的程序员的介绍.但是,如果不是这种情况,您可以做些什么来尽快开始增值?
-
答案摘要:
这篇文章是一个部分重复的 - 最好的方式 - 熟悉自己与继承的代码库
您如何在C/C++代码中进行死代码检测?我有一个非常大的代码库可供使用,至少10-15%是死代码.有没有基于Unix的工具来识别这个区域?有些代码仍然使用了很多预处理器,可以自动化处理吗?
当您在遗留代码库中工作时,随着时间的推移会产生哪些影响,从而提高代码库的质量?
代码库是由许多开发人员编写的,他们多年来具有不同的专业知识水平,许多领域未经测试,有些领域不可测试,而且没有花费大量时间编写测试.
我需要一些关于如何使用遗留代码的建议.
不久前,我被赋予了向报告应用添加一些报告的任务.早在2005年就用Struts 1编写了.没什么大不了的,但是代码非常混乱.没有使用Action表单,基本上代码是一个巨大的动作,里面有很多if-else语句.此外,这里没有人具备这方面的功能知识.我们碰巧在我们的合同中有它.
我对此非常不满意,不知道如何继续.这个应用程序是看不见的:很少有人(但都非常重要)使用它,所以他们在阅读代码,标准等时不关心我的眼睛是否流血.
但是,我认为应该支付技术债务.我该怎么办呢?继续沿if-else道路前进,或者尝试以正确的方式执行此要求,忽略项目的其余部分?开始一个巨大的重构,冒着我的最后期限?
可能重复:
在Windows 7上有没有人在Visual Studio 6上取得成功?
VB6 IDE是否在Windows 7 64位上运行?
我在Windows 7上安装VB6时遇到了问题.我发现它是一个传统的IDE,我在网上的研究并没有那么大的帮助.每次我尝试在Windows 7上安装VB6时,除了通知我兼容性问题的警报外,安装程序会在接近结束时运行并失败,安装过程最终会失败.当进行另一次尝试时,某些dll文件可能无法访问.
这些只是我访问过的一些链接,希望获得解决方案,甚至只看到一些面包屑:
- 如何在Windows 7上安装VB6
- 在Windows 7 64位上安装VB6
在有人说,"为什么在Microsoft Windows Visual Studio的新版本出现时,你为什么要在Windows 7上安装VB6",VB6仍然需要维护和更新现有的遗留系统.
那么问题是,有没有办法在Windows 7上安装VB6而没有兼容性问题?是否更好的安装虚拟盒并在XP中运行VB6 IDE?还是有其他一些我没有遇到的方法可能适用于这种困境?
谢谢和亲切的问候,
克雷格
我有一个代码非常混乱的项目 - 这里和那里有很多重复和死代码.
前一段时间单元测试的代码覆盖率为零,但现在我们尝试以TDD方式编写所有新代码,并通过单元测试覆盖"旧"代码来降低技术债务(测试最后技术).
业务逻辑的复杂性非常高,有时候没有人可以回答是否使用了某些方法.
如何找到这种死代码方法?广泛的伐木?更高的测试覆盖率?(这不是很容易,因为客户想要新的功能出来)
我必须在Java应用程序中发现内存泄漏.我对此有一些经验,但希望就此采用方法/策略方面的建议.欢迎任何参考和建议.
关于我们的情况:
问题: 帮助您成功捕获企业级应用程序中的泄漏的方法是什么?
legacy-code ×10
refactoring ×4
legacy ×3
automation ×1
c ×1
c++ ×1
casting ×1
codebase ×1
dead-code ×1
enterprise ×1
free ×1
installation ×1
java ×1
memory-leaks ×1
methodology ×1
php ×1
unit-testing ×1
vb6 ×1
void ×1
windows-7 ×1