软件错误很痛苦:有缺陷的软件可以在飞行途中将任何东西从您的销售中丢弃到飞机上。调试软件很难,很乏味,而且花费很多。已经创建了许多框架和流程来促进软件测试并确保更少的错误进入生产,并且它们总是不时地失败。
当这种情况发生时,软件开发人员的痛苦和对企业的刺痛开始了。开发人员必须找到导致错误的源代码,并在尽可能接近类似于生产环境的测试环境中执行此操作。导致该错误的情况也必须重新创建。
这通常的工作方式是在代码中添加日志语句和断点,并在代码及其依赖项中回溯执行,直到找到错误并可以修复。然后必须在生产中重建和重新部署新代码。
坦率地说,只是考虑它是一种痛苦,更不用说必须经历这一点了。或者Weis和Liran Haimovitch是两位经历过这段时间的软件工程师,感受到了痛苦,所以他们决定对此采取行动。
获取数据,跳过重新部署
Weis和Haimovitch在2017年创建了Rookout,基于一个看似简单的前提:在实时代码中添加非破坏性断点,并在不停止应用程序的情况下实时从实际环境中获取数据。这听起来有点像软件开发黑魔法,所以我们不得不想知道它是如何工作的。
正如首席执行官Weis告诉ZDNet,Rookout的框架分两步进行。首先,框架通过SDK集成到正在运行的应用程序中。完成后,Rookout管理系统会按需接收指令,并且动态应用字节码或操作码操作以增强正在运行的服务,就好像它首先部署了附加的日志记录/数据收集代码一样。