泊学
泊学 https://boxueio.com/ --- iOS 全栈开发高清视频网站。
泊学目前有 Swift PHP iOS 三个模块,共 1100 分钟视频资料,其中 Swift 模块 12 个课程系列,102 节课,共 750 分钟,视频清晰度 1080P,部分视频已经更新至 4K,每一篇视频都配备相同内容的泊阅文档。下图为课程截图
我从周一开始观看 Swift 系列视频,周五刚好看完,周末来写写个人体验,给其它 Swift 学习者作参考。
产品体验
首先是产品体验,泊学设计我还是很喜欢的,没有杂乱的东西,只是一个简单纯粹的视频学习网站,视频资源清晰度非常高,1080P 的视频让每一行代码都能看的十分清楚,至于更新成 4K 的视频资源,更是让我在 retina 屏幕上爽了一把,我的显示器的分辨率是(2880 x 1800),而 4K 视频的分辨率为(3840 x 2160),体验就是我仿佛在看着自己编写代码。
视频的加载非常流畅,从选择视频到播放,感觉不到任何停顿,不过没有清晰度的切换,对于某些网速慢的同学,可能不会太友好,虽然可以选择下载视频,但得一个一个下载,流程略微麻烦。
泊阅文档对应每一篇视频的博客,内容与视频保持一致,所以也可以选择通过阅读泊阅文档来学习课程知识。
泊学主要的学习还是得通过电脑,手机端并没有 APP 支持,无法做到视频缓存,网页访问的话小屏手机布局会有点问题,不过不影响功能的使用。得益于视频资源的清晰,手机上观看也十分舒适。不过没有视频缓存,想离线在手机端观看得从电脑端下载,并通过 QQ 等应用传给手机,实在有点麻烦。
如果是要在地铁等场景学习,要不像我一样有个流量卡, 5 分钟的视频消耗 50MB ~ 100MB,或者通过阅读泊阅文档。
内容体验
泊学的免费章节都是每个课程系列的较为基础的课程,为了让大家更为了解泊学的视频内容,我先对 理解引用语义的自定义类型 这个课程系列的 14 节课,做一个简单概述。
class 引用类型和 struct 值类型的区别,较为基础。
默认 init,Convenience init(便利初始化),Failable init(可失败初始化)的介绍
讲述继承关系下的初始化,以及 Swift 的两段式构造(自下而上初始化每一个属性,再自上而下对每个属性进行加工)
这篇属于代码设计了,讲述 is a 继承关系下的一些违背直觉的现象,例如基类是鸟,鸟会飞,这符合直觉,但有一天引入一只企鹅,企鹅是鸟,但企鹅不会飞,不注意的话就会出现错误。
has a 是一种组合模式,企鹅可以不继承鸟类,而是拥有一个鸟类属性,这样就可以通过开放 API 让调用者可以调用鸟类的除飞之外的其它行为。
讲述 Swift 运行时动态派发以及静态绑定。虽然继承而来的方法调用是运行时动态派发,但方法的参数,确是编译的时候根据调用方法的对象,绑定函数的默认参数。
讲述了 Template method 和 基于函数的 Strategy 模式,基于 class 的 strategy 模式。用于重写继承方法的几个替代方案,属于知识面扩展。
较为基础的讲述 ARC 以及循环引用的发生途径。
Swift 中使用 unowned 和 weak 打破循环引用。
图文并茂的演示了 Closure 的循环引用是如何发生的,以及通过 Closure capture list 按值语义捕获变量来解决这个问题。
但如果 closure 捕获的对象仍就是引用类型,则可以通过在 capture list 里添加 unowned 或 weak 来打破这种循环。再介绍了一下 withExtendedLifetime 函数的用法,用于延长对象寿命,保证在 closure 返回之前,对象都是存在的。
讲述 public,open,internal,fileprivate,private 五种访问权限以及他们的使用场景。
介绍了 Swift 中的派发机制,Direct Dispatch 和 Table dispatch,这篇属于原理篇,在反汇编结果中论证方法的派发机制。
Swift 的派发规则,也是原理篇,extension 中方法不能重写的原因是因为编译器会对其采用 direct dispatch。此篇还列述了这种规则所带来的一些不符合直觉的现象,作为我们的扩展。
视频内容并不是手把手教你学习 Swift,《The Swift Programming Language》依旧是最好的入门教材,虽然我的安卓同事跟着我听也能听懂,但也建议先从《The Swift Programming Language》入门 Swift 之后,再开始泊学 Swift 视频系列。
每一个课程系列都会先快速过一遍前置基础知识,然后开始知识扩展,然后探讨深入,而这所有的一切,都是建立在代码之上,视频的内容一直是在编译器上编写代码,不管是基础,扩展,还是原理,都有源码实战支撑。另外作者的代码写的非常棒,可以下载它的源码,学习他的编码风格和思维。
泊学每个视频时间都很短,全程一镜到底,剪切掉无用的片段,但作者节奏比较快,听者注意力需要集中。
还有一个《Reactive Programming in Swift》课程系列,对于想学习使用 RxSwift 的各种姿势的同学,会是比较好的入门教程。
价格
视频以及文档只有较基础的内容是免费的,其它的需要成为泊学会员,泊学会员有以下三种。
99 一个季度,学完 Swift 3 整个系列还是没有问题的,算是最性价比的一个方案了,还送价值 18 元的 iOS 成长之路。
总结
每一个课程系列都比较独立,可以根据自己的喜好选择优先学习的课程,视频比较短,但从头到尾没有停顿,节奏也比较快,对注意力集中有比较高的要求,走一个神的话,很容易就跟不上节奏。
虽是视频学习,但并不能做到轻松接受信息,失去了视频学习的优势。认真学习的话,我更愿意阅读泊阅文档。会的我可以跳过,不会我可以好好看,看视频进度是由作者控制,不能满足所有所有人对详略的要求。
所以尽管泊学是一个视频学习网站,但我会选择文档为主,视频为辅的学习方式 。因为泊学提供了完善的文档,所以相比其它视频学习网站,还是有它的优势的。
从内容上看,学习 Swift,一本 《The Swift Programming Language》是远远不够的,而 泊学 Swift 的内容,由浅入深,基础 + 扩展 + 原理深入,是不错的继续学习的资料。不管是对于刚入门 Swift 的新手,想巩固自己的基础,又或者有一定 Swift 编程经验的开发者,想扩张自己的视野,都会是不错的选择。