|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/navigating-mars-using-ts-and-fp/
课程评论:没有评论
课程名称:使用 TypeScript 和函数式编程导航火星! 课程概述:在过去五年中,函数式编程范式逐渐成为主流开发模式。无论是 Elm 引入的模型-视图-更新(Model View Update)模式,激发了 React 的 Redux 和 Angular 的 ngrx 架构,还是 Haskell 提出的 Maybe 和 Either,影响了 Rust,函数式编程的概念越来越普遍。然而,为了理解这些高级概念,扎实的基础是必不可少的,这正是我们在本课程中所要探讨的内容。通过解决火星探测器编程挑战(Mars Rover kata),您将亲身体验函数式编程的三个核心概念: 1. 不变性(Immutability) - 通过减少数据变化的地方来降低复杂性 2. 函数(Functions) - 通过限制函数的功能来降低复杂性,使其更易于理解 3. 组合(Composition) - 通过组合现有函数来构建新函数 学习不变性使您能够安排代码,从而减少在应用程序中需要跟踪的状态,缩短故障排除的时间。通过了解函数的特性,您将学会识别纯函数(如易于测试/排除故障的函数),并如何减少不纯函数中的业务规则(如难以测试的函数)。掌握这两个概念后,您将能够将现有函数组合成新函数,实现可重用性。 如果您对函数式编程感兴趣但不知道从何入手,那么本课程将非常适合您!
Over the past five years, functional programming paradigms have entered the development mainstream. Whether its Elm that introduced the Model View Update pattern which inspired React's Redux and Angular's ngrx architecture or Haskell that introduced us to Maybe and Either which influenced Rust, functional concepts are becoming more common.However, in order to understand these advanced concepts, you need a solid foundation to build upon which is what we'll be tackling in this course. By tackling the Mars Rover kata, you'll get hands-experience with the three core concepts of functional programming.Immutability - Removing complexity by reducing where data can changeFunctions - Removing complexity by reducing what functions can do, ensuring that they're easier to understandComposition - Building new functions by composing existing functionsBy learning immutability, you learn how to arrange your code so that you don't have to track as much state in your application, reducing your troubleshooting time.By learning what functions are, you'll learn how to spot pure functions (e.g., those that are easy to test/troubleshoot) and how to minimize the amount of business rules in the impure functions (e.g., those that are hard to test)With these two concepts in hand, you'll learn how you can take existing functions and combine them into new functions, gaining re-usability.If you're interested in functional programming but not sure where to start, then this course is for you!