工作上用得到的函數式程式設計
$540.00
這門課將會透過容易上手的函數式語言 Elixir,教大家最重要的函數式程式設計觀念。接著介紹如何在 Ruby、JavaScript(也許還有一點 C#)上使用函數式程式設計的技巧。讓你寫出精簡、好除錯的漂亮程式碼!
- Description
- Reviews (0)
Description
工作上用得到的函數式程式設計
隨著多核心電腦成為主流、分散式系統架構也成為顯學,函數式程式設計的重要性也與日俱增。跟物件導向程式設計相比,函數式程式設計著重於用更簡潔的方向表達程式碼真正的意圖。因此當學會用與物件導向程式程計不同的角度來寫程式後,可以讓你在切換不同的程式語言時依然能游刃有餘。
這門課將會透過容易上手的函數式語言 Elixir,教大家最重要的函數式程式設計觀念。接著介紹如何在 Ruby、JavaScript(也許還有一點 C#)上使用函數式程式設計的技巧。讓你寫出精簡、好除錯的漂亮程式碼!
透過這門課程,你將會學到:
工作上用得到的 Ruby / JavaScript 函數式程式設計手法。
函數式程式設計是什麼。
純函數式語言們寫起來是怎麼樣子。
函數式程式設計的基本概念、手法及好處。
好用的函數式 Library。
課程講師
蘇泰安 Taian Su
蘇泰安 Taian Su
三年電腦雜誌編輯,十年程式開發經驗。 Elixir.tw 及 RailsGirls Taiwan 共同主辦人。現任企業開發顧問及客座講師。專長為函數式及分散式編程,擅長 Elixir、JavaScript / React、Ruby 及 Haskell。
程式新手到進階必備!
不管你是前端工程師 、 Ruby 工程師或是擅長其他語言的前後端工程師,只要你是程式新手或是想要了解目前業界關注的 『函數式程式設計(Functional Programming)』的資深工程師,這門課都能讓你對寫程式這件事有全新的認識。
自 2014 Java SE 8 加入了 Lambda 功能之後,可說現代語言都有函數式程式設計的能力了。甚至在 Ruby 及 JavaScript 這類天生帶著函數式基因的語言裡,受限於舊的思考方式及長久以來的習慣,許多人還是持續用指令式的做法寫出繁瑣的程式。就算看了網路上的文章,也是會使用 map、reduce、filter 這些函式,卻不知道這背後有一整套優雅簡潔的世界觀。
為什麼要學函數式程式設計?
簡潔 + 強大 = 優雅
用更少的行數,更易懂的方式,寫出不容易出錯、好測試及閱讀的程式碼,也能看得懂 LeetCode 上厲害解法的思考脈絡了!
易於維護,容易閱讀和除錯
用全新的角度來理解程式組合及運作的方式。
跨程式語言的觀念
學會一種觀念,就能在 JavaScript、Ruby、Python、C# 3.0 及 Java 8.0 上寫出高效且漂亮優雅的解法。
課程大綱
投影片及補充教材
投影片
範例程式碼
Part 0 – 簡潔的程式碼與世界觀
預覽
簡介 (10:26)
函式裡面有什麼 part 1 (8:43)
函式裡面有什麼 part 2 (7:44)
為什麼要用 Elixir 教? (2:22)
Part 1 – Function 是什麼?
抽象系統 (8:37)
一等公民(First-Class Citizen) (7:10)
你的程式語言可不可以做這件事? (9:04)
Elixir 中的兩種函式:具名與匿名 (8:32)
為什麼要區分具名與匿名這兩種函式? (4:37)
閉包(Closure) (4:56)
不可變性(Immutable)part 1 (5:15)
不可變性(Immutable)part 2 (6:28)
其它語言是怎麼設計的?part 1 (3:47)
其它語言是怎麼設計的?part 2 – Ruby 篇 (13:01)
其它語言是怎麼設計的?part 3 – JavaScript 篇 (2:15)
小結 (2:02)
Part 2 – Pattern Matching
初試 Pattern Matching (9:03)
利用 Pattern Matching 把結構裡的東西拆出來 (12:30)
List 跟 Array 有什麼不一樣? (10:18)
不是只有等號裡有 Pattern Matching (1:18)
為什麼函數式很少用 if … else …? (4:55)
【練習】FizzBuzz (1:50)
【解答】FizzBuzz (3:50)
switch … case 或 case … when 語法 (5:16)
JavaScript 上的 Pattern Matching (2:54)
Part 3 – 遞迴與高階函式
map 跟 each(或 for loop)的差別 (4:48)
遞迴 (3:36)
遞迴的問題 (3:22)
尾呼叫優化(Tail Call Optimization) (7:08)
遞迴與 reduce (5:30)
接收函式的函式 – map 與 filter (6:25)
並行(Concurrent)與平行(Parallel) (6:37)
使用 Zip 函式來注入依賴 (8:47)
flat_map 函式與 wrap 函式的組合技 (12:13)
Pipe Operator (7:04)
Functional Programming 的核心概念 (4:41)
Part 4 – 函式的組合
函式組合 (6:57)
資料轉換 (3:13)
Elixir 與 Erlang part 1 – 背景簡介 (10:23)
Elixir 與 Erlang part 2 – supervisor 與 worker (7:30)
Elixir 與 Erlang part 3 – Phoenix 裡的 LiveView (6:15)
Elixir 與 Erlang part 4 – 小結 (2:35)
Curry Function part 1 – 函式的參數數量不正確會發生什麼事? (6:56)
Curry Function part 2 – Ruby 實作版 (12:06)
Curry Function part 3 – JavaScript 實作版 (11:11)
Curry Function part 4 – Elixir 實作版 (5:26)
方法(Method)vs 函式(Function) (7:33)
在 mutable 語言中做出 closure (1:14)
decorator – 原理介紹 (9:25)
decorator – 使用 JavaScript 與 Ruby 實作 (10:06)
Railway Oriented Programming (12:07)
Optional Chainning (4:18)
抽象層級與函式的型狀 (8:00)
Part 5 – 把 FP 的概念用在其它語言上
整體策略 (6:38)
連續操作過程中印資料 (9:38)
JavaScript 篇 (6:57)
Ruby 篇 (9:26)
Part 6 – 型別系統、容錯、平行化、Macro
型別系統 (9:04)
Macro (10:59)
容錯與平行化 (15:12)
小結 (8:08)
現在就!
Get 工作上用得到的函數式程式設計 download
常見問題
這個課程將於何時呢?
本課程目前已錄製完成並全部上線,想要,隨時都可以囉!
這個線上課程可以收看多久?要如何收看?
在您付款完成後,這門線上課程即能無限次數、永久收看,不用擔心過期喔! 課程上線後,隨時隨地都可以透過手機、平板、與電腦線上觀看課程影片,沒有時間和地點的問題!
這堂課有實體課程嗎?
有的,歡迎到我們的網站 https://5xruby.tw/ 查看相關課程資訊。
我沒有信用卡,該怎麼繳費呢?
除了信用卡外,您也可以使用 ATM 轉帳或銀行匯款,匯款帳號資訊:
玉山銀行 城中分行(代碼 808)
帳號:0532-940-108506
戶名:五倍紅寶石程式資訊教育股份有限公司
請報名並匯款至以上指定帳戶後,請來信至 [email protected] 並附上您在本網站註冊之帳號,在一個工作天內將為您確認並幫您加入此課程。
如果我對課程有問題,該如何詢問呢?
若您對課程內容有任何問題,您可以透過以下管道諮詢:
在有問題的章節下方留言
Email 來信 [email protected] 或 Facebook 訊息討論
若您在北部,我們每個星期二晚上在五倍紅寶石辦公室都有舉辦「默默會」活動,您可以帶著您的問題來與大家一起討論喔!
如果我覺得課程跟想像的有落差,該如何退款?
如果您加入此門課程後 7 天內覺得不滿意,您可以隨時與我們聯繫,我們會協助您辦理退款。(將扣除刷卡手續費)
如果您對課程還有任何問題…
歡迎與我們聯絡 [email protected] !
Read more: https://archive.is/RuBqz
Reviews
There are no reviews yet.