跳过正文
  1. Categories/

Translation

2018

避免在 Swift 中使用单例

原文:Avoiding singletons in Swift 原作者 & Copyright @johnsundell “我知道单例不好,但是…”,这是开发者常常在讨论代码的时候会提到的。貌似社区大家有共识 ── 单例不好。但是同时,包括 Apple 和第三方的 Swift 开发者还是在 App 内部或者共享的 frameworks 里不断在用它们。

Swift 中几种不同的依赖注入方式

·5 分钟
原文:Different flavors of dependency injection in Swift 原作者 & Copyright @johnsundell 在之前的几篇博客中,我们已经了解了几种使用依赖注入方式使得某个 swift app 拥有一个更加解耦可测试的架构。比如在 在 Swift 中使用工厂模式进行依赖注入 中和工厂模式结合,以及在避免在 Swift 中使用单例中替换程序中的单例对象等方式进行依赖注入。

What is LLVM

什么是 LLVM?隐藏在 Swift,Rust,Clang 等语言背后的奥秘 # 了解编译器是如何生成机器原生代码会使得倒腾新语言或者加强已经存在的编程语言变得比以往更加容易了。

2017

在 Swift 中使用工厂模式进行依赖注入

·6 分钟
原文:Dependency injection using factories in Swift 原作者 & Copyright @johnsundell 依赖注入是一项使得代码更加可测试的关键工具。我们不需要持有某些对象,或者创建这些对象的自有依赖,或者通过单例来获取他们,而是尽可能使那些对象能够正常运转所必须的一切内容(其他对象)通过外界传入,这样做的好处在于,一方面能清晰的看得到某个对象的所有依赖项,另一方便也使得测试工作变得更为简单(因为我们可以模拟这些依赖项来捕获、验证状态以及值。)

处理 Swift 中非可选的可选值类型

·5 分钟
原文:Handling non-optional optionals in Swift 原作者 & Copyright @johnsundell 可选值(optionals)无可争议的是 swift 语言中最重要的特性之一,也是和其他语言,例如 Objective-C 的最大区别。通过强制处理那些有可能出现 nil 的地方,我们就能写出更有预测性的以及更健壮的代码。

Capturing objects in Swift closures

·5 分钟
原文:Capturing objects in Swift closures 原作者 @johnsundell 自从 Block 在 iOS4 被引入 Objective-C 的世界之后就成为了 Apple 各平台上最时髦的 API 的重要组成部分了。当 Swift 语言出现的时候,blocks 的概念就摇身一变通过 closure 的形式引入,成为了目前我们可能每一天都在用的语言特性之一了。

2015

理解Objective-C运行时

Objective-C 运行时对于刚刚踏入 Cocoa/Objective 世界的人是很容易忽 略的 Objective-C 语言的特性之一。原因就是尽管 Objective-C 是一门几个小时之内入门的语言,但是投身 Cocoa 的新手们会花费大量时间在 Cocoa 框架中,试图搞清楚他到底是怎么工作的。 我觉得每个开发者都应该对其有深入的了解,明白一些内部的实现细节,而不仅仅只知道代码 [target doMethodWith:var] 会被编译器转换成 objc_msgSend(target,@selector(doMethodWith:),var1); 而已。了解 Objective-C 运行时的原理有助于你对 Objective-C 语言有更深入的理解,清楚你得 App 是怎么运行的。我觉得这对无论是 Mac/iPhone 新手或者老手都会有所帮助。