极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:26
登录|注册

从架构师视角看,是否用Kotlin做服务端开发?

讲述:丁婵大小:7.46M时长:05:26
来源:OSCHINA 社区
自从被谷歌钦定为 Android 开发首选语言之后,Kotlin 逐渐进入大众视野。那么,从架构师视角看,是否该用 Kotlin 做服务端开发?选择 Kotlin,又需要考虑哪些问题呢?日前,开源中国社区的一篇文章对上述问题作出了解答。以下是重点内容。

一、选择 Kotlin 的理由

Kotlin 能在众多编程语言中脱颖而出并被谷歌相中,自然有其独到之处。具体来看,选择 Kotlin 有以下四大理由:

1. 与 Java 近乎完美地兼容

Kotlin 是一个基于 JVM 的编程语言,它与 Java 是 100% 共通的,彼此可以进行相互的调用。

2. 更易写出可靠的代码

Kotlin 通过强制非空校验机制,规避了 Java 最容易犯的 NPE 问题,并且在不额外增加判空代码的情况下,很容易写出空安全的代码。

3. 简洁高效,代码量可减少逾 50%

Kotlin 默认参数、数据类、主构造函数的组合使用,可以节省 90% 以上的实体声明代码,且表达能力更清晰、可维护性更强。此外,Kotlin 还拥有丰富的集合操作,它几乎包含了现在语言的所有优良特征,能让业务代码节省 50% 以上。

4. Spring 的加成

Spring-Boot 已经将 Kotlin 提升为仅次于 Java 的推荐语言,足以见得 Spring 对 Kotlin 的重视。而且 Kotlin 天生对 Spring 友好,可以预见,Kotlin 未来在服务器开发领域的地位会越来越高。

二、选择 Kotlin 需要考虑的问题

1. IDE& 工具链

Kotlin 首选开发工具非 JetBrains 公司的 IDEA 莫属,此外,Eclipse+Kotlin Plugin 也是个不错的选择,不过 Eclipse 的 Kotlin 插件存在两个问题:
Debug 不能自动识别 Kotlin 的 Main 方法,需要手工填入 Class 名;
Debug 不支持 Kotlin 编译的 allOpen 选项,所有 Bean 和 Configuration 类型须显示声明为 Open。
在 IDE 之外,Kotlin 能完美地运行于 Maven 和 Gradle 之上,CI/CD 工具 Jenkins 自然也不在话下,在 JUnit、Swagger 等 Java 原有工具链上运行起来也都没有差别。不过,能否在字节码和 JAR 包之外的各种工具上运行,理论上并不取决于项目代码是 Kotlin 还是 Java,可能最大的问题在于,原有的代码检查工具不能再继承使用。

2. 编码规范

Kotlin 放开了很多限制,如:
可以声明全局变量和全局方法;
一个文件可以有多个类;
可以通过扩展来为已有类增加新方法。
放开这些限制能够带来很多便利,比如,同一领域的实体可以声明在一个文件中,可以很方便地扩展已有类库等等。
与此同时,还可以针对 Kotlin 项目制定一些编码规范,比如:
只有数据实体可以定义在同一个文件中;
类型扩展应以 Extensions 后缀结尾,如 StringExtensions;
业务逻辑不应出现在全局方法中,应按照一类一文件的方式组织;
业务逻辑的扩展,不应使用 Kotlin 类型扩展机制,应使用接口、抽象类、子类。

3. 人员技能

对 Java 开发人员来说,学习 Kotlin 并不是什么困难的事情,但选择哪种编程语言并不是项目成败的决定性因素,开发者们才是。可以先让项目组的核心成员去了解下 Kotlin,然后再做决定。想快速上手 Kotlin 的话,建议从 Koans 开始,如果你想要更深入地掌握 Kotlin,可以阅读下 Kotlin 官方文档

4. 依赖大小

在 Spring 项目中使用 Kotlin,会使依赖增加 4.18MB 左右。不过这个问题因项目实际情况而异,具体情况具体分析。

5. BenchMark

对 Kotlin 做 BenchMark 性能测试并不困难,简单来说大致有三步:
步骤 1:使用 Maven 生成 Kotlin BenchMark 工程。
步骤 2:编写测试代码。
步骤 3:编译 & 运行。
性能测试详情可以参考 OpenJDK:jmh 官网,以及 GitHub 上的 Kotlin-Benchmarks 项目。

三、哪些项目类型适合使用 Kotlin?

如果是小型或验证型项目的话,建议使用 Kotlin。如果是微服务项目的话,建议先局部试点,逐步完善编码规范和人员技能。如果是大型单体项目,核心团队能力较强,而且很稳定的话,可以使用 Kotlin,反之不建议使用。此外,现有 Java 项目,或者公共组件(除专门用于 Kotlin 的组件外)不建议使用 Kotlin。
以上就是今天的内容,希望对你有所帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • Kian.Lee
    已实践一年,体验非常好👌🏻
    2
    3
收起评论
大纲
固定大纲
一、选择 Kotlin 的理由
1. 与 Java 近乎完美地兼容
2. 更易写出可靠的代码
3. 简洁高效,代码量可减少逾 50%
4. Spring 的加成
二、选择 Kotlin 需要考虑的问题
1. IDE& 工具链
2. 编码规范
3. 人员技能
4. 依赖大小
5. BenchMark
三、哪些项目类型适合使用 Kotlin?
显示
设置
留言
1
收藏
39
沉浸
阅读
分享
手机端
快捷键
回顶部