前言 我以为 第一次接触 swift 语言时,看到函数的表示形式如下: func fun(num: Int) -> Int { return num + 1 } let f = fun(1) 和Objective-C对比一下: - (int)fun:(int)num { return num + 1; } int f = [self fun:1]; 我们很容易就认为 -> 和Objective-C里面的 - 一样嘛,一种修饰符而已,-> Int 和 - (int)就是一个东西嘛!只不过…
https://www.bilibili.com/video/av9783052?from=search&seid=14165903430339282774…
ReactiveCocoa 是一个框架,它允许你在你的iOS程序中使用函数响应式(FRP)技术.加上第一部分的讲解,你将会学会如何使用信号量(对事件发出数据流)如何替代标准的动作和事件处理逻辑.你也会学到如何转换.分离和组合这些信号量. 在这里,也就是第二部分里,你将会学到更多先进的ReactiveCocoa特性,包括: 1.另外两个事件类型:error和completed 2.Throttling(节流) 3.Threading 4.Continuations 5.更多... 是时候开始了.…
翻译自:http://www.raywenderlich.com/62796/reactivecocoa-tutorial-pt2 原文链接: ReactiveCocoa 是一个框架,它允许你在你的iOS程序中使用函数响应式(FRP)技术.加上第一部分的讲解,你将会学会如何使用信号量(对事件发出数据流)如何替代标准的动作和事件处理逻辑.你也会学到如何转换.分离和组合这些信号量. 在这里,也就是第二部分里,你将会学到更多先进的ReactiveCocoa特性,包括: 1.另外两个事件类型:error…
翻译自:http://www.raywenderlich.com/62796/reactivecocoa-tutorial-pt2 ReactiveCocoa 是一个框架,它允许你在你的iOS程序中使用函数响应式(FRP)技术.加上第一部分的讲解,你将会学会如何使用信号量(对事件发出数据流)如何替代标准的动作和事件处理逻辑.你也会学到如何转换.分离和组合这些信号量. 在这里,也就是第二部分里,你将会学到更多先进的ReactiveCocoa特性,包括: 1.另外两个事件类型:error和compl…
什么是ReactiveCocoa 如果你有看Github的Trending Objective-C榜单,那你肯定是见过ReactiveCocoa了.如果你在weibo上关注唐巧.onevcat等国内一线知名开发者.那也应该听说过ReactiveCocoa了. ReactiveCocoa更加被Mattt Thompson大神称为开启一个新Objective-C纪元. 当然也有人声称ReactiveCocoa是Cocoa的未来.ReactiveCocoa: The Future of Cocoa P…
一年前翻译了本文的一部分,最近终于翻译完成.虽然此设计思想的提出已经好几年了,但是还是觉得应该在国内推广一下,让大家知道“内容策略”,“移动优先”,“响应式设计”,“原子设计”等设计思想和技术的根源.这些概念最早其实是由luke wroblewski,brad frost等人在同一个设计思想框架下提出的.笔者经“面向未来的友好设计(Future Friendly Web Design)”设计理念联合创始人Jason Grigsby授权,将此设计思想框架首次翻译为中文版本. 能力所限,敬请指正,欢…
三.ReactiveCocoa代码实践之-更多思考 1. RACObserve()宏形参写法的区别 之前写代码考虑过 RACObserve(self.timeLabel , text) 和 RACObserve(self , timeLabel.text) 的区别. 因为这两种方法都是观察self.timeLabel.text的属性,并且都能实现功能.估计是作者原本用的其中一种后来对另一种也提供了支持,究竟有什么区别哪一种写法更好? 点进去看RACObserve的源码 大多都是方法调用,一层一层…
Game Theory Reveals the Future of Deep Learning Carlos E. Perez Deep Learning Patterns, Methodology and Strategy @ IntuitionMachine.com 译自:https://medium.com/intuitionmachine/game-theory-maps-the-future-of-deep-learning-21e193b0e33a#.2vjbrl5di 若你一直fo…
上一个项目使用到了ReactiveCocoa+MVVM+AFNetworking+FMDB框架设计,从最初的尝试,到后来不断思考和学习,现在对这样一个整体设计还是有了一定了理解与心得.在此与大家分享下. 本文将不再过多的描述ReactiveCocoa.MVVM.FMDB的使用细节.关于ReactiveCocoa,我有一篇实用案例的博客: http://www.brighttj.com/ios/ios-reactivecocoa-utility-demo.html 文章介绍的更多的是我对这个框架设…
一.什么是CocoaPods?前言: 思考如何引入一个第三方框架. 例如: 百度地图SDK.友盟.ShareSDK. 信鸽推送等.从github或某处下载第三方SDK工程中导入所需要的SDK的文件 .a 或 .framework添加SDK文件所依赖的系统的.framework.比如:需要导入SystemConfiguration.framework.CoreLocation.framework.UIKit.framework.libsqlite3. dylib(Xcode 7.0下是tbd文件)…
翻译自ReactiveCocoa and MVVM, an Introduction. 文中引用的 Gist 可能无法显示.为了和谐社会, 请科学上网. MVC 任何一个正经开发过一阵子软件的人都熟悉MVC,它意思是Model View Controller, 是一个在复杂应用设计中组织代码的公认模式. 它也被证实在 iOS 开发中有着第二种含义: Massive View Controller(重量级视图控制器).它让许多程序员绞尽脑汁如何去使代码被解耦和组织地让人满意. 总的来说, iOS…
转载: iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好 内容来自stack overflow的一个回答:ReactiveCocoa vs RxSwift – pros and cons? 要直接比较这两个有点难.Rx 是 Reactive Extensions 的一部分,其他语言像C#, Java 和 JS 也有.Reactive Cocoa 受 Functional Reactive Programming(FRP) 启发,但是在最近一段时间里,他们提到也受到Rea…
工程结构架构,减少耦合混乱以及防治需求大改造成结构重构,如何构建稳定可扩展可变换的工程结构的思考 我打算采用Information flow的方式自上而下,两大层分为基础层和展现层的结构.基础层分为多层,展现层也可分为多层.主要思想是将基础层的最下一层当做零部件,将业务层最下层当做组装大部件,通过流程串起来形成一个完整的产品,做零件时按照做出一个就扔进对应基础层的篮子里思路来,目录结构也可以按照这种来进行.这两大层的最下层按照零件拆得越小越容易应对需求变化越容易保护巩固上层的思路来就好.拿微信这…
Future pattern[订单取货模式] 一:Future pattern的参与者--->Client(客户需求)--->Host(蛋糕门店)--->Data(票据和蛋糕的接口)--->Future(蛋糕票据)--->ReaData(制作蛋糕过程) 二:Future pattern模式什么时候使用---> 三:Future pattern思考       ---> 四进阶说明        ---> 数据类接口 package com.yeepay.sx…
ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(FRP)技术.在本系列教程的第一部分中,你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号.你还学到了如何转换.分割和聚合这些信号. 在本系列教程的第二部分,你将会学到一些ReactiveCocoa的高级功能,包括: 另外两个事件类型:error 和 completed 节流 线程 延伸 其他 是时候深入研究一下了. Twitter Instant 在本教程中你将要开发的应用叫Twitter Instant…
翻译自ReactiveCocoa and MVVM, an Introduction. 文中引用的 Gist 可能无法显示.为了和谐社会, 请科学上网. MVC 任何一个正经开发过一阵子软件的人都熟悉MVC,它意思是Model View Controller, 是一个在复杂应用设计中组织代码的公认模式. 它也被证实在 iOS 开发中有着第二种含义: Massive View Controller(重量级视图控制器).它让许多程序员绞尽脑汁如何去使代码被解耦和组织地让人满意. 总的来说, iOS…
ReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,它受 Functional Reactive Programming 的启发,是 Justin Spahr-Summers 和 Josh Abernathy 在开发 GitHub for Mac 过程中的一个副产品,它提供了一系列用来组合和转换值流的 API . Mattt Thompson 大神是这样评价 ReactiveCocoa 的: Breaking from a tradition of covering Apple…
背景 ReactiveCocoa(简称RAC)是最初由GitHub团队开发的一套基于Cocoa的FRP框架.FRP即Functional Reactive Programming(函数式响应式编程),其优点是用随时间改变的函数表示用户输入,这样就不需要可变状态了.我们之前的文章“RACSignal的Subscription深入分析”里曾经详细讲解过RAC核心概念之一RACSignal的实现原理.在美团客户端中,我们大量使用了这个框架.冷信号与热信号的概念很容易混淆并造成一定的问题.鉴于这个问题具…
1.安装CocoaPods 1.00.参考 CocoaPods 文档 1.01.是否已安装 which pod 1.1.升级gem命令 sudo gem update --system 1.2.切换CocoaPods安装源 gem sources -l gem sources --remove https://rubygems.org/ gem sources -a https://ruby.taobao.org/ gem sources -l 1.3.安装CocoaPods sudo gem…
Callable.Future和FutureTask 前言:如有不正确的地方,还望指正. 目录 认识cpu.核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 java多线程系列(三)之等待通知机制 java多线程系列(四)之ReentrantLock的使用 java多线程系列(五)之synchronized ReentrantLock volatile Atomic 原理分析 java多线程系列(六)之线程池原理及其使用 Callable C…
作者:@雷纯锋2011 MVVM是一种软件架构模式,它是 Martin Fowler 的 Presentation Model 的一种变体,最先由微软的架构师 John Gossman 在 2005 年提出,并应用在微软的 WPF 和 Silverlight 软件开发中.MVVM 衍生于 MVC ,是对 MVC 的一种演进,它促进了 UI 代码与业务逻辑的分离. 说明:本文将采用理论与实践相结合的方式,重点介绍一个使用 MVVM 和 RAC 开发的 iOS 开源项目 MVVMReactiveCo…
再次回顾这幅图,在上一章中,我们分析了Reactor的完整实现.由于Java NIO事件驱动的模型,要求Netty的事件处理采用异步的方式,异步处理则需要表示异步操作的结果.Future正是用来表示异步操作结果的对象,Future的类签名为: public interface Future<V>; 其中的泛型参数V即表示异步结果的类型. 5.1 总述 也许你已经使用过JDK的Future对象,该接口的方法如下: // 取消异步操作 boolean cancel(boolean mayInter…
前言 最近一直在看JUC下面的一些东西,发现很多东西都是以前用过,但是真是到原理层面自己还是很欠缺. 刚好趁这段时间不太忙,回来了便一点点学习总结. 前言 最近一直在看JUC下面的一些东西,发现很多东西都是以前用过,但是真是到原理层面自己还是很欠缺. 刚好趁这段时间不太忙,回来了便一点点学习总结. 由于自己水平有限,可能存在大量漏洞和思考不周到的地方,不吝赐教. Future 模式 一种非常经典的设计模式,这种设计模式主要就利用空间换时间得到概念,也就是说异步执行(需要开启一个新的线程). 在互…
在讲ReactiveCocoa之前,我们来回忆一下Block在开发中的使用场景: 1.把block保存到对象中,等到恰当的时候才去调用 2.把block当做方法的参数使用,外界不调用,都是方法内部去调用,Block实现交给外界决定. 3.把block当做方法的返回值,目的就是为了代替方法,block交给内部实现,外界不需要知道Block怎么实现,只管调用 定义属性的时候block:ARC使用strong,非ARC使用copy 1.ReactiveCocoa简介 ReactiveCocoa(简称为…
编写优质的并发代码是一件难度极高的事情.Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择.本文是对并发编程的一点总结和思考,同时也分享了Java5以后的版本中如何编写并发代码的一点点经验. 为什么需要并发   并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开.这样做可以明显改进应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分在协同…
For update or not 起源 ​ 之所以想写这个专题,是因为最近在做一个抢占任务的实现.假设数据库很多个任务,在抢占发生之前任务的状态都是FREE.现在假设同时有一堆抢占线程开始工作,抢占线程会查找数据库中状态为FREE的任务,并且将其状态置为BUSY,然后开始执行对应任务.执行完成之后,再将任务状态置为FINISH.任何任务都是不能被重复执行的,即必须保证所有任务都只能被一个线程执行. ​ 笔者和人民群众一样,第一个想到的就是利用数据库的for update实现悲观锁.这样肯定能够…
使用SpringBoot搭建web程序,里面内置了tomcat,一般都不会关心内部实现机制,上来就可以写程序,并且可以跑起来.但是是思考了每次的请求是如何工作的. 简单的来讲就是tomcat是将每次请求都将封装成一个Servlet,该Servlet来运行完业务逻辑代码,然后再有tomcat将信息返回给调用方.每个Servlet是同步的.即在该servlet的业务逻辑做完了然后才释放掉该Servlet. 但是servlet3提供了一个异步的机制,即每次请求过来之后,可以先释放该请求,但是会保存一些…
ReactiveX Rx的Observable的本质就是一个Event Monad,即上下文(就是图文教程中包裹的盒子)为Event的一个Monad,这里的Event定义,可以对应语言的struct或者enum,包括了next.error和complete三个上下文即可.这里截取的是Swift语言的实现,map方法实现拆装箱(类似Optional,即Haskell的Maybe) public enum Event<Element> { /// Next element is produced.…
引言 二十年前的我,还在学校里抱着一台DIY机(德州486+大众主板+16M内存+3.5inch软驱+昆腾320M硬盘,当时全校最快主机没有之一),揣着一本<Undocumented DOS>,沉迷在Pascal.C以及汇编混合编程的世界里无法自拔.二十年后,软件开发已远不是当初几张简单流程图可比,软件开发的方向由简至繁,各式的开发工具更是层出不穷,不仅让新出道的人们深感乱花渐欲迷人眼,也让我等备感跋涉之不易.所幸爱好不外有二,读书实中其一.也唯有不断学习,才不至被拍死在沙滩之上. 学习BDD…