专栏首页星流全栈Elixir, OTP, Ecto, 和 Phoenix 免费教程!

Elixir, OTP, Ecto, 和 Phoenix 免费教程!

今天,DailyDrip发布了五周的免费内容,向人们介绍Elixir编程语言,并准备使用Ecto和Phoenix构建Web应用程序。我们制作了25个短片(每个约5分钟),这将使你从“Elixir是什么东西”到“酷,我知道如何建立基本的Phoenix WebApp”迅速。从那里开始,我们正在建立一个具有生产力的应用程序,用于持续优质内容。

如果您只想看内容,您可以跳过,否则坚持下去,我们将看看为什么我们投入大量的时间在Elixir生态系统中。

一些历史

四年前我开始使用ElixirSips,因为我在几个项目中遇到并发和容错问题。通过研究,我得出结论,解决这些问题的是Actor模型,这导致了Erlang和Elixir。 18个月前,Adam加入了我,ElixirSips成为DailyDrip。我们的目标是帮助您成为更好的开发者;为此,我们每天都会制作Elixir,Elm等短片视频。

Firestorm - 一个开源的phoenix论坛

去年年底,我们注意到缺乏使用Elixir和Phoenix的实例项目。同时,我们对可用于将注释插入DailyDrip的选项不满意。所以我们开始了关于Kickstarter的Firestorm Forum项目,其中我们将提供有关其开发的内容。 Kickstarter是成功的!

作为Kickstarter的一部分,我们创建了免费的内容来向更多的人介绍Elixir。这是我们在这篇文章末尾宣布的内容。我们也在继续在DailyDrip Elixir主题中建立Firestorm论坛。我们正在以实践的方式学习使用持续集成,持续部署和坚实的测试套件等最佳实践来构建生产应用程序。

我们已经建立了一个Alpha版本的Firestorm,同时在社区内进行dogfooding。我们正在改装Phoenix 1.3的Firestorm。我们预计7月初达到1.0。

随着这个项目的发展,将会为任何构建生产Elixir应用程序可能遇到的问题提出真实的解决方案。我们希望这有助于个人和团队拥护Elixir及其社区的所有真棒。当然,详细的开发日志也可以让人们轻松地为Firestorm本身做出贡献。

如果没有为我们的Kickstarter做出贡献的每个人的支持,我们在项目中花费的免费内容和时间是不可能的。我们非常感激,并希望这个项目可以证明可以为世界建立高质量的开源软件,同时也生产高品质的教材。如果您对Firestorm论坛的成功感兴趣,或者发现免费的内容很有价值,并希望在世界上看到更多这样的事情,那么如果您注册个人或团队帐户,我们将很荣幸DailyDrip。

初创企业很难!

很难的事实是,我们正在为您提供所有这些内容而亏本。 我们正在努力帮助开发人员使世界更美好。 我们有一些很好的内容,这将帮助您不仅学习Elixir和Phoenix,而且Elm,React Native,Swift3,Ember等等。 人们告诉我们他们喜欢我们的内容,但为了不断生产 - 像Firestorm这样的项目,我们需要更多的付费用户。

我们很乐意为您或您的开发团队提供最新最新软件世界的最新信息。 此外,如果您有一个难题,需要高级开发人员,我们可以帮助。 我们想要养活我们的家庭,专注于制作精彩内容和开源软件,通过在这里订阅来帮助我们做到这一点。 也就是说,不用多说,这是我们的免费内容!

Episodes

Week 1: 初级Elixir 在第一周,您将学习Elixir编程语言语法及其工具的基础知识,您将学习如何在进程之间发送消息。 我们用自我指导的练习来构建一个独立的过程。 [001.1] Introduction to Elixir — Introduction to the language, and installation of Erlang and Elixir [001.2] Basic Elixir Syntax and Concepts — Learning the basics of the language, as well as how to run scripts. [001.3] Mix and Modules — Using the mix tool and defining modules, functions, and structs [001.4] Processes and Messaging — Processes are the unit of concurrency. We’ll spawn some processes and let them have a conversation. [001.5] Elixir Weekly Drip #1 and Exercise: String Upcaser “Microservice” — Further links for reading, and a gratuitous exercise to build a process that responds with the upcased version of any strings it is sent.

Week 2: 中级Elixir 在第二周,您将学习如何使用ExUnit编写测试,语言本身的更多方面以及如何管理状态。 [002.1] Intermediate Elixir Prep — Preparing to learn about managing state and testing. [002.2] Processes With State, and Agent — Managing state with processes and messaging, then seeing the Agent module from the Standard Library for a simpler way to do the same thing. [002.3] for Comprehensions — Handling enumerables and collections with power and grace. [002.4] Testing with ExUnit — An in-depth look at ExUnit, Test-Driven Development, and doctests. [002.5] Elixir Weekly Drip #2 and Exercise: Reverse Polish Notation Calculator — Links on documentation, with, control structures, Enumerables, and an exercise to build a Reverse Polish Notation Calculator.

