Bug是如何产生的?
计算机是精确的,而人是非理性的。这是Bug之所以会产生,且一直烧之不尽的本质原因。如果将编程比喻成施咒,一个字符、一个停顿,没有与正确的形式一致,咒语就不会生效。
另外还有一个次要原因:开发目标、所需资源往往都是由他人提供的,程序员很少能够自己控制工作环境和工作目标。
综上,程序员能做的只是不断逼近完美,但是并没有办法将Bug从软件中彻底清除。
02
—
后端开发的现状
目前,搭建若干套环境是目前技术公司都会采用的方案。这里抽象为开发环境、测试环境、线上环境,三者之间共用一套程序,但是数据是隔离的。
开发环境由开发人员维护,主要用于验证方案,调试程序,变更频繁但是数据单一。由于开发能够直接介入,这个阶段出现的问题往往都能够被很快的解决。开发自测通过后,程序会被发布到测试环境。
测试环境相较于开发环境更加稳定,数据也更接近线上环境。开发收到的问题反馈大量的集中在这一阶段,而且由于不能直接介入,定位与解决问题的难度开始提升。测试人员测试通过后,程序正式向用户发布。
线上环境是直接面向用户的,流量大且请求多样。请求多样意味着正式环境能够暴露前两个阶段未能发现的问题,流量大意味着出现问题往往就会造成重大影响。