目前,我们的开发人员会对javascript代码进行取消混淆,这样他们就可以在我们发布到生产环境之前更好地对我们的代码进行QA测试。
然而,有时,他们忘记在发布到生产之前对代码进行模糊处理。
我想知道是否有一种方法可以使未经混淆的javascript过期,这样即使QA开发人员忘记混淆js,它也会在一定的时间段(比如12小时)后自动模糊js?
答案 0 :(得分:4)
不,你所要求的是没有意义的。
问题在于您的流程:为什么在您的QA开发人员获得产品之前会发生混淆?为什么不在他们和最终客户发布之间(即使有必要)?
尝试重新设计代码在核心开发人员和客户手中之间的路径,而不是为业务问题寻找技术解决方案。
答案 1 :(得分:1)
Javascript不会混淆自己,所以这个问题没有多大意义。
模糊处理由构建/发布过程中的单独工具完成。您需要的是改进/自动化部分发布过程,以消除该过程中出现人为错误的可能性。这可以通过更严格的手动过程或更自动化来完成。
一般情况下,QA团队应该测试在最终站点上部署的完全相同的代码,因此如果这样做是混淆的,那就是QA应该测试的内容。所以,首先,我会回顾QA正在做什么以及为什么。他们应该测试混淆代码。
如果QA需要出于任何原因检查未经模糊处理的代码(我自己无法想到任何可能的原因),那么他们应该在他们自己的系统上制作他们自己的代码副本,这些代码是未经过模糊处理的,不应该放在在发布过程中的任何地方都没有经过模糊处理的代码。
最后,听起来您可以从构建自动发布流程中受益,该流程可以进行模糊处理并部署到QA测试环境和部署到生产服务器的相同流程。这可以保证混淆到位,并且QA正在测试发布时生产的相同位。
答案 2 :(得分:0)
你的过程是错误的。如果开发人员需要未经混淆的javascript进行调试,请使服务器本身具有调试标志以返回未经混淆的代码。默认为混淆代码。要求两者都在场。在发布过程中将混淆处理到发布脚本中。
你不希望QA测试除你正在部署的构建之外的其他东西,所以在事后是不理智的混淆(想象你在混淆器中遇到了一个bug ......就像看起来那样,你宁愿抓住它吗?在质量保证中,或者直到它产生刺激?
通过默认为混淆代码,但通过会话状态或cookie允许普通代码,您可以获得正确测试的版本,并且可以轻松调试。