首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin

用户在使用 Room 时仅需要通过 DAO set/get 对象即可。 不过它也有一些问题。...例如:查询操作与按条件的更新和删除操作,用户仍然需要编写 SQL 语句,这些 SQL 语句虽然 Android Studio 提供了高亮,但是仍然是以字符串的形式存在,不受编译器静态类型检查。...2.2.2 Exposed Kotlin在正式发布时有一个主力卖点就是可以用来构建开发者自己的DSL。Exposed(参考链接 5)是当时官方宣传DSL的范例项目之一。...以当年的角度来看,Exposed 的 API 算是相当惊艳。...但总的的来说 Exposed 的设计思路的方向非常棒,使用 Kotlin 语法构建自己的 DSL API,对用户来说使用方便,且只要充分利用其潜力,API 也能设计的非常优雅。

1.6K40
您找到你想要的搜索结果了吗?
是的
没有找到

又一巨头放弃 Java ,拥抱 Kotlin

Meta 的 Android 代码库总共包含有超过 1000 万行的 Kotlin 代码。作为此次迁移的一部分,Meta 透露其也正在开源用于操作 Kotlin 代码的各种示例和实用程序。...在一些复杂的情况下,Kotlin 的空检查省略还可能漏掉空值通过,进而引发空指针异常。例如,如果 Kotlin 代码调用由 Java 接口实现的 Kotlin 接口,就会发生这种情况。...而在尝试为现有应用程序引入 Kotlin 时,Meta 也遇到了很多麻烦,例如需要更新 Redex 以支持 Java 不生成的字节码模式。...例如代码审查或 wiki 中缺少 Kotlin 语法高亮显示。“我们更新了我们正在使用的库 Pygments,以使体验与 Java 相媲美。我们更新了一些内部代码修改工具,以便能够处理 Kotlin。...我们的代码库中已经有超过 1000 万行 Kotlin 代码,而且 Meta 的大多数 Android 开发人员现在都在编写 Kotlin 代码”。平均而言,此次迁移使代码行数减少了 11%。

69430

Duolingo 和 Google Home 的 Kotlin 之旅

Duolingo 是世界上最受欢迎的语言学习平台之一,也是 Google Play 上下载量最高的免费教育应用之一 (突破 2 亿),为超过 3 亿名学习者提供可免费使用的语言学习服务。...随着应用自身的演进,Duolingo 的 Android 开发者发现代码库的代码行数每年增长 46% 之多!为彻底解决这个问题,团队最终一致决定从 Java 迁移至 Kotlin。...该团队中经验丰富的 Kotlin 开发者担任 "Kotlin 检查员" 角色,并分享代码审核方面的最佳做法,最终该团队的所有 Android 开发者都成为了 Kotlin 专家。...他们发现, 将 Java 文件转换为 Kotlin 文件后,代码行数平均减少了 30%,某些情况下高达 90% 。 ?...此外,还可以自动生成并及时更新均衡和解析方法。使用 Kotlin 中提供的实用方法,还可以简化许多嵌套循环和过滤检查。

1.2K20

又一巨头从Java迁移到Kotlin:关键应用全部开始切换、安卓代码库超过千万行Kotlin代码

例如,团队得更新 Redex 才能支持 Java 无法生成的字节码模式。另外,其使用的某些内部库要求在编译期间进行字节码转换来获取更好的性能。...例如,代码审查和 wiki 工具无法对 Kotlin 语法进行高亮显示。“我们还更新了之前使用的 Pygments 库,确保其体验与处理 Java 代码时一致。...我们更新了一些内部代码修改工具,使其能够支持 Kotlin。我们也构建了 Ktfmt,一款基于 google-java-format 编码理念的确定性 Kotlin 格式化程序。”...这是个常见问题,论坛上面也已经有成熟答案:要么在字段中添加“@JvmField”;要么在注解中添加注解 use-site,也就是“@get:Rule”: // 方案一:使用“get”作为注解的...虽然不是很多,但希望能帮助更多开发者利用 Kotlin 编译器解析器高效完成工作。 下一步 平均而言,Meta 发现迁移后的代码行数减少了 11%。

66530

又一巨头从 Java 迁移到 Kotlin

Meta 的 Android 代码库总共包含有超过 1000 万行的 Kotlin 代码。作为此次迁移的一部分,Meta 透露其也正在开源用于操作 Kotlin 代码的各种示例和实用程序。...在一些复杂的情况下,Kotlin 的空检查省略还可能漏掉空值通过,进而引发空指针异常。例如,如果 Kotlin 代码调用由 Java 接口实现的 Kotlin 接口,就会发生这种情况。...而在尝试为现有应用程序引入 Kotlin 时,Meta 也遇到了很多麻烦,例如需要更新 Redex 以支持 Java 不生成的字节码模式。...例如代码审查或 wiki 中缺少 Kotlin 语法高亮显示。“我们更新了我们正在使用的库 Pygments,以使体验与 Java 相媲美。我们更新了一些内部代码修改工具,以便能够处理 Kotlin。...我们的代码库中已经有超过 1000 万行 Kotlin 代码,而且 Meta 的大多数 Android 开发人员现在都在编写 Kotlin 代码”。平均而言,此次迁移使代码行数减少了 11%。

