Content
10 Lessons • 0 Quizzes • 0 Challenges
按层次构建我们的项目
- 1
学习目标与课程内容
- 2
项目构建入门
- 3
重新思考设计选择
- 4
选择我们的层
- 5
开始之前先思考
- 6
从正确的数据类型开始
- 7
创建一个 Mix 项目
- 8
构建我们的功能核心
- 9
设定我们的界限
- 10
OTP、状态与函数式核心
- 11
测试我们的代码
- 12
规划我们的生命周期
- 13
调用我们的工作进程
- 14
总结:分层构建我们的项目
- 15
测验:在 Elixir 中设计应用程序的分层系统
了解我们的 Elixir 数据类型
- 1
数据类型简介
- 2
基本类型
- 3
列表
- 4
流
- 5
映射和结构体
- 6
Map 的用途
- 7
映射的陷阱
- 8
字符串
- 9
Elixir 中的字符串表示
- 10
元组
- 11
函数作为数据
- 12
何时离开 Elixir
- 13
总结:了解我们的 Elixir 数据类型
- 14
测验:支撑 Elixir 的数据类型
从正确的数据层开始
- 1
数据层简介
- 2
访问模式决定数据结构的选择
- 3
一种不同的方法
- 4
不可变性驱动一切
- 5
函数式数据结构
- 6
创建我们的精通项目
- 7
确定项目的数据
- 8
确定项目的数据——继续
- 9
总结:从正确的数据层开始
- 10
测验:Elixir 中的数据层
构建我们的功能核心
- 1
我们的函数式核心简介
- 2
按功能目的组织核心函数
- 3
开始我们的测验
- 4
函数即数据
- 5
使用函数命名概念
- 6
从函数构建测验
- 7
构建单一职责函数
- 8
在单一抽象层次上构建
- 9
将我们的标记通过变换移动
- 10
保持左侧边距窄小
- 11
尝试核心功能
- 12
总结:构建我们的功能核心
- 13
测验:构建功能核心
测试我们的核心
- 1
测试编写入门
- 2
通过通用设置函数简化测试
- 3
改进 ExUnit 测试框架
- 4
使用夹具提供测试数据
- 5
构建我们的测验
- 6
直接使用夹具函数
- 7
用 describe 块组织命名设置
- 8
将命名的设置函数应用于我们的测试
- 9
使测试可重复
- 10
使测试可重复——继续
- 11
测试中的组合
- 12
测试我们的测验
- 13
超越 Elixir 基础的测试
- 14
总结:测试我们的核心
- 15
测验:函数核心的测试
将进程机制隔离在边界中
- 1
边界层简介
- 2
通过不确定性保持组合性
- 3
将错误视为数据
- 4
报告成功与错误
- 5
使用 with 语句组合不确定结构
- 6
构建我们的可选服务器
- 7
我们的边界层架构
- 8
使用进程实现 QuizManager
- 9
为 QuizManager 添加更多功能
- 10
尝试使用测验管理器
- 11
QuizSession 实现的基础准备
- 12
实现测验会话
- 13
测试驱动测验会话
- 14
将服务器封装为 API
- 15
验证我们的测验
- 16
验证我们的模板
- 17
构建 API 层
- 18
测试驱动 API
- 19
为什么用 call 而不用 cast
- 20
配置选项
- 21
安全地扩展我们的 API
- 22
总结:将进程机制隔离在边界中
- 23
测验:边界与 GenServer
自定义我们的生命周期
- 1
生命周期层简介
- 2
理解生命周期的构建模块
- 3
Elixir 中用于管理进程的函数
- 4
通过链接启动进程
- 5
配置应用程序以启动监督者
- 6
创建 start_link
- 7
配置应用程序
- 8
操纵监督者(Supervisors)的其他选项
- 9
使用动态监督者启动每个用户的进程
- 10
添加开始链接
- 11
使用名称查找服务
- 12
将注册表和动态监督者添加到 application.ex
- 13
建立监督策略
- 14
观察它
- 15
使用多个用户运行
- 16
总结:自定义我们的生命周期
- 17
测验:监督者与生命周期层
调用我们的工作进程
- 1
工作层简介
- 2
了解我们的动机
- 3
利用依赖项中的工作线程
- 4
使用任务实现串行代码的并发
- 5
使用 Poolboy 构建公共资源池
- 6
添加监考人员以运行限时测验
- 7
编写 Proctor 边界服务器
- 8
为监考边界服务器奠定基础
- 9
完成监考边界服务器的实现
- 10
将监考员集成到边界 — QuizManager
- 11
让监考者发挥作用
- 12
摘要:调用我们的工作者
- 13
测验:使用并发的工作者与服务
组装我们的组件
- 1
引入持久化
- 2
添加持久化作为边界服务
- 3
使用回调管理持久化
- 4
构建一个 Poncho 项目
- 5
保存响应
- 6
建立一个 API
- 7
构建我们的 Postgres 表
- 8
将 MasteryPersistence 集成到 Mastery 中
- 9
集成一个函数以持久化记录
- 10
将我们的 OTP 依赖项集成到 Phoenix 中
- 11
将我们的 OTP 依赖项集成到 Phoenix 中——继续
- 12
为OTP抽象结构组织代码
- 13
为 Phoenix Channels 添加层
- 14
向 LiveView 添加层
- 15
向 Scenic 添加层
- 16
总结:组装我们的组件
- 17
测验:让不同的依赖项协同工作
测试边界
- 1
测试我们的边界简介
- 2
测试:以用户的方式调用 API——设置
- 3
测试:以用户的方式调用 API——辅助函数
- 4
运行我们的 API 测试
- 5
直接测试 Poncho 项目
- 6
隔离监考人员的边界顾虑
- 7
修改 Mastery 项目的边界
- 8
为 Mastery 和边界添加通知
- 9
使用新的通知功能
- 10
我们测验的最终测试
- 11
总结:边界测试
- 12
测验:在边界层编写测试
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User