- 授权协议: MIT
- 开发语言: Swift
- 操作系统: iOS
- 软件首页: https://github.com/ReactiveCocoa/ReactiveSwift
- 软件文档: https://github.com/ReactiveCocoa/ReactiveSwift
软件介绍
ReactiveSwift 是出自 ReactiveCocoa 小组的纯 Swift 风格 FRP。 ReactiveSwift 提供了可组合、可声明以及灵活的原语,建立在时间流的大概念之下。
这些原语可用于统一展现通用 Cocoa 以及泛型编程模式,这些都是观察者的行为基础。例如委派模式、回调闭包、通知、控制动作、响应者链事件、Future/Promise 以及 K/V 的监控。所有的这些不同的机制都使用相同的方法进行呈现,可以很方便的将这些组合在一起,更少的意大利面条式的代码以及状态来弥补其中的缝隙。
示例代码:
// Purchase from the vending machine with a specific option.
vendingMachine.purchase
.apply(snackId)
.startWithResult { result
switch result {
case let .success(snack):
print("Snack: \(snack)")
case let .failure(error):
// Out of stock? Insufficient fund?
print("Transaction aborted: \(error)")
}
}
// The vending machine.
class VendingMachine {
let purchase: Action<Int, Snack, VendingMachineError>
let coins: MutableProperty<Int>
// The vending machine is connected with a sales recorder.
init(_ salesRecorder: SalesRecorder) {
coins = MutableProperty(0)
purchase = Action(state: coins, enabledIf: { $0 > 0 }) { coins, snackId in
return SignalProducer { observer, _ in
// The sales magic happens here.
// Fetch a snack based on its id
}
}
// The sales recorders are notified for any successful sales.
purchase.values.observeValues(salesRecorder.record)
}
}编者注:
函数响应式编程(Functional Reactive Programming:FRP)是一种和事件流有关的编程方式,其角度类似EventSoucing,关注导致状态值改变的行为事件,一系列事件组成了事件流。FRP是更加有效率地处理事件流,而无需显式去管理状态。
具体来说,FRP包括两个核心观点:
事件流,离散事件序列
- 属性properties, 代表模型连续的值。
一系列事件是导致属性值发生变化的原因。FRP非常类似于GOF的观察者模式。
白帽子讲Web安全
吴翰清 / 电子工业出版社 / 2012-3 / 69.00元
《白帽子讲Web安全》内容简介:在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?《白帽子讲Web安全》将带你走进Web安全的世界,让你了解Web安全的方方面面。黑客不再变得神秘,攻击技术原来我也可以会,小网站主自己也能找到正确的安全道路。大公司是怎么做安全的,为什么要选择这样的方案呢?你能在《白帽子讲Web安全》中找到答案。详细的剖析......一起来看看 《白帽子讲Web安全》 这本书的介绍吧!