46120

Kotlin开发指南

Kotlin可以无缝和Java代码互相调用,并且极大的提升开发效率,以改写的24小时节目单逻辑类ProgramListLogic为例,java代码行数为415行,用kotlin改写后减少到了329行,减少...中还有许多简化代码优的优化点,类似于自动生成set/get, 字符串拼接,when语法,内置了很多的操作符等等,这些都大大减轻了我们的工作负担。...这个freeline库在新版本中弃用,不会再有这个问题。...2、直接Convert Java File to Kotlin File带来的坑  在接口中如果有定义get方法 InsertPic_B3AF(0(07-28-14-43-13).png 因为Kotlin...是对属性自带set,get方法的,在转换为kotlin后会被转换成这样 InsertPic_D27D(0(07-28-14-43-13).png 如果实现接口的类中,之前有个成员变量也是title InsertPic

2.2K40

【Rust日报】2019-09-24 Rust小程序为何会卡顿?

更新日志: 现在可以在使用dot功能的时候标记图像顶点。 添加了Graph::map() API,该API将Graph 映射到了Graph 。...Purple协议对其支持的应用程序类型是未知的,他支持的应用程序可以是任何东西,从没有属性的简单的发行资产到成熟的去中心化保险单或KYC。...观察一个用Rust和Kotlin编写的小程序,为何Rust版本会比Kotlin的慢?主要原因就是分配了很多新的Vecs。...Elapsed: 8s 163ms // Windows, depth = 8 Kotlin 70s 70ms vs Rust 139s 403ms // Ubuntu, depth = 8: Kotlin...as_standard_layout() 新数组存储类型CowArray 新方法.mean() 运行时能够检测到的SIMD支持的matrixmultiply 前往GitHub了解更多 IntelliJ Rust更新日志

95620

马斯克要求推特程序员写周报,具体到代码行数;刘强东称将末位淘汰部分京东高管;闰秒终于要被取消了!| Q资讯

整理 |Tina 马斯克要求推特程序员写周报,具体到代码行数;刘强东称将末位淘汰部分京东高管;罗永浩 AR 公司完成融资,估值 2 亿美元;游戏工委报告:未成年人沉迷游戏问题已经基本解决;谷歌酝酿减员万人...内部文件显示,Pitchfork 能够通过机器学习技术训练智能体编写代码、修复 Bug,以及代码更新。...知情人士称,该项目最初成立于谷歌母公司 Alphabet's 的“X”研究部门,如今走进谷歌实验室(Google Labs)。...谷歌发言人称,Pitchfork 的最初目标是构建一款工具,可以将谷歌的 Python 编程语言代码库更新到较新的版本。...但随着时间的推移,该项目的目标转向了一个通用系统:可以减少人类开发者编写和更新代码的需要,同时又能保持代码质量。

32620

Java高并发秒杀API(二)之Service层

浏览) DAO拼接等逻辑在Service层完成(DAO只需负责SQL语句,其他都由Service层完成) 一些初学者容易出现的错误,就是喜欢在DAO层进行逻辑的编写,其实DAO就是数据访问的缩写,它只进行数据的访问操作...com.lewis.service包,用来存放Service接口;在src/main/java包下建立com.lewis.exception包,用来存放Service层出现的异常类:比如重复秒杀异常、秒杀关闭异常...; } public Exposer(boolean exposed, long seckillId) { this.exposed = exposed; this.seckillId...boolean exposed) { this.exposed = exposed; } public String getMd5() { return md5; }...上一篇文章:Java高并发秒杀API(一)之业务分析与DAO层 下一篇文章:Java高并发秒杀API(三)之Web层 警告 本文最后更新于 October 5, 2017,文中内容可能已过时,请谨慎使用

52620

Kotlin 泛型:基本使用

Kotlin 中声明和使用泛型类、泛型函数的基本概念和 Java 相似,有 Java 泛型概念的情况下,不用详细解释或者做进一步了解,也能够很容易地上手使用泛型。...本篇是 Kotlin 泛型的基础介绍,进阶内容可点击链接查看。Kotlin 泛型:基本使用Kotlin 泛型:类型参数约束系列持续更新中,欢迎关注订阅。...其次,Kotlin 是静态类型语言,静态类型语言的优势是能够在编译时帮我们提前进行类型检查,保证类型的正确性,避免潜在的类型错误。...「类型参数」是占位符,就像变量一样,可以任意取名,一般使用单个大写字母(T、U、V)、全大写单词(DATA、TOKEN)、或首字母大写的单词(Data、Token);「类型实参」是具体的类型,只能传入存在的具体类型...下一篇文章,将介绍 Kotlin 泛型的进阶知识:类型参数约束

1.7K30
领券