百合文库
首页 > 网文

程序员:前任留下的代码你要怎么处理?

2023-03-26科技程序员互联网编程web前端 来源:百合文库
作为软件工程师不可避免会遇到的一个场景是:我们在改变或添加一个功能到不是我们创建的、我们不熟悉的、与我们负责的系统部分无关的代码中时,会遇到麻烦。虽然这可能会是一个繁琐而艰巨的任务,但是由于使用其他开发人员编写的代码有很大的灵活性,所以我们可以从中得到大大的好处,包括增加我们的影响范围,修复软件腐烂以及学习我们以前不了解的系统部分(更何况,还可以学习其他程序员的技术和技巧)。
考虑到使用其他开发人员编写的代码既有其厌烦之处,又有其优势所在,所以我们必须小心不要犯一些严重的错误:
我们的自我意识:我们可能会觉得自己知道得最多,但通常事实并非如此。我们要更改的是我们知之甚少的代码——我们不知道原作者的意图、导致此代码的决策以及原作者在写代码时可用的工具和框架,等等。谦逊的品质价值千金,你值得拥有。
原作者的自我意识:我们即将接触的代码是由另一个开发人员所编写的,另一种风格、约束、期限和个人生活(消耗他或她工作之外的时间)。只有当我们开始质疑他或她做出的决定或质疑代码为什么这么不干净的时候,那人才会自我反省,不至于夜郎自大。我们应该尽一切努力让原作者帮助我们工作,而不是妨碍我们。
对未知的恐惧:很多时候,我们将要接触的代码是我们知之甚少或完全一无所知的。令人害怕的是:我们将对我们所做的任何改变负责,但是我们基本上就像是在没有光线的黑暗屋子里走动一样。其实我们不需要担心,而是应该构建一种使我们能够在大小不一的改变中感到舒适的结构,并允许我们确保没有破坏现有的功能。
由于开发人员,包括我们自己,是人,所以在处理其他开发人员编写的代码时,处理好很多人的天性问题是很有用的。在这篇文章中,我们将通过我们可以使用的五种技术来确保将对人性的理解成为我们的优势,从现有代码和原作者汲取尽可能多的帮助,并使得其他开发人员编写的代码最后变得比原来更优秀。虽然这里列出的5个方法并不全面,但是使用下面的技术将确保在结束改动其他开发人员编写的代码时,我们有信心保持现有功能的工作状态,同时确保我们的新功能与现有的代码库协调一致。
1.确保测试的存在
要想确保在其他开发人员编写的代码中所存在的现有功能实际能够按照预期的方式工作,并且我们对其进行的任何更改都不会影响到功能的实现,唯一真正令人信心十足的方式是用测试来支持代码。当我们遇到另一位开发人员编写的代码时,代码有两种所处的状态:(1)没有足够的测试水平,或(2)有足够的测试水平。遇到前一种情况,我们得负责创建测试,而在后一种情况下,我们可以使用现有的测试来确保我们做出的任何更改都不会破坏代码,并尽可能多地从测试去了解代码的意图。
创建新测试
这是一个悲伤的例子:我们在改变其他开发人员的代码时,要对更改结果负责,但是我们没有办法保证我们在进行更改时不破坏任何东西。抱怨是没有用的。无论我们发现代码处在什么样的条件下,我们总归是要接触代码,因此如果代码坏掉了,就是我们的责任。所以我们在改变代码时,一定要掌控自己的行为。确定不会破坏代码的唯一方法是自己写测试。
猜你喜欢