原文:您的老板怎么说?找出来-做到这一点。
我被要求详细说明以上内容:
首先,我认为您有多个难题:
- 您是否应该“修复”他人密码?
- 其他人的实现(从A开始)是否足够糟糕,应该用其他东西代替?
- 混淆器(此后为B)对于这种“嵌入到我们的应用程序中的许可”会更好吗?
首先,从业务案例来看,问题得以解决。A已经到位,并且很可能是该问题的“足够好”的解决方案。您的公司可能对它基本上只是受到足够的保护而感到满意,以至于需要为破坏它而刻意努力。
这意味着即使您不喜欢它(并且相信我,您在整个职业生涯中会看到很多更糟糕的事情),它仍然可以满足您的需求。因此,在解决问题后,您不应该“随便做”,而应说服负责您的工作的人长期此实现的价格将足够高,可以保证回滚并选择股票混淆器。这将需要您做大量准备工作,并且还请注意,混淆器也有您需要了解的缺点(其他答案很好地涵盖了这一点)。例如,堆栈跟踪不能立即使用,等等。这完全取决于避免盗版的重要性。请注意,最难破解的是那些需要硬件加密狗才能运行的加密狗,而且最有可能比客户希望的价格贵。
因此,此决定不是您要做出的,因为您的公司需要使用额外的资源去B。因此,您需要将您的疑虑带给负责人,充分解释此问题以及其他任何长期疑虑,以使他理解为什么您认为它不如您的建议。然后让他做出决定,无论结果如何,都要尊重并以专业的方式做出相应的举止。请注意,原始作者极有可能在撰写时仍然要对其进行维护,如果他离开或不再想要保留它,则可以再次提出该问题。
换句话说:您的老板怎么说?找出来-做到这一点。
还要注意,如果您提早提出问题,那么在实施A上浪费的时间会更小,这将是不同的。换句话说,当要在A和B之间进行选择时。
最后,我想评论一下您关于“仅修复其他人的代码”的问题。这对现有代码不是一个小小的修正(我发现它很好,并受到鼓励,特别是在进行测试的情况下)。这是一种破坏性的回滚和重新实现,即使在拥有通用代码所有权的团队中,未经事先批准,这也是不可接受的做法-至少对我来说是这样。
希望这可以澄清我的观点。