FP101

工作上用得到的函數式程式設計

透過容易上手的函數式語言 Elixir ,讓你寫出精簡、好除錯的漂亮程式碼!

隨著多核心電腦成為主流、分散式系統架構也成為顯學,函數式程式設計的重要性也與日俱增。跟物件導向程式設計相比,函數式程式設計著重於用更簡潔的方向表達程式碼真正的意圖。因此當學會用與物件導向程式程計不同的角度來寫程式後,可以讓你在切換不同的程式語言時依然能游刃有餘。 這門課將會透過容易上手的函數式語言 Elixir,教大家最重要的函數式程式設計觀念。接著介紹如何在 Ruby、JavaScript(也許還有一點 C#)上使用函數式程式設計的技巧。讓你寫出精簡、好除錯的漂亮程式碼!

現在報名只要 NT$3,000
  • 終身存取權
  • 影片時數
  • 結業證書
  • 可行動裝置使用

講師介紹

使用者大頭貼

蘇泰安

三年電腦雜誌編輯,十年程式開發經驗。 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 上寫出高效且漂亮優雅的解法。

透過這門課程,你將會學到:

  • 工作上用得到的 Ruby / JavaScript 函數式程式設計手法。
  • 函數式程式設計是什麼。
  • 純函數式語言們寫起來是怎麼樣子。
  • 函數式程式設計的基本概念、手法及好處。
  • 好用的函數式 Library。
decoration image

課程影音

投影片及補充教材

投影片

範例程式碼

Part 0 - 簡潔的程式碼與世界觀

00 : 29 : 17

簡介

函式裡面有什麼 part 1

08 : 43

函式裡面有什麼 part 2

07 : 45

為什麼要用 Elixir 教?

Part 1 - Function 是什麼?

01 : 15 : 50

抽象系統

一等公民(First-Class Citizen)

07 : 11

你的程式語言可不可以做這件事?

09 : 05

Elixir 中的兩種函式:具名與匿名

08 : 32

為什麼要區分具名與匿名這兩種函式?

04 : 37

閉包(Closure)

04 : 56

不可變性(Immutable)part 1

05 : 15

不可變性(Immutable)part 2

06 : 29

其它語言是怎麼設計的?part 1

03 : 47

其它語言是怎麼設計的?part 2 - Ruby 篇

13 : 01

其它語言是怎麼設計的?part 3 - JavaScript 篇

02 : 16

小結

02 : 03

Part 2 - Pattern Matching

00 : 51 : 59

初試 Pattern Matching

09 : 04

利用 Pattern Matching 把結構裡的東西拆出來

12 : 31

List 跟 Array 有什麼不一樣?

10 : 19

不是只有等號裡有 Pattern Matching

01 : 18

為什麼函數式很少用 if ... else ...?

04 : 56

【練習】FizzBuzz

01 : 50

【解答】FizzBuzz

03 : 50

switch ... case 或 case ... when 語法

05 : 17

JavaScript 上的 Pattern Matching

02 : 54

Part 3 - 遞迴與高階函式

01 : 10 : 16

map 跟 each(或 for loop)的差別

04 : 48

遞迴

03 : 37

遞迴的問題

03 : 22

尾呼叫優化(Tail Call Optimization)

07 : 08

遞迴與 reduce

05 : 30

接收函式的函式 - map 與 filter

06 : 25

並行(Concurrent)與平行(Parallel)

06 : 38

使用 Zip 函式來注入依賴

08 : 48

flat_map 函式與 wrap 函式的組合技

12 : 14

Pipe Operator

07 : 04

Functional Programming 的核心概念

04 : 42

Part 4 - 函式的組合

02 : 05 : 27

函式組合

06 : 58

資料轉換

03 : 14

Elixir 與 Erlang part 1 - 背景簡介

10 : 24

Elixir 與 Erlang part 2 - supervisor 與 worker

07 : 31

Elixir 與 Erlang part 3 - Phoenix 裡的 LiveView

06 : 16

Elixir 與 Erlang part 4 - 小結

02 : 36

Curry Function part 1 - 函式的參數數量不正確會發生什麼事?

06 : 56

Curry Function part 2 - Ruby 實作版

12 : 07

Curry Function part 3 - JavaScript 實作版

11 : 12

Curry Function part 4 - Elixir 實作版

05 : 27

方法(Method)vs 函式(Function)

07 : 33

在 mutable 語言中做出 closure

01 : 14

decorator - 原理介紹

09 : 26

decorator - 使用 JavaScript 與 Ruby 實作

10 : 06

Railway Oriented Programming

12 : 07

Optional Chaining

04 : 19

抽象層級與函式的型狀

08 : 01

Part 5 - 把 FP 的概念用在其它語言上

00 : 32 : 42

整體策略

06 : 38

連續操作過程中印資料

09 : 39

JavaScript 篇

06 : 58

Ruby 篇

09 : 27

Part 6 - 型別系統、容錯、平行化、Macro

00 : 43 : 25

型別系統

09 : 05

Macro

10 : 59

容錯與平行化

15 : 12

小結

08 : 09

decoration image
FP101

工作上用得到的函數式程式設計

現在報名只要 NT$3,000
  • 終身存取權
  • 影片時數
  • 結業證書
  • 可行動裝置使用

其他課程推薦

常見問題

這個課程將於何時開始收看呢?

只要完成付款流程,即可開始觀看課程囉!

這個線上課程可以看多久?要如何收看?

在您付款完成後,該線上課程即能不限次數並永久收看,不用擔心過期喔!

課程上線後,您隨時隨地都可以透過電腦、平板或手機觀看課程影片,沒有時間和地點的問題!

線上課程和實體課程的差別為何?
  1. 實體與線上課程所教授的內容都很精實,最大的差異在課程內容深度會因實體上課同學的發問,而講師針對內容有所延伸。
  2. 線上課程因是經過剪輯的預錄影片,故沒有與講師的互動與實際操作指導。
如何評估課程是否適合我?

部分課程會開放幾個章節的「試看影片」,讓您能在購買前試看後再決定是否購買,降低課程與期望不符的可能性。

付費前請自行確認該門課程是否有提供影片試看。

如果想要更改或取消購買的課程,可以怎麼做?

除了「試看影片」的章節外,若您於購買後曾觀看正式課程的內容,即不符合退費資格,無法申請退費。

若是沒有瀏覽過「正式課程」的內容,則可以依照下方的規範辦理退費:

  1. 購買課程當日起算 7 日內申請退費,全額退還該課程您所支付之課程費用。
  2. 購買課程當日起算第 8 日至第 14 日以內申請退費,返還該課程您所支付之課程費用 30%。
  3. 購買課程當日起算第 15 日後,該課程您所支付之課程費用不予退還。

確認符合退費資格後, 五倍學院依當初交易時,所使用之付款方式將課程費用退還。

完成退費申請後,將於二十個工作天內完成退款。

課程學習中遇到問題,該到哪裡尋求協助?

問題討論

每個課程影片章節下方皆有問題討論區,在這討論區裡,你可以與老師進行交流及互動,解決你在線上課程中遇到的問題;也能與其他學員交流心得,或許會有意外的收獲喔!

課程 Discord 群組

為了能快速又便利的幫同學們解決學習時面臨的問題,我們會為該課程建立專屬群組,並於學員完成課程購買時提供群組連結,請學員們記得要加入唷!

關於發票的問題

五倍學院為響應環保,僅提供電子發票,免費課程不開立發票。

因五倍院學係屬教育機構提供之教育勞務,依法可免徵營業稅,故開立『免稅』發票。

取得電子發票

發票形式:以電子郵件寄送

待購買完成後的七個工作天內,會依照您所填寫的電子信箱寄出。

公司 / 單位需要報帳

請您於結帳時填寫「統編資訊」,並務必填寫正確公司名稱及統一編號

交易成功後的七個工作天內,電子發票將寄送至您所填寫的電子信箱,您可以將它列印並作為會計憑證。

如果對課程有問題,該如何詢問呢?

若您對課程內容有任何問題,您可以透過以下管道諮詢:

  1. 在有問題的章節下方留言
  2. Email 來信 course@5xcampus.com 或傳訊息給我們的 Facebook 粉絲專頁,我們會盡快回覆