幫助中心 | 我的帳號 | 關於我們

Kotlin核心編程

  • 作者:水滴技術團隊
  • 出版社:機械工業
  • ISBN:9787111624318
  • 出版日期:2019/04/01
  • 裝幀:平裝
  • 頁數:360
人民幣:RMB 89 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書不是一本簡單介紹Kotlin語法應用的圖書,而是一部專註于幫助讀者深入理解Kotlin的設計理念,指導讀者實現Kotlin高層次開發的實戰型著作。書中深入介紹了Kotlin的核心語言特性、設計模式、函數式編程、非同步開發等內容,並以Android和Web兩個平台為背景,演示了Kotlin的實戰應用。
    全書共13章,分為4個部分:
    熱身篇——Kotlin基礎(第1?2章),簡單介紹了Kotlin設計哲學、生態及基礎語法,其中包括Kotlin與Scala、Java之間的關聯與對比,以及Kotlin的類型聲明的特殊性、val和var的使用、高階函數的使用、面向表達式編程的使用、字元串的定義與操作等內容;
    下水篇——Kotlin核心(第3?8章),深入介紹了面向對象、代數數據類型、模式匹配、類型系統、Lambda、集合、多態、擴展、元編程等Kotlin開發核心知識,這是本書的重點,其中涉及很多開發者特別關心的問題,比如多繼承問題、模式匹配問題、用代數數據類型抽象業務問題、泛型問題、反射問題等。
    潛入篇——Kotlin探索(第9?11章),探索Kotlin在設計模式、函數式編程、非同步和併發等編程領域的應用,其中包括對4大類設計模式、Typeclass實現、函數式通用結構設計、類型替代異常處理、共享資源控制、CQRS架構等重點內容的深入剖析;
    遨遊篇——Kotlin實戰(第12?13章),著重演示了Kotlin在Android和Web平台的實戰案例,其中涉及架構方式、單向數據流模型、解耦視圖導航、響應式編程、Spring 5響應式框架和編程等內容。

作者介紹
水滴技術團隊
    水滴技術團隊,核心成員來自阿里巴巴、淘寶,公司旗下的大數據SaaS類產品服務了Booking、阿里集團、小米集團、大疆創新、拍拍貸等幾十萬家企業,是微信的重點第三方合作產品。     推崇函數式編程,喜歡嘗試各種新的前後端技術。團隊在2015年就實現了業界領先的全非同步開發架構,該架構是基於fp Scala及微服務化的分散式系統。同時,水滴技術團隊還是國內外少有的pure fp技術團隊,採用了如Play! Framework、Akka、Cats等新潮的技術,並對JVM生態的一些編程語言有著較豐富的實戰經驗,當前主要為Scala、Kotlin社區輸出博客和開源項目。

目錄
前言
熱身篇  Kotlin基礎
  第1章  認識Kotlin
    1.1  Java的發展
      1.1.1  Java 8的探索
      1.1.2  Java未來的樣子
    1.2  Scala的百寶箱
      1.2.1  學術和工業的平衡
      1.2.2  複合但不複雜
      1.2.3  簡單卻不容易
    1.3  Kotlin—改良的Java
      1.3.1  Kotlin的實用主義
      1.3.2  更好的Java
      1.3.3  強大的生態
    1.4  本章小結
  第2章  基礎語法
    2.1  不一樣的類型聲明
      2.1.1  增強的類型推導
      2.1.2  聲明函數返回值類型
    2.2  val和var的使用規則
      2.2.1  val的含義:引用不可變
      2.2.2  優先使用val來避免副作用
      2.2.3  var的適用場景
    2.3  高階函數和Lambda
      2.3.1  抽象和高階函數
      2.3.2  實例:函數作為參數的需求
      2.3.3  函數的類型
      2.3.4  方法和成員引用
      2.3.5  匿名函數
      2.3.6  Lambda是語法糖
      2.3.7  函數、Lambda和閉包
      2.3.8  「柯里化」風格、擴展函數
    2.4  面向表達式編程
      2.4.1  表達式比語句更安全
      2.4.2  Unit類型:讓函數調用皆為表達式
      2.4.3  複合表達式:更好的表達力
      2.4.4  枚舉類和when表達式
      2.4.5  for循環和範圍表達式
      2.4.6  中綴表達式
    2.5  字元串的定義和操作
      2.5.1  定義原生字元串
      2.5.2  字元串模板
      2.5.3  字元串判等
    2.6  本章小結
