Logo
Section 1 / 15

学习目标与课程内容

本课程的概览,以及先修要求和学习条件。

导入

学习目标与课程内容

本课程的概览,以及先修要求和学习条件。

学习目标

本课程中,我们将学习:

  • 如何在设计 Elixir 应用时采用分层架构的方法。

  • 如何创建 Elixir 的 mix 项目。

  • Elixir 中使用的不同数据类型及其优缺点。这将帮助我们在后续做出重要决策。

  • 如何使用 OTP GenServer。

  • 良好的编码实践,使我们更轻松地构建和使用项目。

  • 测试技术,用于测试项目的部分层级。

课程内容

我们将按以下阶段逐步进行:

  • 了解我们将用于构建主项目的六个层级的概览。

  • 创建一个小型 mix 项目,演示一个简单计数器的行为。该项目仅包含六个层级中的三个,以帮助我们理解各层级的工作方式。

  • 讨论 Elixir 中使用的以下数据类型:

    • 原始类型

    • 列表

    • 流(Stream)

    • 映射与结构体(Map 和 Struct)

    • 字符串

    • 元组

    • 函数

  • 学习数据层以及函数式语言的特性。

  • 创建第二个 mix 项目,模拟用户在线答题的行为。

  • 确定用于跟踪答题用户的主数据,并使用结构体在项目中存储这些数据。

  • 构建该项目的功能核心层,包含利用之前定义在数据层中的数据的函数。

  • 学习编写函数时的以下技巧:

    • 如何为函数选择合适的名称。

    • 如何将代码拆分为多个小函数,每个函数只完成一项特定任务。

    • 了解代码中的抽象机制。

  • 使用 ExUnit(Elixir 内置的单元测试库)对功能核心进行测试。

  • 创建边界层,用于管理两个 GenServer:一个用于存储题目,另一个用于答题。

  • 创建生命周期层,使用动态监督者来创建和管理答题过程中的进程。这将支持多个用户同时答题,每个用户拥有独立的进程。

  • 学习如何使用依赖项、并发处理,以及如何对资源进行池化。这些技术有助于构建工作层。

  • 构建第三个 GenServer,实现限时答题功能。

  • 学习如何创建一个 poncho 项目来管理不同的依赖项。

  • 创建一个 Postgres 表格,用于存储用户的答题结果。

  • 了解如何将我们的应用集成到现有框架中,包括:

    • Phoenix Channels

    • LiveView

    • Scenic 项目

  • 使用相同的 ExUnit 库对边界层进行测试。

先修知识

本课程要求具备 Elixir 的基础知识,包括以下概念:

  • mix 项目

  • OTP GenServer

  • 监督者与进程

系统要求

我们在项目中构建的 mix 项目依赖以下环境:

项目构建入门