我在遗留代码库中工作时学到的 8 件事
我的第一份开发工作让我陷入了庞大的遗留代码库。我的最后一份大工程是让一个现代库在其已弃用的 UI 框架中运行。经历了这段旅程后,我想分享一些我一路走来学到的技巧。
(1)通过修复错误来学习代码库。
理想情况下,你的公司应该有完善的文档,但遗留代码库往往是由某位离职开发人员维护的。通读整个代码库来快速上手几乎不可能。我发现修复错误是了解应用“个性”的好方法,同时也能让你更熟悉其工作流程。即使只是阅读待办事项单,也能让你了解公司的优先事项、缩写以及用户希望修复的内容。
(2)教程和参考资料可能很难找到。
如果代码库中的任何软件包、库或工具已被弃用,尤其如此。请熟悉您已安装的版本,并在 Google 搜索时包含这些版本。即使您能找到教程,您的应用也可能采用不同的设计模式编写。此外,许多教程都把应用描述成围绕他们演示的工具构建的。让某个功能在一个成熟的、自成体系的应用中运行起来,完全是另一回事。不要害怕尝试任何你想到的想法。
(3)你需要依靠对该应用程序有更多经验的人。
这不仅仅意味着其他开发者。多年来一直致力于该应用的 QA、数据科学和项目经理会知道一些对你大有裨益的事情。当我陷入寻找 bug 来源的困境时,我经常会问他们:“是否存在一个我忽略了的、可能会影响此问题的工作流程?” 有时候,了解某个功能的实现方式会让你明白为什么 bug 直到现在才出现、刚刚被报告,或者为什么它不是优先修复的。
(4)在编写一个全新的解决方法之前,一定要检查是否有人已经解决过这个问题。
依靠以前编写的实用程序和代码。如果您不添加新类型的数据,那么您尝试实现的与数据库的交互可能已经存在。不要忘记查看当前正在尝试修复的工作流程之外的工作流程。以前的开发人员只关注他们的工单,而不是您的。
(5)尽量不要重复代码。
熟悉代码库的实用程序和导入方法,这样您就可以在代码库的任何地方使用所需的现有代码。无需增加复杂性,也无需在多个地方进行更改。一个已经拥有大量开发人员的遗留代码库可能包含不止一个这两种情况的示例。此外,他们可能知道系统中一些您不知道的怪癖。
(6)另一方面,大量的实用程序意味着大量的抽象。
资料来源:http://www.poorlydrawnlines.com/comic/your-story/
依赖于现有实用程序的函数从头到尾读起来可能会非常晦涩难懂。只需大致了解实用程序的功能即可。如果您需要在其他地方实现它,或者它内部出现了严重错误,那么就该深入研究它的工作原理了。
(7)如果你不知道如何改进它,就不要抱怨它。
你不知道开发人员当时的时间限制,或者他们是否被告知要朝着他们个人并不认同的方向发展。如果你有答案,请与你的团队讨论一下,这是否是你们可以投入时间的优先事项。如果这是一个小工单,或者你可以将其分解成多个小工单,那么你可以将这些充满激情的项目作为完成那些真正具有挑战性或完全没有挑战性的 bug 的奖励。
(8)“让我们限制这件事的范围。”是你的新座右铭。
您希望尽可能少地影响工作流程。遗留代码库通常非常稳定,人们也指望它能够正常工作。彻底的改革固然诱人,但您的工作通常只是修补一些小漏洞。
文章来源:https://dev.to/abbeyperini/8-things-i-ve-learned-working-in-a-legacy-codebase-4h6c