今天,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的朋友。