前端工程師的唯一選擇:JavaScript真功夫粹鍊

前端工程師的唯一選擇:JavaScript真功夫粹鍊 pdf epub mobi txt 电子书 下载 2025

圖書標籤:
  • JavaScript
  • 前端開發
  • 前端工程
  • Web開發
  • 編程
  • 技術
  • 進階
  • 實戰
  • 核心
  • 必備
想要找书就要到 灣灣書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

圖書描述

在後端,函數式語言層齣不窮。在前端,函數是最後的邊界也已經被漸漸打破。Scala的Scala.js、Clojure的ClojureScript都試圖同購移嚮前端。原生JavaScript其實也可透過豐富的函數庫,讓前端的函數式程式設計一樣的舒適和優雅。

  本書涵蓋大部分函數式程式設計思想,包括JavaScript的函數式支援,Clojure風格的集閤、遞迴、函數組閤、巨集、模式比對、實用的Monads,以及前端的併發程式設計。

  適用:想要瞭解函數式程式設計的JavaScript程式師,或想學習JavaScript的函數式程式師。

著者信息

作者簡介

歐陽繼超


  本書作者歐陽繼超為Thoughtworks高級諮詢師,活躍開源貢獻者 (github.com / jcouyang),熱愛程式設計與寫作。

圖書目錄

Chapter 01 函數式JavaScript
1.1 JavaScript也是函數式語言嗎
1.2 作為函數式語言,JavaScript還差些什麼
1.3 Underscore你錯瞭
1.4 小結

Chapter 02 集閤
2.1 集閤的使用
2.2 持久性資料結構
2.3 不可變性
2.4 惰性序列
2.5 小結

Chapter 03 遞迴
3.1 不可變性與遞迴
3.2 柯裏悖論
3.3 尾遞迴最佳化
3.4 蹦跳樂園(Trampoline)
3.5 小結

Chapter 04 函數組閤
4.1 Underscore到底做錯瞭什麼
4.2 柯裏化有什麼用
4.3 Transducer
4.4 組閤與管綫
4.5 小結

Chapter 05 Macro巨集
5.1 什麼是REPL
5.2 為什麼要語法糖
5.3 Sweet.js
5.4 Infi x Macro和Operator
5.5 小結

Chapter 06 模式比對
6.1 Destructure
6.2 Arity函數
6.3 Fizz Buzz
6.4 代數資料類型(ADT)
6.5 小結

Chapter 07 Monadic程式設計
7.1 鏈式呼叫
7.2 Monad
7.3 走鋼絲
7.4 Monad在JavaScript中的應用
7.5 Reactive程式設計
7.6 小結

Chapter 08 平行處理程式設計
8.1 什麼是平行處理
8.2 通訊順序處理程序(CSP)
8.3 使用Generator實現CSP
8.4 實戰CSP
8.5 小結

參考資料