下水篇  Kotlin核心
  第3章  面向對象
    3.1  類和構造方法
      3.1.1  Kotlin中的類及介面
      3.1.2  更簡潔地構造類的對象
      3.1.3  主從構造方法

    3.2  不同的訪問控制原則
      3.2.1  限制修飾符
      3.2.2  可見性修飾符
    3.3  解決多繼承問題
      3.3.1  騾子的多繼承困惑
      3.3.2  介面實現多繼承
      3.3.3  內部類解決多繼承問題的方案
      3.3.4  使用委託代替多繼承
    3.4  真正的數據類
      3.4.1  煩瑣的JavaBean
      3.4.2  用data class創建數據類
      3.4.3  copy、componentN與解構
      3.4.4  數據類的約定與使用
    3.5  從static到object
      3.5.1  什麼是伴生對象
      3.5.2  天生的單例:object
      3.5.3  object表達式
    3.6  本章小結
  第4章  代數數據類型和模式匹配
    4.1  代數數據類型
      4.1.1  從代數到類型
      4.1.2  計數
      4.1.3  積類型
      4.1.4  和類型與密封類
      4.1.5  構造代數數據類型
    4.2  模式匹配
      4.2.1  何為模式
      4.2.2  常見的模式
      4.2.3  處理嵌套表達式
      4.2.4  通過Scala找點靈感
      4.2.5  用when力挽狂瀾
    4.3  增強Kotlin的模式匹配
      4.3.1  類型測試/類型轉換
      4.3.2  面向對象的分解
      4.3.3  訪問者設計模式
      4.3.4  總結
    4.4  用代數數據類型來抽象業務
      4.4.1  從一個實際需求入手
      4.4.2  糟糕的設計
      4.4.3  利用ADT
      4.4.4  更高層次的抽象
    4.5  本章總結
  第5章  類型系統
    5.1  null引用:10億美元的錯誤
      5.1.1  null做了哪些惡
      5.1.2  如何解決NPE問題
    5.2  可空類型
      5.2.1  Java 8中的Optional
      5.2.2  Kotlin的可空類型
      5.2.3  類型檢查

      5.2.4  類型智能轉換
    5.3  比Java更面向對象的設計
      5.3.1  Any:非空類型的根類型
      5.3.2  Any?:所有類型的根類型
      5.3.3  Nothing與Nothing?
      5.3.4  自動裝箱與拆箱
      5.3.5  「新」的數組類型
    5.4  泛型:讓類型更加安全
      5.4.1  泛型:類型安全的利刃
      5.4.2  如何在Kotlin中使用泛型
      5.4.3  類型約束:設定類型上界
    5.5  泛型的背後:類型擦除
      5.5.1  Java為什麼無法聲明一個泛型數組
      5.5.2  向後兼容的罪
      5.5.3  類型擦除的矛盾
      5.5.4  使用內聯函數獲取泛型
    5.6  打破泛型不變
      5.6.1  為什麼List不能賦值給List
      5.6.2  一個支持協變的List
      5.6.3  一個支持逆變的Comparator
      5.6.4  協變和逆變
    5.7  本章小結
  第6章  Lambda和集合
    6.1  Lambda簡化表達
      6.1.1  調用Java的函數式介面
      6.1.2  帶接收者的Lambda
      6.1.3  with和apply
    6.2  集合的高階函數API
      6.2.1  以簡馭繁:map
      6.2.2  對集合進行篩選:filter、count
      6.2.3  別樣的求和方式:sumBy、sum、fold、reduce
      6.2.4  根據學生性別進行分組:groupBy
      6.2.5  扁平化—處理嵌套集合:flatMap、flatten
    6.3  集合庫的設計
      6.3.1  集合的繼承關係
      6.3.2  可變集合與只讀集合
    6.4  惰性集合
      6.4.1  通過序列提高效率
      6.4.2  序列的操作方式
      6.4.3  序列可以是無限的
      6.4.4  序列與Java 8 Stream對比
    6.5  內聯函數
      6.5.1  優化Lambda開銷
      6.5.2  內聯函數具體語法
      6.5.3  noinline:避免參數被內聯
      6.5.4  非局部返回
      6.5.5  crossinline
      6.5.6  具體化參數類型
    6.6  本章小結
  第7章  多態和擴展

    7.1  多態的不同方式
      7.1.1  子類型多態
      7.1.2  參數多態
      7.1.3  對第三方類進行擴展
      7.1.4  特設多態與運算符重載
    7.2  擴展:為別的類添加方法、屬性
      7.2.1  擴展與開放封閉原則
      7.2.2  使用擴展函數、屬性
      7.2.3  擴展的特殊情況
      7.2.4  標準庫中的擴展函數:run、let、also、takeIf
    7.3  Android中的擴展應用
      7.3.1  優化Snackbar
      7.3.2  用擴展函數封裝Utils
      7.3.3  解決煩人的findViewById
    7.4  擴展不是萬能的
      7.4.1  調度方式對擴展函數的影響
      7.4.2  被濫用的擴展函數
    7.5  本章小結
  第8章  元編程
    8.1  程序和數據
      8.1.1  什麼是元編程
      8.1.2  常見的元編程技術
    8.2  Kotlin的反射
      8.2.1  Kotlin和Java反射
      8.2.2  Kotlin的KClass
      8.2.3  Kotlin的KCallable
      8.2.4  獲取參數信息
    8.3  Kotlin的註解
      8.3.1  無處不在的註解
      8.3.2  精確控制註解的位置
      8.3.3  獲取註解信息
    8.4  本章小結
