这一章节的题目是Working With Feedback,暂时没有想到合适的翻译,姑且叫做“根据反馈工作”
我们可以以两种方式进行改变,作者称之为“
Edit
and Pray”和“
Cover and Modify”。
Edit
and
Pray的工作方式是:首先计划要修改的内容,然后阅读和分析要修改的部分,确保理解了要修改的代码,然后进行修改。修改完成后,启动程序来验证修改生效了,然后在程序中“四处乱逛”来检查其他的部分没有被破坏。
Cover
and
Modify的工作思想是:当我们修改代码的时候,会有一个“安全网”来保证我们的修改是正确的。这里
Cover的意思是使用测试来覆盖代码。当我们的代码有足够的测试的时候,我们能够很快的知道我们的修改是正确的还是错误的。
在传统的方式下,测试是在开发之后编写和执行的。开发人员编写代码,然后交给测试人员测试。然后开发人员得到反馈,并根据反馈修改代码。通常这个过程会比较长(就算是开发人员和测试人员在同一个办公室工作,也是以天来计算吧。甚至是一周或更长)。
另外一种测试就是我们常说的回归测试。当我们做了修改之后,我们要保证其他的功能没有被破坏,于是要把以前确认过的正确的功能重新测试一遍,这个叫做回归测试。那么我们改变了代码之后,为什么不立刻进行回归测试来验证我们的代码没有破坏其他的功能呢?原因是在传统的方法中,回归测试都是在
Interface这个层面上进行的,并且是由测试人员执行的。因此,第一我们不可能每做一点修改,就要求测试人员为我们运行回归测试。通常的情况下是测试组有自己的计划,可能是每天运行一次回归测试。第二,当测试组按照自己的计划运行了回归测试之后,因为在两次回归测试之间,开发组可能做了多个改变,因此即使回归测试发现了问题,也不能准确的说出这个问题是由哪个改变引起的。
如果我们有完善的单元测试,我们就可以做一点修改,然后运行单元测试来确保所有的测试都可以通过,几分钟之后我们就可以得到反馈。这样有助于我们改变代码并定位错误。
分享到:
相关推荐
Working Effectively With Legacy Code
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned ...
☆ 说明如下:☆ 《修改代码的艺术》 《Working Effectively with Legacy Code》
世界级计算机专家Michael C. Feathers的经典之作,软件开发大师Robert C. Martin作序倾情推荐,修改遗留代码的指南。 深入剖析修改遗留代码的各种方法和策略,从理解遗留代码、为其编码测试、重构及增加特性等...
真正的修改代码艺术(英文版), 保证能看.
Working Effectively with Legacy Code(修改代码的艺术 英文原版)
修改代码是每一位软件开发人员的日常工作,开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基...
修改代码的艺术Working Effectively With Legacy Code
working.effectively.with.legacy.code.pdf Table of Contents Robert C. Martin Series 1 Foreword 1Preface 2.Acknowledgments 3.Introduction 5 How to Use This Book5 Part I: The Mechanics of Change 6 ...
working effectively with legacy code
修改代码的集大成之作. Amazon全五星图书.. 适用于各种语言或平台... 修改代码是每一位软件开发人员的日常工作。开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化...
中文文字版,重构代码的好书,比较有名,就不再多做介绍。
有效地使用遗留代码 我们为什么要改变软件? 添加功能 - 添加一些行为,保持现有行为不变 修复错误 - 改变一些行为,保持其他行为不变 改进设计 - 更改代码结构,保持现有行为不变 优化资源使用 - 更改代码以提高...
3D TOUCHLESS FINGERPRINTS: COMPATIBILITY WITH LEGACY ROLLED IMAGES Fingerprints are traditionally captured based on contact of the finger on paper or a platen surface. This often results in partial or...
Perl Medic: Transforming Legacy Code By Peter J. Scott Pages : 336
官方的源文件,我只是搬运工 文件只是一个连接地址,不必下载,http://az717401.vo.msecnd.net/legacy/MDKCM524.EXE
pdf. by David Scott Bernstein
Working Effectively With Legacy Code by Michael Feathers
这项工作介绍了MatLab脚本中用于设计线性系统的方法及其使用Legacy代码工具进行simulink的块生成。 自动生成滤波器系数头文件。 下一个MATLAB脚本接收参数设计并生成DPS.H,其中包含用于DSP软件实现的滤波器系数。 ...