事情是这样子的
目前大三在在公司实习,服务端研发,部门的项目目前接触到的都是 Java 和 Kotlin 混用,而且使用 Kotlin 居多
今天老大丢给我一个线上的小缺陷,要我查出来修复,Kotlin 的代码看的那叫一个酸爽
数据的处理流程很长,经常是一个方法里面异步调用完一个微服务拿到流,直接 return 一个几十行的 lambda 表达式,主要处理逻辑放在 return 的 lambda 表达式里面。不知道说没说清楚,反正看了一天都给我整懵了,感觉和之前自己写的 Java 方法有很大出入(一般都是在方法体里面完成处理逻辑嘛,然后 return 返回处理后结果)
目前想请教一下各位大虾有没有快速入门 kt 的建议
然后还有个疑惑,作为 Java 小白,未来是想往 Java 方向发展的,目前也在准备秋招,实习的话因为公司需要还是会学习 Kotlin 的一些基础用法,但是如果重心放在 Kotlin 会不会不太明智
|  |      1kidlj      2021-07-20 23:13:22 +08:00 都学。等你工作几年多接触一些语言就会发现,别说 Kotlin 和 Java 了,就是 Swift 和 Java 也没大区别。 | 
|  |      2itechify PRO 哈哈哈哈想起刚刚毕业看到大佬写的一个方法最后 return 一句 lambda 表达式 20 来行,震惊一整年。其实也没有很复杂后来熟练了就 stream 的 flatMap,map,filter,peek,collect 而已 | 
|      3Leviathann      2021-07-20 23:14:50 +08:00 stream api 用的比较习惯的话应该还行吧 kotlin 标准库里各种工具函数和 5 个作用域方法真的挺爽的 | 
|  |      4502Chef OP @oneisall8955 对对对就是这玩意,我太菜了哈哈哈哈哈,得好好学学 @kidlj 感谢老哥的建议 @Leviathann 之前自己练习的项目基本上来说没有用过 stream,接触到的也是一些基础的 filter 、map,这一块还得好好练练,谢谢建议 | 
|      5charlie21      2021-07-20 23:21:50 +08:00 如果所增加的宝贵 debug 技能都是在体会何为历史遗留问题的过程中获取的,那么它的可迁移度就是一个未知数了 | 
|  |      6echo1937      2021-07-21 00:22:57 +08:00 via iPhone @oneisall8955 我自己也写 20 几行的 stream api,自己也觉得很不利于调试和理解,但是一想这个用普通的法子来写,一样也是不好理解,一层套一层循环真的要死人。 | 
|      7Leviathann      2021-07-21 00:30:52 +08:00 @huyujievip 平时 crud 几乎没写过 for,都是 stream,除了一些要提前 return 的地方 刚开始的话多写就习惯了 | 
|  |      8HarryQu      2021-07-21 00:32:16 +08:00 Kotlin 的书籍我看了两本: 1. 《 Kotlin 核心编程》 - 水滴技术团队 2. 《 Kotlin 从入门到进阶实战》 两本书都可以快速入门,但你细看这两本书或者看第三方博客,你就会发现别人在介绍 Kotlin 的时候,都会或多或少去和 Java 做对比。会将 Kotlin 编译为字节码,再反编译查看 Java 的实现。 所以 Java 是基础,Java 掌握的基础越好,Kotlin 学习的越快。 如果你 Java 水平有欠缺的话,Kotlin 你也仅仅局限在调用 API 的角度。 Kotlin 号称 100% 兼容 Java,所以你要把 Kotlin 当做一面镜子,看到 Kotlin 花里胡哨的语法糖,你要反过来想想 Java 的实现。看到啰嗦的 Java 代码,你要想到简洁的 Kotlin 写法。这样无论 Java 水平还是 Kotlin 水平都能快速进步。 | 
|  |      9aabbcc112233      2021-07-21 00:46:52 +08:00 via Android 我现在项目也是混写,但是非常不想用 java 了,能用 kt 就 kt 。日常还要写 dart,偶尔要写 js 。说实话,有点混乱了,经常需要搜索。 | 
|  |      10502Chef OP | 
|  |      11wellsc      2021-07-21 06:50:34 +08:00 via iPhone 语言不就是工具 | 
|  |      12araraloren      2021-07-21 09:26:06 +08:00 @wellsc 然后呢.  那不学就能会吗? | 
|  |      13wellsc      2021-07-21 09:37:37 +08:00 @araraloren 不学吗?谁说的呢 | 
|      14CallMeReznov      2021-07-21 09:49:21 +08:00 早点接受一个事实,那就是:卷起来. | 
|      15kidcats      2021-07-21 09:55:58 +08:00 哪个公司,插个眼,回头去写 kotlin | 
|      16wzzzx      2021-07-21 09:56:27 +08:00 语言只是工具~ | 
|      17Cy1      2021-07-21 10:20:04 +08:00 我觉得你只是单纯的对 lambda 和 stream api 不熟练而已,跟 Kotlin 没关系。 顺便一说,我都怀疑你是另一个我。我当时也是实习的时候开始学 kt, 而且公司也 Java 和 Kt 混编,旧代码 Java 为主,新代码 Kt 为主。 其实 Kt 并不影响你向 Java 的方法,在我看来,Kt 就是 Java 一个封装的比较好的包而已。 | 
|  |      18wellsc      2021-07-21 10:44:36 +08:00 @CallMeReznov 用语法糖更多的 kotlin 和卷有几分钱关系呢,别鹦鹉学舌好吧 | 
|      19junbaor      2021-07-21 11:14:53 +08:00 这才是 jdk8 普及以后的真实样子 | 
|      20pigspy      2021-07-21 11:48:41 +08:00 via Android 这种做法我觉得不太好,流的可读性并不高 | 
|  |      21502Chef OP | 
|  |      22zmxnv123      2021-07-21 12:42:12 +08:00 via iPhone Java +kotlin 可以了 要是被别人甩过来一堆 cpp 才是真的艹 | 
|      23MidCoder      2021-07-21 13:34:17 +08:00 来我们这里,100%面向 java 开发 | 
|  |      24speedofstephen      2021-07-21 13:38:14 +08:00  1 《写给大忙人看的 Java8 》我觉得这本书对 lambda 表达式的讲解蛮详细的 | 
|  |      26502Chef OP @speedofstephen 谢谢建议 | 
|  |      27HarryQu      2021-07-21 15:29:17 +08:00 | 
|  |      28Ionian      2021-07-21 15:41:09 +08:00 楼主哪个厂,服务端好像很少见到用 kotlin 的 | 
|      29MidCoder      2021-07-21 17:43:03 +08:00 @huyujievip  加 VX:bieber-cn | 
|  |      30iovekkk      2021-07-21 17:52:20 +08:00 讲真的这是好事,能在工作中实践新技术是非常好的,说明公司技术氛围也好 不像我们公司,保守求稳,什么新技术都不用 | 
|  |      31EscYezi      2021-07-21 18:14:10 +08:00 via iPhone 我也想用 kotlin🌚 | 
|  |      32502Chef OP | 
|  |      33sprite82      2021-07-22 14:16:23 +08:00 又看到语言工具学说,一门语言虽然基础部分 1 周之内就能学会,但是相关的配套工具,类库都要掌握,如果语言有不同的特性还要考虑内在实现 优化方向等 。人的精力是有限的,这些都是潜在的时间、精力成本 | 
|  |      34zoharSoul      2021-07-22 16:41:44 +08:00 函数式就这样 | 
|  |      35unbright      2021-08-04 10:59:20 +08:00 还有这好事 | 
|      36CallMeReznov      2021-08-22 13:43:28 +08:00 @wellsc #18  我的意思是让楼主两门都学努力加强自己加入"卷"的大军,属于一种半开玩笑的激励话. 我是不懂为什么到你这里成了你这种理解. 更不理解竟然还被人单独 @出来说. 哥们戾气有点重啊! |