我真的会变得直率...
- 您负责这项工作中的开发人员吗?
- 您是项目负责人吗?
- 开发人员在项目中持有多少“权益”?
- 您进行改写的业务理由是什么?
- 使它完全无用且不可恢复的代码库又是什么呢?
您已经说过您刚刚开始工作,但您似乎已经掌握了那里的情况。也许我误解了您提出问题的意图,但是我给您的印象是,您进入工作后会遇到许多问题,并且您已经得出了最简单的结论,在该结论中代码被破坏了,唯一的出路是重写,但是您是否真的考虑过雇主为此付出的代价?
使用任何现有的代码库-无论状态如何恶劣-所有者通常都会在代码所代表的产品上投入可观的投资。代码库既有直接成本也有间接成本,而作为软件开发人员,重写通常是您要做的最后一件事,因为这样会使您的代码资产贬值,从而使您之前的所有工作获得较低的回报。努力。
以Window的操作系统为例。创建了每个新版本后,就会有大量代码从上一版本继承而来。有时,整个库和API会被拖到几代OS中。为什么?因为开发人员知道这些元素可以正常工作,已经过测试,已经过修补和修复以防止安全和内存问题,并且因为进入该状态花费了很多钱。没有人愿意在赚钱的时候就抛弃工作代码,即使维护成本相对较高,从头开始的成本也始终会更高,在像微软这样的公司中,他们有数十亿美元在银行如果愿意,允许他们从头开始,但他们不愿意 t因为他们想最大化他们的投资回报。您的雇主与Microsoft没什么不同,除了有数十亿美元的现金可用于项目。
因此,代码是一团糟,听起来公司的各个部门之间存在沟通和边界问题。您或您的同事可以做什么?
一种选择是像团队一样继续前进,并希望将来有奇迹。可能不是一个好主意,可能只会增加您的挫败感和压力。
更好的选择是简单地完成工作,但在此过程中,它会寻找机会添加测试以支持那些看起来最脆弱的代码区域,然后对其进行重构,直到它们变得更稳定为止。您可以轻松地进行有说服力的论点以提高公司的投资,而不是简单地将其全部抛弃。
一个更好的选择是组织一个团队,并确保您有足够的资历来陪伴某个人,使他们成为一个很好的案例,使团队可以更有弹性地安排时间来改进代码库。我不在乎公司有多忙,或者时间表看起来多么僵硬,总是会有偶尔的“残酷”活动可以用来挤压一两个改进。但是,如果可以在完成其他任务的同时进行改进,那就更好了。如果是我,我很乐意与一位经理合作,并在软件开发人员阅读的一些规范书籍中向他们介绍概念。 清洁代码可能是您的团队最需要的那个。播下一些有关如何改进代码的种子,并提供一些您所要表达的示例。一个好的经理将看到为代码增加增量改进的价值,特别是如果您能够描述技术债务的概念。帮助您的团队负责人或经理为改进代码提出良好的业务案例,他们会更有动力对此采取行动。
仅仅说“代码不整洁”还不够。您需要鼓励您的同事一直练习干净的编码,并使用干净的编码技术来鼓励您在整理时进行一些整理。每当我从事新工作时,我都会打印出一张小海报,然后从办公室墙上挂下来。它说:“始终努力使代码比您发现的代码更漂亮”。在它旁边,我添加了另一个,上面写着“百合不需要镀金”。他们俩都提醒我,我应该始终尝试改善发现的问题,但要避免简单地将一个问题和另一个问题镀金。大规模重写通常是最糟糕的“镀金”操作,因为它们常常是出于错误的原因进行的。在某个时候肯定可以使用全新的产品版本,