Web 工程師不可不知的 functional programming 應用|減少 bug、增進效能有一套

    有效收斂程式邏輯,讓程式碼更簡潔,並且更好進行測試。

    60
    收集中
    • 建立比較完整的 functional programing 理解

    • 掌握 functional programming 的應用與技巧

    • 了解「物件導向」、「functional programming」開發方式的不同

    • 能夠比較理解何時該使用物件導向或 functional programing

    • 了解 functional programming 的使用時機及限制

    US$49.59

    當你遇到這些問題,試著用函數化編程解決吧!

    ❓ 觀念不太清楚,可能會從很多地方聽過函數式編程。例如:知道迴圈可以用 forEach 取代。這可能是個簡潔寫法,但卻沒有很理解其結構

    ❓ 學習比較片面。例如:在工作上會看到很多外部的程式碼或者前輩的用法,大概知道哪些語境下可以使用,但缺乏一個從頭到尾(如原理到底是什麼)的學習過程


    ❓ 不知何時應用。例如:即使知道可將 for loop 換成 forEach,但卻不清楚何時該用前者,何時該用後者

     

    這堂課,將解決你以上問題!課程中我們會從發展歷程及背後脈絡講起,了解各種用法的比較,並以 React 為例,做思考上的驗證。

     

     

    為什麼要學函數化編程?什麼時候該使用呢?

    ① 讓程式碼看起來更簡潔

     

    函數化編程的技巧可以讓你著重在程式碼的「組合」,而非將邏輯直接「封裝」,如此一來能讓程式碼更為簡潔易懂。

     

     

    ② 對功能的描述更精準

     

    函數化編程的思考方式會讓程式編寫者更容易將注意力放在描述「要做什麼」而不是「如何做到」,程式碼的撰寫跟結構將更為直觀。

     

     

    ③ 更好進行測試

     

    如果你的程式主要是由一個一個的函數串接而成,那每個斷點都能寫對應的測試程式。對於需要細部測試的重要邏輯來說會比較好除錯。

     

    實務上,有哪些時候適合導入函數化編程技巧呢?這裡舉幾個常見場景:

    1. 重要的商務邏輯:例如電商中計算報價的模組
    2. 具有通用性質的外掛組件:例如提示用戶有更新的視覺呈現
    3. 封裝第三方模組的介面:藉由函數化編程的先天隔離性質,可以很好的控制副作用外溢的風險

     

     

    函數化編程是什麼?與一般的命令是程式有什麼不同?

    函式化編程是一種程式撰寫的風格,會把函式當成參數傳入,並以沒有 side effect 的方式回傳另一個函式。

     

    傳統的命令式程式設計,是你必須一步步的寫出程式要如何做,但常常寫出來的東西參雜了許多與主要邏輯無關的程式碼,顯得很多餘;而目前流行的函數式程式設計,其主要在於告訴程式「做什麼」,而不是「怎麼做」。

     

     

    開發方式大不同:物件導向 vs. 函數化編程究竟差在哪?

    物件導向跟函數化編程都能非常有效的收斂程式邏輯,如果善用這些技巧,就能對於「減少 bug」及「增進效能」很有幫助。

    物件導向的思考著重在封裝特殊邏輯,而函數化編程則更注重以組合及分離來梳理邏輯。活用這兩種思考模型可以讓您對問題的拆解更得心應手。

     

     

    函數化程式使用技巧、時機一次掌握

    第 1 ~ 2 章

    從大視角了解函數化編程

    首先了解函數化編程是什麼,並認識「物件導向 」、「函數化編程」開發方式的不同

     

     

    第 3 章

    觀念介紹:深入學習前暖身

    理解必要但容易被忽略的概念,如函數作為一等公民(first-class)是什麼意思

     

     

    第 4 章

    JavaScript 的函數化編程

    介紹 Clousure、High-Order Function 及常用的函數化編程技巧

     

     

    第 5 章

    React 中的函數化編程

    帶著前面學習的經驗再回過頭看 React 中的函數化編程技巧

     

     

    第 6~7 章

    延伸議題

    了解使用函數化編程的技巧以及使用時機

     

     

    關於 Sam 老師

      

    RevtelTech 共同創辦人,目前主要負責技術諮詢及佈局。臺大資訊研究所畢業,開發經驗超過 10 年。跨足嵌入式系統、網頁、雲端及 App 開發,曾參與和開發超過 20 個以上 React Native 專案 (包含教育、電商、金融、醫療、展覽及物流等各大領域),其中包含獨角獸等級企業百萬下載海外電商雙平台 App。亦曾受邀至 yourator 等徵才平台分享 React Native 開發經驗。曾培養非本科系學員,成為軟體工程師。對事物有敏銳觀察,認為程式不只是「教」,應該還包含「自學能力」的養成。

    章節目錄

    • 1-1
      課程介紹

    試閱影片

    常見問答

    如果您購買的是募資課程,請在課程的【簡介】中查看開課時間,募資課程將於開課時間所述日期開放同學上課。

     

    若您購買的是一般課程(開放上課課程),則在購買完成後可以立即開始觀看。

     

    所有線上課程皆不受時間限制,享無限次永久觀看!

    猜你喜歡

    用戶評價

    | 收集中

    購買前問答

    Song-Lin Tsai
    Song-Lin Tsai
    初入網頁開發領域,想跟老師請教實務經驗上,OOP與functional programming的開發優劣比較,兩者選擇的Trade-off~感謝老師!
    Sam
    Sam

    好的這部分會提到~

    銷售方案