今天,DailyDrip發(fā)布了五周的免費(fèi)內(nèi)容辆毡,向人們介紹Elixir編程語言,并準(zhǔn)備使用Ecto和Phoenix構(gòu)建Web應(yīng)用程序嘹害。我們制作了25個短片(每個約5分鐘)豪墅,這將使你從“Elixir是什么東西”到“酷,我知道如何建立基本的Phoenix WebApp”迅速。從那里開始滤钱,我們正在建立一個具有生產(chǎn)力的應(yīng)用程序觉壶,用于持續(xù)優(yōu)質(zhì)內(nèi)容。
如果您只想看內(nèi)容件缸,您可以跳過铜靶,否則堅(jiān)持下去,我們將看看為什么我們投入大量的時間在Elixir生態(tài)系統(tǒng)中他炊。
一些歷史
四年前我開始使用ElixirSips争剿,因?yàn)槲以趲讉€項(xiàng)目中遇到并發(fā)和容錯問題。通過研究痊末,我得出結(jié)論蚕苇,解決這些問題的是Actor模型,這導(dǎo)致了Erlang和Elixir凿叠。 18個月前涩笤,Adam加入了我,ElixirSips成為DailyDrip盒件。我們的目標(biāo)是幫助您成為更好的開發(fā)者;為此辆它,我們每天都會制作Elixir,Elm等短片視頻履恩。
Firestorm - 一個開源的phoenix論壇
去年年底锰茉,我們注意到缺乏使用Elixir和Phoenix的實(shí)例項(xiàng)目。同時切心,我們對可用于將注釋插入DailyDrip的選項(xiàng)不滿意飒筑。所以我們開始了關(guān)于Kickstarter的Firestorm Forum項(xiàng)目,其中我們將提供有關(guān)其開發(fā)的內(nèi)容绽昏。 Kickstarter是成功的协屡!
作為Kickstarter的一部分,我們創(chuàng)建了免費(fèi)的內(nèi)容來向更多的人介紹Elixir全谤。這是我們在這篇文章末尾宣布的內(nèi)容肤晓。我們也在繼續(xù)在DailyDrip Elixir主題中建立Firestorm論壇。我們正在以實(shí)踐的方式學(xué)習(xí)使用持續(xù)集成认然,持續(xù)部署和堅(jiān)實(shí)的測試套件等最佳實(shí)踐來構(gòu)建生產(chǎn)應(yīng)用程序补憾。
我們已經(jīng)建立了一個Alpha版本的Firestorm,同時在社區(qū)內(nèi)進(jìn)行dogfooding卷员。我們正在改裝Phoenix 1.3的Firestorm盈匾。我們預(yù)計(jì)7月初達(dá)到1.0。
隨著這個項(xiàng)目的發(fā)展毕骡,將會為任何構(gòu)建生產(chǎn)Elixir應(yīng)用程序可能遇到的問題提出真實(shí)的解決方案削饵。我們希望這有助于個人和團(tuán)隊(duì)擁護(hù)Elixir及其社區(qū)的所有真棒岩瘦。當(dāng)然,詳細(xì)的開發(fā)日志也可以讓人們輕松地為Firestorm本身做出貢獻(xiàn)窿撬。
如果沒有為我們的Kickstarter做出貢獻(xiàn)的每個人的支持启昧,我們在項(xiàng)目中花費(fèi)的免費(fèi)內(nèi)容和時間是不可能的。我們非常感激劈伴,并希望這個項(xiàng)目可以證明可以為世界建立高質(zhì)量的開源軟件箫津,同時也生產(chǎn)高品質(zhì)的教材。如果您對Firestorm論壇的成功感興趣宰啦,或者發(fā)現(xiàn)免費(fèi)的內(nèi)容很有價值苏遥,并希望在世界上看到更多這樣的事情,那么如果您注冊個人或團(tuán)隊(duì)帳戶赡模,我們將很榮幸DailyDrip田炭。
初創(chuàng)企業(yè)很難!
很難的事實(shí)是漓柑,我們正在為您提供所有這些內(nèi)容而虧本教硫。 我們正在努力幫助開發(fā)人員使世界更美好。 我們有一些很好的內(nèi)容辆布,這將幫助您不僅學(xué)習(xí)Elixir和Phoenix瞬矩,而且Elm,React Native锋玲,Swift3景用,Ember等等。 人們告訴我們他們喜歡我們的內(nèi)容惭蹂,但為了不斷生產(chǎn) - 像Firestorm這樣的項(xiàng)目伞插,我們需要更多的付費(fèi)用戶。
我們很樂意為您或您的開發(fā)團(tuán)隊(duì)提供最新最新軟件世界的最新信息盾碗。 此外媚污,如果您有一個難題,需要高級開發(fā)人員廷雅,我們可以幫助耗美。
我們想要養(yǎng)活我們的家庭,專注于制作精彩內(nèi)容和開源軟件航缀,通過在這里訂閱來幫助我們做到這一點(diǎn)商架。 也就是說,不用多說谬盐,這是我們的免費(fèi)內(nèi)容甸私!
Episodes
Week 1: 初級Elixir
在第一周诚些,您將學(xué)習(xí)Elixir編程語言語法及其工具的基礎(chǔ)知識飞傀,您將學(xué)習(xí)如何在進(jìn)程之間發(fā)送消息皇型。 我們用自我指導(dǎo)的練習(xí)來構(gòu)建一個獨(dú)立的過程。
[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
在第二周砸烦,您將學(xué)習(xí)如何使用ExUnit編寫測試弃鸦,語言本身的更多方面以及如何管理狀態(tài)。
[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唬格。 這是存在的標(biāo)準(zhǔn)庫的一部分,可以幫助您更好地模擬并發(fā)進(jìn)程颜说。 它還提供監(jiān)督樹购岗,這是使用Elixir構(gòu)建容錯應(yīng)用程序的構(gòu)建塊。
[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喊积,它可以幫助您與數(shù)據(jù)庫進(jìn)行交互。 我們將開始為論壇建立一個數(shù)據(jù)模型玄妈,我們最終會得到一些非平凡的查詢乾吻。
[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
在免費(fèi)內(nèi)容的第五周和最后一周,您將了解到Phoenix拟蜻,我們將從頭開始構(gòu)建Firestorm論壇绎签。 Firestorm是一個開源的基于Phoenix的論壇引擎,旨在為人們提供一個龐大的真實(shí)世界的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
第六周是優(yōu)質(zhì)內(nèi)容開始的地方诡必,我們將繼續(xù)從這里開始。 本周搔扁,我們從Brunch切換到Webpack2擒权,實(shí)施OAuth身份驗(yàn)證,查看Ecto.Multi阁谆,了解如何使用Changesets更智能地處理一些事務(wù)碳抄,并使用視圖和布局。
[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的朋友。