你为什么要关心测试? 像任何人一样,程序员犯错误。 我们可能会忘记我们上个月实现的边缘案例,或者我们传递一个空字符串时某些方法的行为方式。
在每次更改后都可以使用APP,并尝试每次可能的点击,点按,手势和方向更改,以确保一切正常。 在旋转设备时,您可能会忘记右上角的三次敲击,因此当用户执行此操作时,所有内容都会崩溃,并引发空指针异常。 用户做的很愚蠢,我们需要确保每个类都能够做到应有的功能,并且APP的每个部分都可以处理我们抛出的所有内容。
这就是我们编写自动化测试的原因。
你为什么要关心测试? 像任何人一样,程序员犯错误。 我们可能会忘记我们上个月实现的边缘案例,或者我们传递一个空字符串时某些方法的行为方式。
在每次更改后都可以使用APP,并尝试每次可能的点击,点按,手势和方向更改,以确保一切正常。 在旋转设备时,您可能会忘记右上角的三次敲击,因此当用户执行此操作时,所有内容都会崩溃,并引发空指针异常。 用户做的很愚蠢,我们需要确保每个类都能够做到应有的功能,并且APP的每个部分都可以处理我们抛出的所有内容。
这就是我们编写自动化测试的原因。
在Android Architecture系列的最后一部分,我们将Clean Architecture稍微调整到了Android平台。 我们将Android和现实世界从业务逻辑中分离出来,让满意的利益相关者满意,并让所有事情都可以轻松测试。
这个理论很好,但是当我们创建一个新的Android项目时,我们从哪里开始? 让我们用干净的代码弄脏我们的手,并将空白的画布变成一个架构。
到目前为止,在这个系列中,我们已经介绍了一些初学者的错误,并通过了Clean架构。 在最后一部分中,我们将介绍拼图的最后一部分:标签,或者更确切地说:组件。
首先,我将删除我们在Android项目中不使用的东西,然后添加一些我们使用的东西,但在原始的Bob叔叔图中找不到。 它看起来像这样:
我会从最抽象的中心走到边缘。
在系列的第一部分中,我们介绍了我们在寻找可行的体系结构方面所犯的错误。 在这一部分中,我们将介绍所谓的Clean Architecture.
你在google“clean architecture”中遇到的第一个图像是这样的:
它也被称为洋葱架构,因为图表看起来像一个洋葱(当你意识到你需要写多少样板时,它会让你哭泣); 或端口和适配器,因为您可以看到右下角有一些端口。 六角形架构是另一种类似的架构。
Clean architecture是前面提到的Bob叔叔的心血结晶,他也写了关于Clean Code和Clean Coder的书籍。 这种方法的主要观点是业务逻辑(也称为domain)处于宇宙的中心。
本系列文章的目标是概述我们与Android应用程序体系结构(Android体系结构)的斗争。 我意识到,无论Android应用程序架构的实施可能会如此痛苦,事实证明,这是我一直在努力的每一个优秀应用程序的基础。
每项技术都有其自然演变。 或者更准确地说,它的社区经历了进化过程。 早期采用新计算机语言或框架的用户只是希望掌握技术并尽快完成一些工作。 通常情况下,新社区很小,开发人员之间知识转移的潜力有限,也就是说,由于没有可用的架构指导原则,每个人都从自己的错误中学习。
早期的Android并不例外。 这对开发人员来说既酷又有吸引力,它为早期采用者成为围绕这一快速发展技术的社区的一部分提供了机会。