騰訊t4架構詳解Java8函數式編程

前言

多年以來,函數式編程被認為是少數人的遊戲,這些人總是強調自己在智力上的優越性,認為函數式編程的智慧不適合推廣給普羅大眾。寫作此書的目的就是為了挑戰這種思想,函數式編程並沒有多麼了不起,也絕不是少數人的遊戲。


在過去的兩年中,我請倫敦Java社區的開發人員以各種方式測試Java8的新特性。我發現很多人都喜歡Java 8的新用法和類庫。他們有可能被一些術語和高大上的概念嚇到,但是稍稍一丁點兒函數式編程技巧都能給編程帶來便利,他們對此喜不自勝。人們津津樂道的話題之一是使用新的StreamAPI操作對象和集合類時(比如從所有的唱片列表中過濾出在英國本地出品的唱片時),代碼是多麼易讀。
組織這些Java社區活動,讓我認識到了示例代碼的重要性。人們通過不斷地閱讀和消化這些簡單的示例,最終歸納出某種模式。我還意識到術語是多麼令人討厭,因此,在介紹一個晦澀的概念時,我都會給出通俗易懂的解釋。對很多人來說,Java 8提供的函數式編程元素有限:沒有單子',沒有語言層面的惰性求值,也沒有為不可變性提供額外支持。對實用至上的程序員來說,這沒什麼大不了的,我們只想在類庫級別抽象,寫出簡單幹淨的代碼來解決業務問題。如果有人為我們寫出這樣的內庫,那再好不過了,這樣我們]就可以把主要精力放在日常工作上了。

如果還沒有又需要這本【Java8函數式編程】書籍文檔的話,大家幫忙轉發一下然後再關注我私信回覆“電子書”免費獲取吧!!!

為什麼要閱讀本書

本書將探討如下主題。
●如何編寫出簡單、乾淨、易讀的代碼一 尤其是對於集合的操作?
●如何簡單地使用並行計算提高性能?
●如何準確地為問題建模,並且開發出更好的領域特定語言?
●如何寫出不易出錯,並且更簡單的併發代碼?
●如何測試和調試Lambda表達式?
將Lambda表達式加入Java,並不只是為了提高開發人員的生產效率,業界也對這一特性有根本性的需求。

本書讀者對象

本書面向那些已經掌握JavaSE,並且想盡快了解Java8新特性的開發人員。
如果你對Lambda表達式感興趣,想知道它怎麼幫助你提升專業技能,那麼這本書就是為你而寫的。我假設讀者還不知道Lambda表達式,以及Java 8中核心類庫的變化,我將從零開始介紹這些概念、類庫和技術。
雖然我想讓所有開發人員都來買這本書,但這不現實,這不是一-本適合所有人的書。如果你一點兒也不懂Java,那麼這本書就不適合你。同時,儘管本書會詳細講解Java中的Lambda表達式,但是我不會解釋怎樣在其他語言中使用Lambda表達式。


我也不會講解Java SE中一些基本的概念,比如集合類、匿名內部類或者Swing中的事件處理機制。我假設讀者已經掌握了這些知識。

怎樣閱讀本書

本書採用了示例驅動的寫作風格:介紹完一個概念之後, 就會緊跟一段代碼。代碼中的一些片段,有時你可能無法全部看懂。沒關係,通常在代碼後面會緊跟一段 文字,講解代碼的細節。
這種方式能讓你邊學邊練,多數章節還在最後提供了練習題,供讀者自行練習。我強烈建議讀者讀完一章後完成這些練習,熟能生巧。每個務實的程序員都知道,自欺欺人很容易,你覺得讀懂一段代碼了 ,其實還是遺漏了一些細節。
使用Lambda表達式,就是將複雜性抽象到類庫的過程。在本書中,我會引入很多常用內庫的細節。第2章至第6章介紹了JDK8中核心語言的變化以及升級後的類庫。
最後三章介紹瞭如何在真實環境下使用函數式編程。第7章介紹一些讓測試和調試Lambda表達式變得容易的技巧;第8章解釋現有的那些良好的軟件設計原則如何應用到Lambda表達式上;第9章討論併發,怎樣使用Lambda表達式寫出易讀且易於維護的併發代碼。涉及第三方類庫時,這些章節也會加以介紹。讀者可以將前四章當作Java8的入門指南一要用好Java8,每個人都必須學會這些知識。


