云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

美国服务器_qq收件服务器_促销

小七 141 0

简介

老实说:如果你到处问人们他们认为开发人员("程序员")整天都在做什么,他们很可能会想出一些陈词滥调,比如"坐在地下室,喝咖啡,黑客攻击"。坦白说,这可能离现实不太远,但我认为下面的图表更准确地描绘了一个开发人员生活中的一个典型的日子:

图1:编程:期望与现实

无可否认,你应该对这一天持保留态度。然而,它真正捕捉到的是,通常要花多少时间来找出某些东西停止工作的原因。在某些情况下,需要花费数天的调试、日志记录、分析和隔离组件,直到确定分布式系统中出现故障的根本原因——这是假设它是可复制的。根据我的经验,棘手的问题很少局限于可见的位置(例如移动应用程序),而是根源于测试不好的后端或配置错误的中间件组件。这就是为什么培养诸如独特的分析思维等软技能是非常宝贵的,同时也要知道有哪些工具可以用来缩小场景范围,直到有可能找出实际问题为止。

今天我想使用一个半构造的场景,其中的原因不是很明显。我们将调查离线应用程序中的同步错误,这只是我们的移动交互教程,经过调整,在某些情况下会可靠地失败。在我们深入研究之前,请注意,我不打算展示通向成功的最短路径,而是绕道这里和那里,以便介绍更多的调试工具。一路上发现捷径需要直觉和经验,当你第一次开始使用一个新的平台时,你当然不能两者兼得。如果其他一切都失败了,了解这些工具将有助于为我们的客户支持提供更多的日志和跟踪,这些日志和跟踪可以大大减少票证处理时间。

有了这些,让我们看看场景和我们看到的问题!

目录

介绍

场景

客户端工具

Web调试

本机调试

Web调试代理

服务器端工具

隔离后端服务

移动服务事件日志

移动服务网络跟踪

隔离有问题的请求并修复错误

总结

场景

首先,我们要开始查看解决方案体系结构。图2是我们系统的一个非常高级的草图,但是它足够详细,可以理解我们的调查需要什么。我们提供了一个基于Cordova的离线混合移动应用程序,该应用程序使用SAP mobile Platform 3.0 Kapsel SDK构建。该应用正在向SAP云平台移动服务注册,该服务跟踪应用的安装情况,并通过云连接器提供对后端系统的访问。

图2:高层架构

为了澄清,我在SAP云平台试用版的基础上构建了这个场景,我正在使用本地笔记本电脑上的便携式云连接器将移动服务示例从我的试用帐户传输回我的试用帐户。这并不是CloudConnector的预期用途,但它只是这个博客的一个简单设置,您可以轻松地将其复制到您自己的实验中。

现在,当我们运行在线查询时,整个设置似乎可以工作,如图3所示。读取销售订单有效,数据显示正确。但是,当我们尝试打开线下商店时,屏幕顶部会显示一个很大的红色错误消息,如图4所示

图3:运行在线查询

图4:打开线下商店时出错

客户端工具

到目前为止,我们只能看到错误消息,但作为开发人员,我们知道这些通常与最终用户看不到的附加信息相关联。现在,下一步取决于实际的应用程序平台和实现。对于本机应用程序,您可以继续使用各自IDE的调试工具,例如androidstudioddms。此外,Cordova混合应用程序还可以使用相应的供应商浏览器进行调试:用于Windows的Internet Explorer、用于Android的Chrome和用于iOS的Safari。由于我们正在处理一个Android混合应用程序,我们正在开始对Chrome进行调查。

一旦您确定您的设备已连接并处于开发模式,请打开Chrome并浏览到chrome://inspect/#设备。这将打开ChromeDevTools页面,如图5所示。选择下面的"检查"选项索引.html将启动Chrome调试器,您可能从web应用程序开发历史中了解到。我们可以立即看到控制台输出(图6),它提供了比UI中的消息更多的细节。然而,对于不熟悉的人来说,这看起来仍然相当神秘。

由于我们的错误似乎与某个服务器请求有关,让我们看看HTTP跟踪中是否有什么有趣的内容。不幸的是,当我们点击"打开离线商店"按钮时,网络面板中没有弹出任何内容。图7显示了当我们点击"Read"按钮时会发生什么:我们可以检查HTTP请求和响应状态、时间、头和负载。此时的直接结论是:我们无法从基于web的调试工具中判断出发生了什么,我们需要更深入地研究。我们知道这是一个混合应用程序,每个应用程序都由本机和基于web的模块组成,因此,下一个最好的假设是某些本机组件出现故障,这在web模块中是看不到的。

图5:Chrome DevTools

图6:Chrome DevTools JavaScript控制台

图7:Chrome DevTools JavaScript控制台