美文网首页
idea kotlin gradle 实际开发的优点

idea kotlin gradle 实际开发的优点

作者: 飘渺55 | 来源:发表于2019-08-16 15:15 被阅读0次

以下是在实际开发过程中与eclipse java maven三者的对比所体会的.

idea
1 界面美观

这个就仁者见仁智者见智.

2 不卡

曾经在用eclipse的时候, 有很多次写代码的时候就卡死了, 不得不关掉再重新打开. 而在用idea的时候死没有出现过这种情况. 也可能是打开一个idea只能打开一个项目,而eclipse是打开一个工作空间.

3 测试方便

在idea中写main方法或junit测试的时候,直接在旁边就有个运行按钮, 而eclipse一般是, 单击方法名,右键 run juin test, 虽然可以设置快捷键, 但是这已经成为了习惯.


image.png
4 可以定义项目模板

比如我在架构2.0 的base项目, 就把他存储为模板, 每一次开发新项目时以这个模板为基础创建即可.


image.png
5 代码提醒智能

这个就体现在写代码的方方面面 只能在实际写代码的过程中多体会.

kotlin
1 去掉分号 去掉分号 去掉分号, 去掉new 去掉new 去掉new 重要的事说三遍.

每行代码末尾不需要分号,新建每个对象不需要new.
不要小看这个分号和new, 不仅是可以少敲很多下键盘, 关键是这个分号和new 真的没什么必用.
这也足以说明kotlin致简的设计思想, 能省略的尽量省(分号, new, lambda的括号...) 不能省略的就默认自带(单例, getter, setter,it...)
我当时学kotlin的时候就深深的喜欢上这个语言了, 甚至那时玩塞尔达的时候给我第一匹马取的名字就叫kotlin.

2 单文件可以写多个类

这也是把java换成kotlin最根本的原因, 因为随着项目的发展类越来越多, 查找一个类都已经变的很麻烦, 我不喜欢用自带的搜索, 习惯了从包的一级一级点下去, 很多类就只有几行代码, 而很多类又是相关的, 完全是可以放到一起的. 这也是架构2.0的由来.

3 扩展函数和属性

在java中写日志的方式

一 在每个类中添加logger


image.png

二 使用lombok


image.png

第一种方法就不说了, 太麻烦, 第二种方法, 稍微好一些, 只是需要在每一个类上加一个注解.
而在kotlin中, 你只需要全局定义一个扩展属性, 那么每一个类都会自带一个log变量.
kotlin的Any对象,对应java 的Object对象, 所有的类都是继承Any对象等同于java中所有的父类都是Object.


image.png

在java中打印的方式


image.png

kotlin中


image.png
虽然只是少了11个字符, 但是真的看着要舒服很多, 因为简洁.

接口的输入输出都是json字符串, 通常需要打印json串来看我们的接口是否正确.

在java中打印对象的json串


image.png

而在kotlIn中


image.png

有了扩展函数, 相当于每一个对象都自带了println方法, pj (pring json) 方法和toJsonString属性.
调试测试有了翻天覆地的变化.
只要是你经常用的都可以写成扩展函数和方法.


image.png
4 可以定义全局属性和方法 不需要有类

这其实是对java中各种各样的Util的优化.
在java里的工具类是这样的


image.png

而kotlIn中只有一个Util文件即可


image.png

因为工具类通常是调它的方法,根本不需要类名,直接调用方法即可.


image.png
5 lambda表达式
image.png

省略了参数, 有默认参数it , 新增了各种各样常用的方法, list map set 的构造非常方便. 也就是说它会在方方面面减少你的代码量.


image.png
6 对象及带接收者的lambda with apply let run

不需要为对象的每一个属性添加get, set方法. 再也看不到a.getXXX(), a.setXXX() 这样啰嗦的语法了.

页面传的经纬度的格式是度分秒数组, 自动转换成小数的度. 插入数据库后, 从数据库取的小数的度会自动转换成度分秒返回给前端显示.完全不需要在业务代码中写转换逻辑.


image.png

构造函数可以写默认值, 参数也不需要按照顺序.
构造函数和apply, run 等等的结合 ,实在是太方便了, 以前烦人的建对象和给对象属性赋值在都没有了.
与spring自动注入的结合也方便多了.


image.png
image.png image.png
7 字符串模板和三引号运算符

字符串模板, 主要应用在日志信息里.再也不需要用{}预留位置,也不需要担心参数写的不对应了.


image.png

三引号运算符就很强大了, 再配合mybatis的script 直接就可以去掉mybatis的xml.


image.png
8 其他比较常用的 还有 单例 ?, !!, ?:, when, if else, 等运算符.
gradle
1 配置使用代码, 扩展性强, 也通俗易懂.
2 自定义任务简单. 比如远程打包部署,自动写打包时间.
3 打包效率高.

还是一样我并不会推荐大家使用这些, 我只是把我在开发中的感受写下来.毕竟我只写了优点, 缺点就是如果没有很强的目的性是很难坚持学下去的(主要还是新事物的抵触心理). idea和gradle在我没有遇到kotlin的时候, 就已经尝试过了几次,最终都是放弃而还是继续使用eclipse和maven. 就算学好了想在实际开发中应用也不是易事.我是由于我们公司后台开发比较少,也不是很忙,大家有时间去学习,最终应用成功.

相关文章

网友评论

      本文标题:idea kotlin gradle 实际开发的优点

      本文链接:https://www.haomeiwen.com/subject/qoaxsctx.html