函数式编程——Functor、Applicative、Monad
了解函数式编程的同学可能或多或少都听说过 函子(Functor)、适用函子(Applicative)、单子(Monad)等概念,但是,能真正理解的人可能就比较少了。网上有很多相关的文章,甚至有一些书籍也开辟了章节进行了介绍,但是能解释清楚的,寥寥无几。最近,我出于阅读 RxSwift 源码,花时间研究了这几个概念。本文是我在理解函子、适用函子、单子等概念之后作出的总结。
了解函数式编程的同学可能或多或少都听说过 函子(Functor)、适用函子(Applicative)、单子(Monad)等概念,但是,能真正理解的人可能就比较少了。网上有很多相关的文章,甚至有一些书籍也开辟了章节进行了介绍,但是能解释清楚的,寥寥无几。最近,我出于阅读 RxSwift 源码,花时间研究了这几个概念。本文是我在理解函子、适用函子、单子等概念之后作出的总结。
在《Swift 性能优化(2)——协议与泛型的实现》中我们介绍了 Swift 是如何管理协议类型与泛型类型的生命周期与方法调用。本文我们将进一步介绍 Swift 泛型的底层实现原理。
在日常的 iOS 开发中,无论是新手还是老鸟,总是会遇到各种与证书、签名有关的问题。当不了解其中的具体原理时,我们总是会被这些问题整得焦头烂额。对于我也是如此,为了彻底理清其中的原理,我花了一些时间进行了研究并整理出这篇文章以供后续进行参考。
前一篇文章《Swift 性能优化(1)——基本概念》中我们提到了编程语言的派发方式,Swift 支持文中所提到的三种派发方式。其中,函数表派发是 Swift OOP 的底层支持,那么,Swift POP 以及泛型编程底层又是如何实现的呢?
最近看了关于 Swift 底层原理的一些视频和文章,收获颇丰,感觉对于编程语言有了新的理解。因此,趁热打铁,记录并总结对 Swift 底层原理的理解。由于相关的内容非常多,这里准备分成多篇文章来进行阐述。
2019年对我来说注定是人生中最重要的一年之一,这不仅是人生阶段的迈进,更是灵魂的升华的重要节点。站在2020年年初,回首2019年,这一年对我个人而言是要铭记的、感慨的和回味的。
Masonry 是基于 Apple 的自动布局封装的一个轻量级布局框架。Masonry
通过一种链式的 DSL(Domain-Specific Language)来描述
NSLayoutConstraint
。相比原生的自动布局语法,Masonry
提供了更为简便的语法来构造布局。Masonry 同时支持 iOS 和 Mac OS X。
最近准备阅读 Masonry 的源代码,学习一下其中的设计思想。然而,阅读了一部分之后,发现自己对 iOS 自动布局了解的不够系统,也不够深入。于是,准备好好学习学习 iOS 自动布局的基础知识。
最近在网上看到一组视频,介绍二战时期苏德战场的战线动画演示过程。看了之后,对苏德战场有了更加深刻的理解。特此收藏。
注意:在阅读本文之前建议先阅读《iOS 网络——NSURLSession》和《iOS 网络——AFNetworking》。
在 《iOS
网络——NSURLSession》中,我们介绍了 NSURLSession
的架构及工作原理。本文,我们通过阅读 AFNetworking
源代码(版本号:2.6.3
),来介绍其设计架构。
最近公司针对刚入职的应届毕业生开展了一个的“新牛计划”,目的是让他们能够在一个月的时间内从零基础成长为 iOS 开发新手。