圖書序言



  函數式程式設計可以說是非常古老的程式設計方式,但是近年來函數式程式設計越來越受到人們的關注。不管是Google力推的Go、學術派的Scala與Haskell,還是Lisp的新語言Clojure,這些新的函數式程式語言都越來越受到人們的關注。

  當然不僅是後端函數式程式語言層齣不窮,前端也不甘示弱。雖然前端瀏覽器隻支援一種語言——JavaScript,但是能支援函數式程式設計的JavaScript函數庫越來越多,例如Functional JavaScript、Underscore、lodash等。不僅如此,還有一些能編譯成JavaScript的語言,能讓前端的函數式程式設計發揮到極緻,例如Haskell的PureScript、Scala的Scalajs、Clojure的ClojureScript。

  我上二段都以Clojure結尾,是因為我喜歡把重點留到最後。Clojure獨特於其他語言,它既是一種新的語言、一種函數式程式設計範式的語言,又流淌著古老的血液——Lisp。這是我選擇用Clojure來詮釋函數式程式設計的原因之一。

  為什麼我要選JavaScript作為函數式程式設計的目標?Michael Fogus用200多頁嚮大傢展示瞭不一樣的Functional JavaScript程式設計方式,可惜Fogus作為ClojureScript編譯器的貢獻者,竟然選擇瞭Underscore作為函數庫,直接導緻無法完全展示JavaScript所能達到的函數式程式設計能力。有趣的是,ClojureScript的作者把ClojureScript的不可變(Immutable)資料結構移植到瞭JavaScript,這徹底將JavaScript 的函數式程式設計提升到用其他函數庫都完成不瞭的新高度。不僅如此,Mozilla的Sweet.js(https://github.com/mozilla/sweet.js)更是完成瞭另一個突破——JavaScript的macro,它雖然不能算是函數式的概念,但也算是Lisp語言的一項獨門絕技瞭。

  這一切的一切,都讓我忍不住要幫Fogus齣一本續集,用JavaScript實現其他函數式程式語言如Clojure甚至是Haskell,讓大傢進一步感受用JavaScript這門不完美的語言同樣可以撰寫齣優雅的函數式程式,以不一樣的方式思考和解決問題。於是不管你是想轉行JavaScript的Clojure開發者,還是想瞭解Clojure或函數式程式設計的JavaScript開發者,都可以在此找到一些啓發。

  本書的組織結構

  第1章
  將介紹JavaScript的基本函數式背景,簡要地介紹為什麼要關心函數式程式設計,為什麼說Underscore不夠函數式,JavaScript要作為完整的函數式語言還缺些什麼?

  第2章
  主要介紹Clojure的集閤資料結構。這是本書極重要的章節,可以說函數式程式設計最基本、最重要的就是集閤操作。本章涵蓋如何操作集閤、惰性求值與惰性序列。

  第3章
  在瞭解持久性資料結構後,我們可能會産生疑惑,如果資料結構都是不可變的,那麼循環該怎麼寫呢?本章就是要解開各種使用不可變資料結構的疑惑,用這些不可變資料結構可以切換一種程式設計的思維方式。

  第4章
  nderscore並不利於函數組閤,但是函數組閤其實是函數式程式設計最重要的思想。本章將詳細介紹為什麼說Underscore錯瞭,而為什麼要喜歡上柯裏化,以及Clojure 1.7新推齣的Transducer又是如何幫助我們更容易組閤齣更高效的函數。

  第5章
  我極不願意把Macro翻譯成巨集。巨集特彆容易讓人以為是C 語言裏麵那個#define巨集,雖然都是巨集,但其實說的Macro不是一個等級的。Macro是Lisp語言之所以特彆的原因之一。本章我們就來看看到底什麼是、為什麼,以及如何在JavaScript中使用Macro。

  第6章
  這裏說的模式比對包含兩種:一種是按位置或key比對集閤,取齣對應資料。另一種是Haskell風格的對函數參數的模式比對。本章篇幅比較小,因為模式比對並不是Clojure(也不是JavaScript)的主要模式,盡管在一些有強大類型係統的函數式語言(Scala、Haskell)中比較重要。

  第7章
  Monad這個範疇裏齣來的神秘玩意,但你可能沒有注意,其實這在前端世界早都被玩膩瞭。本章將介紹Monad和它的朋友們,並且將帶你體驗JavaScript的Promise,以及Reactive程式設計。

  第8章
  平行處理程式設計一直是令人頭疼的程式設計方式,直到Clojure和Go的齣現,徹底改變瞭我們平行處理程式設計的方式。而對於單執行緒的JavaScript,以事件循環為基礎的平行處理模型也一直睏擾著我們,到底能從Clojure學些什麼,可以使我們的前端平行處理程式設計之路更順暢一些呢?本章將帶你熟悉平行處理、JavaScript的平行處理模型,以及CSP平行處理模型。

圖書試讀

用户评价

相关图书

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 twbook.tinynews.org All Rights Reserved. 灣灣書站 版權所有