从架构师视角看,是否用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:编译 & 运行。
三、哪些项目类型适合使用 Kotlin?
如果是小型或验证型项目的话,建议使用 Kotlin。如果是微服务项目的话,建议先局部试点,逐步完善编码规范和人员技能。如果是大型单体项目,核心团队能力较强,而且很稳定的话,可以使用 Kotlin,反之不建议使用。此外,现有 Java 项目,或者公共组件(除专门用于 Kotlin 的组件外)不建议使用 Kotlin。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- Kian.Lee已实践一年,体验非常好👌🏻23
收起评论