Uber Needle 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Uber Needle 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache
开发语言: Swift
操作系统: OS X
开发厂商: Uber
收录时间: 2019-05-12
提 交 者: 红薯

Needle 是 Uber 开发的一个 Swift 的依赖注入框架。和其他 DI 框架(如 CleanseSwinject ) 不同的是,Needle 鼓励层次化的 DI 结构以及利用代码生成器来确保编译时安全。这样我们在修改应用代码的时候可以更有信心,如果能编译通过就表示其执行就会正常。Needle 更像是 Dagger for the JVM.

Needle 主要实现以下目标:

  1. 通过确保依赖注入代码的编译时安全来提供可靠性
  2. 确保代码生成是高性能的
  3. 兼容所有 iOS 应用架构,包括 RIBs, MVx 等.

示例代码

/// This protocol encapsulates the dependencies acquired from ancestor scopes.
protocol MyDependency: Dependency {
    /// These are objects obtained from ancestor scopes, not newly introduced at this scope.
    var chocolate: Food { get }
    var milk: Food { get }
}

/// This class defines a new dependency scope that can acquire dependencies from ancestor scopes
/// via its dependency protocol, provide new objects on the DI graph by declaring properties,
/// and instantiate child scopes.
class MyComponent: Component<MyDependency> {

    /// A new object, hotChocolate, is added to the dependency graph. Child scope(s) can then
    /// acquire this via their dependency protocol(s).
    var hotChocolate: Drink {
        return HotChocolate(dependency.chocolate, dependency.milk)
    }

    /// A child scope is always instantiated by its parent(s) scope(s).
    var myChildComponent: MyChildComponent {
        return MyChildComponent(parent: self)
    }
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Uber Needle 的相关资讯

还没有任何资讯

Uber Needle 的相关博客

Finding a needle in Haystack- Facebook’s photo storage

背景介绍 本论文发表自2010年,是当时facebook所应用的存储系统。在2010年前后facebook上存储的照片数量开始迅猛的增长,当时...

GitHub - xxjwxc/uber_go_guide_cn: Uber Go 语言编码规范中文版. The Uber Go Style Guide .

uber-go/guide 的中文翻译 English Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开...

Uber的Ringpop和Riak

Uber是最流行的按需用车服务商,他们的创新远不止这些,在生活方式和物流等方面有着快速的进步,最近他们的架构师分享了一些最...

Uber Hire Freeze了

LintCode 前方线报! 据Blind上内部人士透露 Uber Hiring Freeze 了 刚通知面试的、即将面试的 都将取消,也不会有offer发出 ...

疫情期间,Uber Freight成了Uber新的希望?

西雅图IT圈:seattleit 【今日作者】拖拉机 IT圈里的拖拉机 Uber Freight Uber Freight是Uber旗下 帮助美国货车司机匹配货运订...

Uber 面经

https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=446237&extra=page%3D2%26filter%3Dsortid%26sortid%3D311%...

披露Uber性骚扰问题的前工程师与Uber达成和解协议

Susan Fowler 北京时间9月9日上午消息,前Uber工程师苏珊·福勒(Susan Fowler)曾发博文披露这家网约车公司内部存在的性骚扰...

Uber Go 语言编码规范

Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Goph...

Uber Go 语言编程规范

Uber Go 语言编程规范 相信很多人前两天都看到 Uber 在 github 上面开源的 Go 语言编程规范了,原文在这里:https://github....

Uber Go 语言编码规范

Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Goph...

Uber Needle 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
0 收藏
分享
返回顶部
顶部