潛入篇  Kotlin探索
  第9章  設計模式
    9.1  創建型模式
      9.1.1  伴生對象增強工廠模式
      9.1.2  內聯函數簡化抽象工廠
      9.1.3  用具名可選參數而不是構建者模式
    9.2  行為型模式
      9.2.1  Kotlin中的觀察者模式
      9.2.2  高階函數簡化策略模式、模板方法模式
      9.2.3  運算符重載和迭代器模式
      9.2.4  用偏函數實現責任鏈模式
      9.2.5  ADT實現狀態模式
    9.3  結構型模式
      9.3.1  裝飾者模式:用類委託減少樣板代碼
      9.3.2  通過擴展代替裝飾者
    9.4  本章小結
  第10章  函數式編程
    10.1  函數式編程的特徵

      10.1.1  函數式語言之爭
      10.1.2  純函數與引用透明性
      10.1.3  代換模型與惰性求值
    10.2  實現Typeclass
      10.2.1  高階類型:用類型構造新類型
      10.2.2  高階類型和Typeclass
      10.2.3  用擴展方法實現Typeclass
      10.2.4  Typeclass設計常見功能
    10.3  函數式通用結構設計
      10.3.1  Monoid
      10.3.2  Monad
      10.3.3  Monad組合副作用
    10.4  類型代替異常處理錯誤
      10.4.1  Option與OptionT
      10.4.2  Either與EitherT
    10.5  本章小結
  第11章  非同步和併發
    11.1  同步到非同步
      11.1.1  同步與阻塞的代價
      11.1.2  利用非同步非阻塞來提高效率
      11.1.3  回調地獄
    11.2  Kotlin的Coroutine
      11.2.1  多線程一定優於單線程嗎
      11.2.2  協程:一個更輕量級的「線程」
      11.2.3  合理地使用協程
      11.2.4  用同步方式寫非同步代碼
    11.3  共享資源控制
      11.3.1  鎖模式
      11.3.2  Actor:有狀態的並行計算單元
    11.4  CQRS架構
      11.4.1  Event Sourcing事件溯源—記錄對象操作軌跡
      11.4.2  Kotlin with Akka Persistence-Actor
    11.5  本章小結
遨遊篇  Kotlin實戰
  第12章  基於Kotlin的Android架構
    12.1  架構方式的演變
      12.1.1  經典的MVC問題
      12.1.2  MVP
      12.1.3  MVVM
    12.2  單向數據流模型
      12.2.1  Redux
      12.2.2  單向數據流的優勢
    12.3  ReKotlin
      12.3.1  初見ReKotlin
      12.3.2  創建基於ReKotlin的項目
    12.4  解耦視圖導航
      12.4.1  傳統導航的問題
      12.4.2  rekotlin-router
    12.5  本章小結
  第13章  開發響應式Web應用

    13.1  響應式編程的關鍵:非阻塞非同步編程模型
      13.1.1  使用CompletableFuture實現非同步非阻塞
      13.1.2  使用RxKotlin進行響應式編程
      13.1.3  響應式Web編程框架
    13.2  Spring 5:響應式Web框架
      13.2.1  支持響應式編程
      13.2.2  適配Kotlin
      13.2.3  函數式路由
      13.2.4  非同步資料庫驅動
    13.3  Spring 5響應式編程實戰
    13.4  本章小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032