|
|
1
8
看一看 Structure 101 . 它非常适合可视化依赖项,并显示依赖项,以便在构建更干净的结构的过程中打破这些依赖项。 |
|
|
2
6
根据我们的经验,需要记住以下几点:
|
|
|
3
2
两条建议:您首先需要的是测试套件。第二个建议是分步工作。
高级别测试的主要优点是,相对少量的测试可以获得很大的覆盖率。它们不会帮助您锁定错误,但您并不真正需要这样做:如果您以小步进行工作,并且确保在每次更改后运行测试,您将能够快速检测(意外引入)错误:错误的根源在于代码的一小部分自上次运行测试以来发生了更改。 |
|
|
4
1
我最近面临着一个类似的任务,考虑到一个15年的代码库,这个代码库是由一系列彼此没有任何沟通的开发人员编写的(一个在项目中工作,离开,然后另一个被雇佣,等等,没有串扰)。结果是风格和质量完全不同。
我们最终要做的是确定这段代码实现的一个大目标,然后为此编写基本逻辑。当我们需要完成一项我们知道以前已经完成的任务时,我们找到了它并将其包装在库调用中,这样它就可以独立存在。例如,一个代码块激活USB设备驱动程序以创建图像;该代码不受当前项目的影响,但在必要时通过库调用进行调用。另一个代码块使用安全加密狗,还有一个查询远程服务器的数据。这些都是可以封装的必要代码。然而,绘图代码是在15年时间内完成的,这是一座疯狂的大厦,以至于在一个月的时间内在OpenGL中进行重写比试图找出其他人做了什么,然后如何添加到其中更好地利用了时间。 我在这里有点不太好,因为我们的项目是MFC C++到.NET C,但是基本原理是适用的:
|
|
|
5
1
为了继续Itay的回答,我建议阅读 Michael Feathers' "Working Effectively With Legacy Code"(pdf) . 他还建议每一步都要经过测试。还有 A book-length version . |
|
|
6
1
话虽如此,您肯定需要记录您的任务,每个较小的项目将完成什么,然后(正如这里多次提到的)测试、测试、测试。您需要在整个项目中进行测试,然后对项目的各个部分进行测试,这些部分将作为子项目结束。
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |