Tag: 系统

在构建应用程序或软件项目之前,请设计一个错误处理系统(第一部分)

考虑应用中的错误处理系统可以成倍提高应用的可靠性和可维护性。 在您的应用中可能发生错误的无限可能中,您实际上只想看到有限的几种情况。 因此,当出现讨厌的错误或在您的应用中引入功能更改时,您会很高兴您拥有一个了不起的错误处理系统,它将准确告诉您哪里出了问题以及出了什么问题。 如果您有时间,以与Web API相似的方式为它们提供修复建议或提供其他提示也是一个好主意。 我将在为企业解决方案制作iOS应用程序的上下文中解释每个概念。 全文中包含特定的代码要点。 业务视角 在调试和拥有可靠软件的基础上。 企业通常希望收集有关可用性的数据并进行分析以改善其服务和产品。 因此,分析报告中的报告错误统计信息将是其产品如何为人们服务的有力指标。 用户角度 用户不希望应用程序崩溃或不响应。 用户想知道出了什么问题,以便对于大多数错误,他们可以尝试对自己进行故障排除,以便他们可以完成当前的任务。 开发人员观点 开发人员将节省构建和维护系统的时间和压力。 开发人员忘记了他们的代码,开发人员团队将处理彼此的代码; 因此,带有好名字,消息和提示的错误处理系统将使使用您代码的任何人都更加容易。 就像蛋糕一样,应用程序中的所有图层都赋予了它结构。 与蛋糕不同,应用程序中的图层只是抽象的。 模型层 这是业务逻辑所在的位置。 在您要解决的业务问题中,允许哪些关系以及什么才有意义。 因此,将在此处模拟诸如允许每个用户获得多少张优惠券的事情。 与业务相关的数据和模型在此处。 基础设施层 您的应用程序将连接到外部服务,例如第三方API和应用程序自己的后端。 以及本地数据库; 用于缓存和存储内容的服务被视为外部服务。 因此,您的网络和缓存类都在这一层。 诸如请求和响应模型之类的解析和补充模型也在此处。 用户界面层 该层将具有诸如ViewController,View和Cell类的内容。 这是锦上添花。 使它看起来不错。 自从制作了这张图。 我意识到那时就可以处理错误,并且在实践中大多数时候都更好。 模型层 您可能会收到诸如“不允许执行此操作”,“不符合要求的条件”之类的错误。 从编程的角度来看,这些可能是我们认为是业务逻辑的自定义规则。 如果有不同类型的用户和授权类型,将在此处确定。 对于开发人员和用户,这些错误通常可能是相同的。 基础设施层 在这里,您可能会遇到诸如“无法访问服务器”,“文件不存在”之类的错误。 从编程的角度来看,这些通常是从API或数据库传播的错误。 如果错误是技术笨拙的,则最好为开发人员和用户单独发送一条消息。 此外,向开发人员提供尽可能多的信息。 用户界面层 在这里,您可能会遇到诸如“无法调整窗口大小”,“视图未加载”之类的错误。 这些将只是UI错误,因此除非对用户而言至关重要。 无需将其显示给用户。 但是,对于开发人员而言,了解这些至关重要,以便它们可以从中恢复。 开发中 作为开发人员或项目经理。 您应该确保正确执行此部分,以避免在可能避免的事情上花费大量时间。 […]