新書推薦:
《
一个人·谁也不是·十万人(诺贝尔文学奖得主反思自我的巅峰之作)
》
售價:NT$
250.0
《
重写晚明史(全5册 精装)
》
售價:NT$
3560.0
《
汉末晋初之际政治研究
》
售價:NT$
602.0
《
强者破局:资治通鉴成事之道
》
售價:NT$
367.0
《
鸣沙丛书·鼎革:南北议和与清帝退位
》
售價:NT$
551.0
《
从康德到黑格尔的发展:兼论宗教哲学(英国观念论名著译丛)
》
售價:NT$
275.0
《
突破不可能:用特工思维提升领导力
》
售價:NT$
352.0
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:NT$
1010.0
|
編輯推薦: |
Java到Kotlin的代码重构不是一蹴而就的。如果你是一名有经验的Java开发人员,并尝试过Kotlin语言,则可能用不了多久就能步入正轨。 你会发现,Kotlin的“做事方式”有所不同——可空性很重要,集合是不同的,类默认是final。Kotlin的功能更强,意味着什么呢?它将如何改变编程方式?那些仍然需要支持的Java代码怎么办? 本书作者在2015年第一次接触将Java重构为Kotlin,此后他们帮助许多团队和个人致力于此。本书介绍如何从Java过渡到Kotlin,主要关注代码,每章都阐述了这种过渡的一个方面,考察了典型Java项目可以改进的方面,比如从Optional到nullable,从Bean到值,以及从开放类到密封类。每章首先解释关键概念,然后展示如何在保持互操作性的前提下,逐步且安全地将生产型Java代码重构为惯用的Kotlin代码,由此产生的代码更简单、更有表现力,也更容易更改。 在本书结束时,你将有信心将Java代码重构为Kotlin代码,从头开始编写Kotlin代码,并随着时间的推移管理一个混合语言代码库。
|
內容簡介: |
本书讲述了如何从Java过渡到Kotlin,主要关注代码,每章都阐述了从Java过渡到Kotlin的一个方面,考察了典型Java项目在这个过程中可以改进的方面。比如,从Optional到nullable,从Bean到值,从开放类到密封类。每章首先解释关键概念,然后展示如何在保持互操作性的前提下,逐步且安全地将生产型Java代码重构为惯用的Kotlin代码,由此产生的代码更简单、更有表现力,也更容易修改。在本书结束时,你将有信心将Java代码重构为Kotlin代码,从头开始编写Kotlin代码,并随着时间的推移管理一个混合语言代码库。
|
目錄:
|
目录前言1第1章 引言91.1 编程语言的“纹理”91.2 Java编程风格的主观历史121.3 Kotlin的“纹理”161.4 重构为Kotlin181.5 我们要做什么201.6 启程20第2章 从Java项目到Kotlin项目212.1 策略212.2 在Java构建中添加对Kotlin的支持222.3 继续前进 26第3章 从Java类到Kotlin类273.1 一个简单的值类型273.2 数据类的局限性333.3 继续前进38第4章 从Optional到nullable394.1 表示缺失394.2 从Optional重构为nullable414.3 重构为惯用的Kotlin代码484.4 继续前进54第5章 从Bean到值555.1 Bean555.2 值565.3 为什么值类型更受欢迎565.4 将Bean重构为值575.5 继续前进64第6章 从Java集合到Kotlin集合656.1 Java集合656.2 Kotlin集合686.3 将Java集合重构为Kotlin集合716.4 继续前进79第7章 从action到calculation807.1 函数807.2 calculation817.3 action827.4 为什么要关注action和calculation837.5 为什么选择calculation847.6 将action重构为calculation847.7 继续前进97第8章 从静态方法到顶层函数988.1 Java 中的静态方法988.2 Kotlin顶层函数、对象和伴生对象998.3 将静态方法重构为顶层函数1008.4 移到顶层1048.5 Kotlin化1058.6 继续前进107第9章 从多表达式函数到单表达式函数 1089.1 第1种方式:内联1109.2 第2种方式:引入函数1119.3 第3种方式:使用let块1159.4 第4种方式:后退一步1179.5 继续前进120第10章 从函数到扩展函数12110.1 函数和方法12110.2 扩展函数12310.3 扩展和函数类型12410.4 扩展属性12510.5 类型转换12510.6 可空参数12710.7 可空接收器12810.8 泛型13010.9 作为方法的扩展函数13110.10 重构为扩展函数13110.11 继续前进145第11章 从方法到属性14611.1 字段、访问器和属性14611.2 如何选择15011.3 可变属性15111.4 重构为属性15211.5 继续前进156第12章 从函数到运算符15712.1 基础类:Money 15712.2 添加用户定义的运算符15912.3 从现有Kotlin代码中调用运算符16012.4 现有Java类的运算符16212.5 表示值的约定 16312.6 继续前进166第13章 从流到可迭代对象再到序列16713.1 Java流16713.2 Kotlin可迭代对象16913.3 Kotlin序列17013.4 多重迭代17113.5 在流、可迭代对象和序列之间进行选择17413.6 代数变换17513.7 将流重构为可迭代对象和序列17813.8 继续前进190第14章 从可累积对象到转换对象19114.1 使用累加器进行参数计算19114.2 重构为基于不可变数据的函数19514.3 再来一次20114.4 丰富所发现的抽象20414.5 继续前进206第15章 从封装集合到类型别名20715.1 组合领域集合20915.2 具有其他属性的集合21015.3 重构封装集合21015.4 继续前进221第16章 从接口到函数22216.1 面向对象的封装22316.2 函数式封装22616.3 Java中的函数类型22916.4 混合和匹配23116.5 面向对象和函数式的对比23516.6 耦合23816.7 面向对象还是函数式23916.8 Java的遗留问题24216.9 可追溯性24216.10 将接口重构为函数24316.11 继续前进249第17章 从Mock到Map25017.1 用Map替代Mock25217.2 我们真的摆脱了Mock吗25717.3 继续前进260第18章 从开放类到密封类26118.1 多态性还是密封类26418.2 将接口转换为密封类26518.3 继续前进272第19章 从Throwing到Returning27319.1 异常前的错误处理27419.2 异常的错误处理27619.3 Java 和受检异常27619.4 Kotlin和异常27819.5 超越异常:函数式错误处理27819.6 Kotlin 中的错误处理28119.7 将异常重构为错误28219.8 更多修复29619.9 层级30219.10 继续前进304第20章 从执行I/O操作到传递数据30620.1 监听测试30620.2 从I/O到数据30820.3 高效写入31320.4 高效读取31620.5 继续前进320第21章 从异常到值32121.1 识别可能出错的地方32121.2 表示错误32821.3 I/O错误33421.4 继续前进336第22章 从类到函数33722.1 验收测试33722.2 单元测试34122.3 标题34522.4 不同的字段分隔符35322.5 序列35922.6 从文件中读取36422.7 与Commons CSV比较36922.8 继续前进374第23章 继续旅程37523.1 纹理37523.2 函数式思维37623.3 简单设计37723.4 函数式编程和文本推理37823.5 重构37823.6 重构和函数式思维379参考文献380
|
|