别把界面、逻辑和数据库全塞进视图控制器里

这门课要解决的核心问题,就是很多初学者在写 iOS 应用时容易犯的“大杂烩”毛病:网络请求、数据库读写、界面刷新、业务判断全塞在一个控制器文件里。随着代码量增加,改一个功能往往牵一发而动全身,根本没法维护。课程从企业级系统的低耦合原则切入,带你把 iOS 项目拆分成表现层、业务逻辑层和数据持久层。它不是教你写花哨的界面动画,而是教你如何让代码职责分明,后续无论是替换底层网络库,还是更换本地数据库方案,都不会伤筋动骨。如果你目前写代码还停留在“能跑就行”的阶段,这门课正好帮你补上工程化架构的缺口。

先理解分层思想,再跟着实例敲代码

这门课适合已经掌握 Swift 基础语法、能独立写出简单列表页的开发者。如果你连基本的表视图和数组操作都不熟练,建议先去补 Swift 基础再来看。建议先看低耦合架构设计原则那几节,理解为什么要分层、层与层之间如何通过接口而非具体实现来通信。接着直接进入基于同一工程的实例拆解,重点看纯 Swift 语言实现的部分。课程围绕一个笔记应用展开,从数据持久层的 SQLite 封装,到业务逻辑层的数据处理,再到表现层的视图展示,一层一层往上搭。不要跳着看,分层架构最讲究的就是依赖关系,顺序乱了很容易在层间调用时产生循环引用。配套的直播答疑片段也建议看一遍,里面通常有初学者在实操时踩过的坑,能帮你提前避雷。

学完能独立重构旧项目,资料配合练习建议

看完这套视频,你应该能独立把一个原本几百行代码全堆在控制器里的烂项目,重构成分层架构。具体表现为:能自己画出项目的架构层次图,知道每个类该放在哪一层;能定义清晰的层间接口协议,让上层不直接依赖下层的具体实现;遇到需求变更时,能快速定位到该改哪一层,而不是满屏幕全局搜索。练习时,不要光看视频里的笔记应用演示,一定要把资料包里的配套代码下载下来,自己在工程里照着重敲一遍。先跑通数据持久层,测试数据库读写是否正常;再补业务逻辑层,验证数据流转;最后接上表现层界面。如果时间允许,尝试把课程里的本地存储换成另一种持久化方案,看看业务逻辑层和表现层是否需要大改。如果没有,说明你真的把分层架构学进去了。别看完就扔,自己动手重构一遍,才算把知识变成自己的。

课程目录

1-1 [9.1低耦合企业级系统架构设计] 9.1低耦合企业级系统架构设计 (18:11)
1-2 [9.1低耦合企业级系统架构设计] 20150430第十三期直播答疑 (01:10:07)
2-1 [9.2 iOS分层架构设计] 9.2 iOS分层架构设计 (17:04)
3-1 [9.3 基于同一工程的iOS分层架构设计] 9.3.1 MyNotes应用实例 (10:37)
3-2 [9.3 基于同一工程的iOS分层架构设计] 9.3.2 纯Swift语言实现(讲解) (14:30)
3-3 [9.3 基于同一工程的iOS分层架构设计] 9.3.2 纯Swift语言实现(数据持久层实现) (19:42)
3-4 [9.3 基于同一工程的iOS分层架构设计] 9.3.2 纯Swift语言实现(业务逻辑层实现) (07:29)
3-5 [9.3 基于同一工程的iOS分层架构设计] 9.3.2 纯Swift语言实现(表示层实现) (22:06)
3-6 [9.3 基于同一工程的iOS分层架构设计] 9.3.2 纯Swift语言实现(表示层实现删除功能) (04:20)
3-7 [9.3 基于同一工程的iOS分层架构设计] 9.3.2 纯Swift语言实现(表示层实现查看详细功能) (03:26)
3-8 [9.3 基于同一工程的iOS分层架构设计] 9.3.3 Swift与Objective-C混合搭配实现-1 (05:49)
3-9 [9.3 基于同一工程的iOS分层架构设计] 9.3.3 Swift与Objective-C混合搭配实现-2 (06:27)
4-1 [9.4 静态链接库实现的同一个工作空间不同工程的分层] 9.4.1 静态链接库 (10:00)
4-2 [9.4 静态链接库实现的同一个工作空间不同工程的分层] 9.4.2 使用工作空间 (07:24)
4-3 [9.4 静态链接库实现的同一个工作空间不同工程的分层] 9.4.3 添加数据持久层工程 (03:17)
4-4 [9.4 静态链接库实现的同一个工作空间不同工程的分层] 9.4.4 业务逻辑层与数据持久层依赖关系建立 (13:01)
4-5 [9.4 静态链接库实现的同一个工作空间不同工程的分层] 9.4.5 表示层与业务逻辑层依赖关系建立 (09:36)
5-1 [9.5 自定义框架实现的同一个工作空间不同工程的分层] 9.5.1 创建框架工程 (09:12)
5-2 [9.5 自定义框架实现的同一个工作空间不同工程的分层] 9.5.2 依赖关系建立 (04:59)
5-3 [9.5 自定义框架实现的同一个工作空间不同工程的分层] 9.5.3 代码重构-1 (04:03)
5-4 [9.5 自定义框架实现的同一个工作空间不同工程的分层] 9.5.3 代码重构-2 (07:47)