後面的幾章難度略高,但掌握了這幾章的內容,你就可以成為知識更加全面的程序員,在自己的設計中得心應手地使用Lambda表達式。你在不斷學習的過程中,也會接觸大量的練習,答案可以在GitHub (ttps:/github.com/RichardWarburton/java-8-Lambdas -exercises)上找到。如果你能邊學邊練,就能迅速掌握Lambda表達式。

目錄

第 1 章 簡介:在開始探索Lambda表達式之前,首先我們要知道它因何而生。本章將介紹Lambda表達式產生的原因,以及本書的寫作動機和組織結構。

騰訊t4架構詳解Java8函數式編程

騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 2 章 Lambda表達式:Java 8的最大變化是引入了Lambda表達式一一種 緊湊的、傳遞行為的方式。它也是本.書後續章節所述內容的基礎,因此,接下來就瞭解-一下什麼是Lambda表達式。

騰訊t4架構詳解Java8函數式編程

騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 3 章 流:Java8中新增的特性旨在幫助程序員寫出更好的代碼,其中對核心類庫的改進是很關鍵的
一部分,也是本章的主要內容。對核心類庫的改進主要包括集合類的API和新引入的流(Stream)。流使程序員得以站在更高的抽象層次上對集合進行操作。本章會介紹Strean類中的一組方法, 每個方法都對應集合上的一種操作。

騰訊t4架構詳解Java8函數式編程


騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 4 章 類庫:本章還對前3章疏漏的知識點進行補充,比如,Lambda表達式方法重載的工作原理、基本類型的使用方法等。使用Lambda表達式編寫程序時,掌握這些知識非常重要。

騰訊t4架構詳解Java8函數式編程

騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 5 章 高級集合類和收集器:第3章只介紹了集合類的部分變化,事實上,Java8對集合類的改進不止這些。現在是時
候介紹一些高級主題了,包括新引入的Collector類。同時我還會為大家介紹方法引用,它可以幫助大家在Lambda表達式中輕鬆使用已有代碼。編寫大量使用集合類的代碼時,使用方法引用能讓程序員獲得豐厚的回報。本章還會涉及集合類的一一些更高級的主題,比如流中元素的順序,以及一些有用的API。

騰訊t4架構詳解Java8函數式編程

騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 6 章 數據並行化:本章主要內容並不在於如何更改代碼,而是講述為什麼需要並行化和什麼時候會帶來性能的提升。要提醒大家的是,本章並不是關於 Java 性能的泛泛之談,我們只關注 Java 8 輕鬆提升性能的技術。

騰訊t4架構詳解Java8函數式編程

騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 7 章 測試、調試和重構:本章主要探討如何在代碼中使用 Lambda 表達式的技術,也會說明什麼情況下不應該(直
接)使用 Lambda 表達式。本章還講述瞭如何調試大量使用 Lambda 表達式和流的程序。

騰訊t4架構詳解Java8函數式編程


騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 8 章 設計和架構的原則:本章將探索如何使用 Lambda 表達式實現 SOLID 原則,該原則是開發良好面向對象程序的
準則。使用 Lambda 表達式,還能改進一些現有的設計模式,本章也會為大家簡要介紹幾個這樣的例子。


騰訊t4架構詳解Java8函數式編程

騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 9 章 使用Lambda表達式編寫併發程序:本 章 的 一 些 例 子 用 到 了 Vert.x(http://vertx.io/) 和RxJava(https://github.com/Netflix/RxJava)框架,但其中展現的設計原則是通用的,對其他框架或是自己編寫的、沒有使用
任何框架的程序也適用。

騰訊t4架構詳解Java8函數式編程

騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


第 10 章 下一步該怎麼辦:這裡給出一些開放性的練習,沒有標準答案,理解這些問題能夠指導讀者接下來的學習過程。

騰訊t4架構詳解Java8函數式編程


騰訊t4架構詳解Java8函數式編程

由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!


分享到:


相關文章: