泊学 iOS 视频体验总结:适合入门之后的知识拓展

泊学

泊学 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),体验就是我仿佛在看着自己编写代码。

视频的加载非常流畅,从选择视频到播放,感觉不到任何停顿,不过没有清晰度的切换,对于某些网速慢的同学,可能不会太友好,虽然可以选择下载视频,但得一个一个下载,流程略微麻烦。

泊阅文档对应每一篇视频的博客,内容与视频保持一致,所以也可以选择通过阅读泊阅文档来学习课程知识。

泊学 iOS 视频体验总结:适合入门之后的知识拓展_第1张图片

泊学主要的学习还是得通过电脑,手机端并没有 APP 支持,无法做到视频缓存,网页访问的话小屏手机布局会有点问题,不过不影响功能的使用。得益于视频资源的清晰,手机上观看也十分舒适。不过没有视频缓存,想离线在手机端观看得从电脑端下载,并通过 QQ 等应用传给手机,实在有点麻烦。

如果是要在地铁等场景学习,要不像我一样有个流量卡, 5 分钟的视频消耗 50MB ~ 100MB,或者通过阅读泊阅文档。

泊学 iOS 视频体验总结:适合入门之后的知识拓展_第2张图片

内容体验

泊学的免费章节都是每个课程系列的较为基础的课程,为了让大家更为了解泊学的视频内容,我先对 理解引用语义的自定义类型 这个课程系列的 14 节课,做一个简单概述。

泊学 iOS 视频体验总结:适合入门之后的知识拓展_第3张图片
  • 差异于语法之外的struct和class

class 引用类型和 struct 值类型的区别,较为基础。

  • 理解class类型的各种init方法

默认 init,Convenience init(便利初始化),Failable init(可失败初始化)的介绍

  • 什么是two-phase initialization

讲述继承关系下的初始化,以及 Swift 的两段式构造(自下而上初始化每一个属性,再自上而下对每个属性进行加工)

  • 确定继承关系用于模拟“is a”的关系

这篇属于代码设计了,讲述 is a 继承关系下的一些违背直觉的现象,例如基类是鸟,鸟会飞,这符合直觉,但有一天引入一只企鹅,企鹅是鸟,但企鹅不会飞,不注意的话就会出现错误。

  • 确定对象的组合用于模拟“has a”的关系

has a 是一种组合模式,企鹅可以不继承鸟类,而是拥有一个鸟类属性,这样就可以通过开放 API 让调用者可以调用鸟类的除飞之外的其它行为。

  • 永远不要重定义继承而来的默认参数

讲述 Swift 运行时动态派发以及静态绑定。虽然继承而来的方法调用是运行时动态派发,但方法的参数,确是编译的时候根据调用方法的对象,绑定函数的默认参数。

  • 继承和多态并不是解决问题的唯一方式

讲述了 Template method 和 基于函数的 Strategy 模式,基于 class 的 strategy 模式。用于重写继承方法的几个替代方案,属于知识面扩展。

  • Reference cycle是如何发生的?

较为基础的讲述 ARC 以及循环引用的发生途径。

  • 使用unowned和weak处理reference cycle

Swift 中使用 unowned 和 weak 打破循环引用。

  • 容易让人犯错的closure内存管理 - I

图文并茂的演示了 Closure 的循环引用是如何发生的,以及通过 Closure capture list 按值语义捕获变量来解决这个问题。

  • 容易让人犯错的closure内存管理 - II

但如果 closure 捕获的对象仍就是引用类型,则可以通过在 capture list 里添加 unowned 或 weak 来打破这种循环。再介绍了一下 withExtendedLifetime 函数的用法,用于延长对象寿命,保证在 closure 返回之前,对象都是存在的。

  • 使用访问控制管理代码

讲述 public,open,internal,fileprivate,private 五种访问权限以及他们的使用场景。

  • 理解Swift中方法的派发机制 - I

介绍了 Swift 中的派发机制,Direct Dispatch 和 Table dispatch,这篇属于原理篇,在反汇编结果中论证方法的派发机制。

  • 理解Swift中的方法派发机制-II

Swift 的派发规则,也是原理篇,extension 中方法不能重写的原因是因为编译器会对其采用 direct dispatch。此篇还列述了这种规则所带来的一些不符合直觉的现象,作为我们的扩展。

视频内容并不是手把手教你学习 Swift,《The Swift Programming Language》依旧是最好的入门教材,虽然我的安卓同事跟着我听也能听懂,但也建议先从《The Swift Programming Language》入门 Swift 之后,再开始泊学 Swift 视频系列。

每一个课程系列都会先快速过一遍前置基础知识,然后开始知识扩展,然后探讨深入,而这所有的一切,都是建立在代码之上,视频的内容一直是在编译器上编写代码,不管是基础,扩展,还是原理,都有源码实战支撑。另外作者的代码写的非常棒,可以下载它的源码,学习他的编码风格和思维。

泊学每个视频时间都很短,全程一镜到底,剪切掉无用的片段,但作者节奏比较快,听者注意力需要集中。

还有一个《Reactive Programming in Swift》课程系列,对于想学习使用 RxSwift 的各种姿势的同学,会是比较好的入门教程。

价格

视频以及文档只有较基础的内容是免费的,其它的需要成为泊学会员,泊学会员有以下三种。

泊学 iOS 视频体验总结:适合入门之后的知识拓展_第4张图片

99 一个季度,学完 Swift 3 整个系列还是没有问题的,算是最性价比的一个方案了,还送价值 18 元的 iOS 成长之路。

总结

每一个课程系列都比较独立,可以根据自己的喜好选择优先学习的课程,视频比较短,但从头到尾没有停顿,节奏也比较快,对注意力集中有比较高的要求,走一个神的话,很容易就跟不上节奏。

虽是视频学习,但并不能做到轻松接受信息,失去了视频学习的优势。认真学习的话,我更愿意阅读泊阅文档。会的我可以跳过,不会我可以好好看,看视频进度是由作者控制,不能满足所有所有人对详略的要求。

所以尽管泊学是一个视频学习网站,但我会选择文档为主,视频为辅的学习方式 。因为泊学提供了完善的文档,所以相比其它视频学习网站,还是有它的优势的。

从内容上看,学习 Swift,一本 《The Swift Programming Language》是远远不够的,而 泊学 Swift 的内容,由浅入深,基础 + 扩展 + 原理深入,是不错的继续学习的资料。不管是对于刚入门 Swift 的新手,想巩固自己的基础,又或者有一定 Swift 编程经验的开发者,想扩张自己的视野,都会是不错的选择。

你可能感兴趣的:(泊学 iOS 视频体验总结:适合入门之后的知识拓展)