Pantheoon
2022-12-14 12:51:57 +08:00
上家公司用的 kotlin 做的后端,kotlin 本身就是基于 java 的语言,类似可以理解成 java 的二次封装,将 java 很多没有的语言特性给封了进去,所以在生态上,它是和 java 能统一的,java 能用的它都能用,选择 kotlin 其实就是选择了它的语法糖,个人感觉 kotlin 的优势如下:
1.更强大的函数式编程,比如拓展函数,中缀函数,这些使用起来确实比 java 的伪函数式编程顺手很多,而且它的使用习惯也更贴近一个人正常的思考方式,当然也存在它的缺点,如果对函数式编程一点都不懂的,或者用的很少的同学会有学习成本.
2.空指针处理,这点我特地把它单独拿出来说,可以说是 kotlin 很大的一个特性,java 当然也有空指针处理,但是对比 kotlin 简直差的太远
3.文件组织方式,相对于 java9 里面用模块来组织文件,kotlin 用 kt 文件,这样的话相同模块的一些功能可以全部写到 kt 文件里面,会减少很多 java 类的出现,最最最常见的就是 dto 和 vo 这些数据 model,其实单独写一个类很没有必要,组织进 kt 文件,会让项目看起来更简洁也更容易维护
4.协程,这个东西对于后端来说就是一个线程池,只要把方法写进 launch 里面就可以异步,但是对于客户端的同学来说,帮助会更大,因为涉及到线程切换的问题,kotlin 已经完全封装好了
5.其他一些特性,比如密封类,数据类等等,都在实际项目中用的很多,尤其是数据类,基本就是用来写 dto 和 vo
以上提到的一些特性,java 也都能处理,比如函数式编程,它也可以通过自定义接口的方式来实现,协程也可以用线程池来搞,当然它都处理回调的问题,数据类其实就是一个普通的 class,所以当有一个给你封装好了的语言,能够优雅的解决这些问题,为何不尝试以下呢?唯一的问题就是学习成本,kotlin 其实学习成本并不高,难以理解的也就函数式编程和协程,其他特性都是一眼会的那种,建议真的可以尝试下.最后说一句,jetbrain 出品,必属精品