Phoenix & Elixir 学习计划
我最近写了一篇关于我第一次使用 Phoenix 和 Elixir 的经历(这里)。回顾那段经历,我复制了很多代码,却没有完全理解它们的工作原理。不了解工作原理确实不太理想。正因如此,我想重新开始,用更结构化的方法学习 Phoenix 和 Elixir。这促使我制定了这个学习计划!以下是我认为有助于指导自学的良好流程。我希望在完成这个计划后,能够实现三件事:
- 掌握 Elixir 和函数式编程基础知识。
- 能够将用 Phoenix 编写的应用程序投入生产。
- 了解如何扩展一个简单的 CRUD 应用程序来做有趣的事情。
我也正在执行这个计划,这意味着我会不断更新它。我会确保添加我找到的资源,或者如果有更好的学习概念的流程,我会进行修改。附件是各个阶段的思维导图,这里是思维导图的链接。
阶段 0:设置 Phoenix 和 Elixir
Phoenix安装页面提供了详细的 Phoenix 和 Elixir 安装指南。您还需要设置 Postgres。我通过docker设置了 Postgres 。
第 1 阶段:构建一个简单的 CRUD 应用程序
一些 CRUD 应用的例子包括:待办事项列表、博客、Twitter 克隆版。理想情况下,所有你想从数据库中保存、编辑或删除的数据都可以在 CRUD 应用中找到。在这个阶段,目标是构建应用的一小部分。例如,保存一些数据并能够在页面上显示。
凤凰城要学习的事情:
- 目录结构
- 生成模型
- 路由
- 控制器
- 视图和模板
- 表格
Elixir 需要学习的内容:
- 使用 IO 进行调试
- 地图和结构
- 管道操作员
- 循环和控制流
此阶段的资源:
阶段 1b:将应用程序部署到 Heroku
部署 Phoenix 应用可能还有其他(更好的)选择。但在部署的简易性和速度方面,Heroku 是无可匹敌的。我们选择尽早部署应用有两个原因:
- 我们对运送物品感到满意!
- 我们有一个编写代码 - 测试 - 部署的紧密反馈循环。
第二阶段:凤凰深潜
现在我们可能想开始为 CRUD 应用添加更多功能。在此之前,我们需要学习如何测试以及如何应用 TDD 来添加新功能。此外,既然我们已经使用过mix
几次了,最好了解一下 TDD 是什么以及它是如何工作的。
凤凰城要学习的事情:
- 上下文
- 测试
- 句法
- 回滚数据库更改
- 上下文测试
- 控制器测试
Elixir 需要学习的内容:
- 混合
- 一次性密码
- (可选)深入研究函数式编程
此阶段的资源:
第三阶段:Phoenix 身份验证和监控
我非常期待探索 Phoenix 中的遥测和实时仪表盘。我认为这是 Phoenix 一个非常强大的开箱即用功能,我希望能好好利用它。此外,出于两个原因,我计划将身份验证功能纳入此阶段:
- 许多 CRUD 应用程序都会有某种形式的身份验证。
- 如果您想查看 Live Dashboard 的生产实例,我们应该将其置于身份验证之后。
凤凰城要学习的事情:
- 遥测
- 如何添加指标?
- 实时仪表板
- 如何将其置于经过身份验证的端点之后?
- 后台作业
- 了解如何发送电子邮件。
- 凤凰认证
- (可选)我们可以扩展它以包括角色吗?
- 另请参阅 José Valim 撰写的这篇关于phoenix 身份验证解决方案的精彩博客文章。他引用了 phoenix auth gen。
(可选)第 4 阶段:实时查看
我对 Live View 唯一的了解就是它允许我编写服务器端代码并使其看起来像是在使用 Javascript 前端。
凤凰城要学习的事情:
- LiveView 😅 是什么?
资源列表
- 官方 Elixir 文档
- Phoenix 官方文档
- Elixir Casts - Elixir 和 Phoenix 的视频
- 炼金术士营地 - 更多 Elixir 视频
- Elixir 学校 - Elixir 学习指南
- Elixir Koans - 用于练习 Elixir
- Phoenix Cheatsheets - 如果您需要复制和粘贴一些代码。
学习一门新语言总是有很多东西要学。而且我们还在尝试学习一个新的框架!我希望更结构化的方法能让学习过程不那么令人畏惧!如果你对学习流程有什么想法,或者有什么资源想分享,请在下方评论区留言!
文章来源:https://dev.to/jonathanyone/phoenix-elixir-learning-plan-39m7