Week 3: OTP 在第三周,您将了解OTP。 这是存在的标准库的一部分,可以帮助您更好地模拟并发进程。 它还提供监督树,这是使用Elixir构建容错应用程序的构建块。 [003.1] Preparing to Learn about OTP — A solution to the Reverse Polish Notation Calculator exercise, and preparatory readings for learning about OTP. [003.2] GenServer and Supervisor — Building Generic Servers and Supervision Trees [003.3] Supervising Tasks and Agents — Using Supervisors to handle nuance within your Tasks and Agents. [003.4] GenStateMachine — Modeling a door with a numeric lock, to explore building Finite State Machines. [003.5] Elixir Weekly Drip #3 and Exercise: Supervised RPN Calculator and Tape Printer — Interesting links and an exercise to build an RPN Calculator with GenServer, with a Tape Printer.

Week 4: Ecto 在第四周,我们介绍了Ecto,它可以帮助您与数据库进行交互。 我们将开始为论坛建立一个数据模型,我们最终会得到一些非平凡的查询。 [004.1] Preparing to Learn About Ecto — A solution to last week’s exercise and some readings to prepare us to learn about Ecto. [004.2] Ecto Basics — Getting started with Ecto by creating a basic schema and querying it. [004.3] Ecto Validation with Changesets — Ensuring your data meets your requirements, flexibly. [004.4] Ecto Associations and More Queries — Exploring how to model associated data in Ecto and further details on queries. [004.5] Elixir Weekly Drip #4 and Exercise: More Queries — Some Ecto-related links and an exercise to write more detailed queries

Week 5: Phoenix 在免费内容的第五周和最后一周,您将了解到Phoenix,我们将从头开始构建Firestorm论坛。 Firestorm是一个开源的基于Phoenix的论坛引擎,旨在为人们提供一个庞大的真实世界的Phoenix代码库。 [005.1] Preparing to Learn About Phoenix — Solving an Ecto exercise and preparing to learn about Phoenix. [005.2] Getting Started with Phoenix — Creating a new app and generating some resources. [005.3] Phoenix and the Frontend — HTML, CSS, and JavaScript are actual things. [005.4] Nested Resources in Phoenix — Categories have Threads, and our URLs should reflect that. [005.5] Elixir Weekly Drip #5 and Exercise: Fix Tests — Fixing the tests after last episode, and some Phoenix-related links.

Week 6: Starting Firestorm 第六周是优质内容开始的地方,我们将继续从这里开始。 本周,我们从Brunch切换到Webpack2,实施OAuth身份验证,查看Ecto.Multi,了解如何使用Changesets更智能地处理一些事务,并使用视图和布局。 [006.1] Webpack2 with Phoenix — Replacing Brunch with Webpack in a Phoenix app [006.2] Authentication via OAuth — Using Ueberauth to authenticate users against OAuth providers. [006.3] Adding Posts to Threads with Database Transactions — Handling database transactions in style, with Ecto.Multi. [006.4] Using Ecto Associations in Phoenix — Being smarter about modifying and inserting associated data. [006.5] Phoenix Views, Templates, and Layouts — Making Firestorm look a bit more like it should.

非常感谢阅读本文,如果您感兴趣的话,不妨分享此文给喜欢Elixir的朋友。

课程链接点击原文哟!

本文分享自微信公众号 - 星流全栈(MeteorFullStack),作者:DailyDrip

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RethinkDB is shutting down

    时见疏星
  • Meteor 1.3 正式发布啦!ES 2015模块,应用测试,移动提升等新特性

    时见疏星
  • 使用深度学习来读唇语,压缩JPEG,保护住宅等

    时见疏星
  • Flink Forward 2019--AI 相关(1)--在Flink部署ONNX模型

    Deploying ONNX models on Flink - Isaac Mckillen - Godfried(AI Stream)

    阿泽
  • Rails里应用Devise

    用户2183996
  • VMware发布两大产品预览:Bonneville和AppCatalyst

    Project Bonneville就是采用虚拟机封装容器的技术,达到安全,高隔离度的目的。该项目扩展了Docker engine创建容器的方式,把原来在Lin...

    Henry Zhang
  • 患者的个人健康知识图(CS.AI)

    现有的患者数据分析平台无法整合具有上下文,个性化和主题性的信息。为了使推荐系统对查询做出适当的响应或从患者数据中得出有意义的见解,推荐系统应考虑有关患者健康史的...

    蔡小雪7100294
  • 国外程序员推荐的免费编程书籍资源

    我正试着搜集整理一个可在网上免费阅读的计算机编程书籍列表。这些书可以是某种特定编程语言,也可以计算机方面通用书籍。网上有哪些免费可用的书籍呢?

    耕耘实录
  • How to Build an Effective Initial Deployment Pipeline

    I love building things—what developer doesn’t? I love thinking up solutions to i...

    汐楓
  • 个性化语法纠错:根据能力水平和 L1 进行调整(CS CL)

    语法纠错 (GEC) 系统在各种软件应用中已变得无处不在,并已开始在某些数据集上接近人类水平的性能。然而,对于如何根据用户的特点(如用户的熟练程度和第一语言)或...

    刘持诚

扫码关注云+社区

领取腾讯云代金券