Tag: Clean Architecture

带有TDD的手工iOS应用程序中的身份验证规则

让我们从身份验证过程开始,但并非全部开始,目前,我们仅对注册部分感兴趣。 这部分具有一些验证和重要行为。 此实现将使我们能够与一些BASS内容进行交互,这代表了应用程序难题的重要组成部分。 在这篇文章中,我们将介绍: 测试驱动开发 输入数据验证 准备与外部服务的一些集成 您可以在此处检查相关的github问题。 用户注册用例 该项目将使用自下而上的流程进行开发。 因此,我们将从编写测试和规则开始,而不是进行注册或登录屏幕。 第一个测试即将尝试使用空电子邮件值注册用户。 经过绿色测试之后,该重构用例类了。 第一个奇怪的是寄存器功能处的mutating关键字。 需要使用此关键字是因为该函数试图更改默认情况下不可变的结构值。 此应用程序将使用称为Clean Architecture的体系结构,该体系结构将软件分层。 这些层对于隔离按行为分开的组件和职责至关重要。 清洁体系结构和SOLID原则值得一提,我将在稍后单独讨论。 通过将软件划分为多个层,并遵循“依赖关系规则”,您将创建一个具有内在可测试性的系统,并具有其所隐含的所有优势。 马丁,罗伯特。 “清洁建筑” 2012 同样,此用例正在保存应该在表示层中的状态。 不在“应用程序业务规则”层中。 为了解决这个问题,我们可以创建一个演示者。 …我们也不希望该层受到数据库,UI或任何常用框架等外部性变化的影响。 该层与此类问题无关。 马丁,罗伯特。 “清洁建筑” 2012 上面的协议将成为演示者。 而且它的实现与用例无关紧要。 用例只需要具有故障方法的东西。 在我们的测试环境中,我们将使用演示者的测试双精度表示形式,该表示形式为存根双精度类型。 出于测试目的,我们可以用等效的“特技替身”: Test Double来代替真实的DOC(而不是SUT!)。 迈扎罗斯(Meszaros),杰拉德(Gerard)。 2009年“ Test Double” 存根提供对测试过程中进行的呼叫的固定答复,通常通常根本不响应为测试编程的内容。 存根还可以记录有关呼叫的信息,例如,电子邮件网关存根可以记住“已发送”的消息,或者仅记住“已发送”的消息数量。 福勒,马丁。 “不打Mo”,2007年 用例已更改为通过依赖关系使用演示者。 演示者将用作用例的依赖项,这样做将符合SOLID原则,更具体地讲是Dependency Inversion一个。 原则指出: 答:高级模块不应依赖于低级模块。 两者都应依赖抽象。 B.抽象不应依赖细节。 细节应取决于抽象。 马丁,罗伯特。 […]

Codables神级

思雅有简单的入门文章。 Swift 4的即时通讯协议,您的电位器和补充剂应运而生。 洛斯·科德ables的潜在挑战 协议实施细则中的可变版本。 编码科摩皮 Hasta ahora的出血与los codables一样使用para mapear JSON。 JSON协议和JSON协议之间的对应关系。 En cae vamos a ansignar nuestros propios tipos como side un Int o un String se tratara。 日期和日期的使用日期。更改日期。 设置时间戳记,然后在DateModel上添加时间戳。 JSON: { “ name”:“ Pepe”, “日期”:1541423186 } 类型: 最终决赛: 可编码和易腐烂的底漆,油菜和玉米。 普通法院法典 让值=尝试解码器.singleValueContainer() Lo que estamos haciendoahíes sacar un contenedor de unúnicovalor,lo que quiere decir […]