服务器作为Kotlin的功能– http4k

服务器作为Kotlin的功能– http4k

功能编程, 爪哇, 科特林, 软件开发, 讲解, 网页
服务器作为Kotlin的功能-http4k您是否听说过"Server as a Function"? The idea is that we write our server application based on just ordinary functions, which is based on a concept outlined in the paper Your 服务器功能 written and published 通过 推特/Marius Eriksen. In the 科特林 world, the most prominent implementation of this concept is http4k, which the maintainers describe as an "用Kotlin编写的HTTP工具集,重点是创建简单的,可测试的API"。最好的部分是http4k应用程序只是我们可以直接测试的Kotlin函数。让我们看一下第一个示例:第一个http4k服务器示例val应用程序:HttpHandler = {request:Request->响应(OK).body(request.body)} val server = app.asServer(SunHttp(8000))。start()…
阅读更多
科特林如何使我成为生产力更高的软件开发人员

科特林如何使我成为生产力更高的软件开发人员

功能编程, 爪哇, 科特林, 软件开发
科特林如何使我成为生产力更高的软件开发人员'迄今为止,编写JVM代码已有七年多了,而我主要是使用Java来完成的。大约两年前,当我拿起Kotlin时,情况发生了变化。到现在为止,我或多或少完全放弃了Java语言,转而支持Kotlin。我这样做是因为我觉得这门语言更有生产力。它使我更加专注于业务逻辑,而不是强迫我一遍又一遍地编写样板代码。在这篇文章中,我告诉您Kotlin如何使我成为更有生产力的开发人员。我当然比对Java更了解Kotlin。 FWIW,几年前,我已经被Oracle认证为Java专家。尽管如此,科特林还是我的故乡 …
阅读更多
从Java Builders到Kotlin DSL

从Java Builders到Kotlin DSL

安卓, 爪哇, 科特林, 讲解
从Java Builders到Kotlin DSL简介DSL(领域特定语言)是Kotlin圈子中不断发展的主题。它们使我们可以扩展一些最令人兴奋的语言功能,同时在代码中完成更具可读性和可维护性的解决方案。今天我'd向您展示如何实施某种DSL-我们'将要在Kotlin中包装现有的Java Builder。毫无疑问你'我以前遇到过Java中的构建器模式,例如,如果您'重新成为Android开发人员,您必须 '我们有时会使用AlertDialog.Builder,OkHttpClient.Builder或Retrofit.Builder。在纯DSL设计中,包装这样的构建器是一个很好的练习。您唯一需要担心的是设计包装程序提供的API,因为…
阅读更多
科特林可空性功能

科特林可空性功能

功能编程, 爪哇, 科特林, 软件开发, 教学, 讲解
空安全编程-Kotlin Way免责声明:这篇ktor文章最初发布在Dzone 爪哇 Guide 2018中,可以在此处下载。在本文中,我们将回顾由空指针引起的问题以及如何在Java中避免它们。之后,本文将演示Kotlin可空性功能如何工作以及如何改进您的代码。作为Java开发人员,我们'非常习惯在应用程序运行时抛出的NullPointerExceptions(NPE)。由于错误,这种错误几乎总是无意发生,该错误基于无法识别的null引用。空引用通常用于指示缺少的值,'在很多情况下对程序员来说是显而易见的。尽管Java依赖于强静态类型,但它不'让你区分…
阅读更多
从常规Kotlin程序运行Kotlin脚本(kts)

从常规Kotlin程序运行Kotlin脚本(kts)

摇篮, 爪哇, 科特林, 软件开发
从Kotlin程序运行Kotlin脚本本文介绍了一种从Kotlin程序运行Kotlin脚本的方法,以利用DSL的功能。 科特林可以用作脚本语言。只需在扩展名为.kts的文件中写入顶级可执行代码,然后按照文档中的说明使用kotlinc运行它即可。那'也是与Gradle 科特林 DSL结合使用的Gradle构建文件的格式,例如gradle.build.kts。 摇篮展示了一个领域特定语言的绝妙示例,可以将其独立编写为.kts文件,以便稍后由gradle工具读取。当我们尝试找到一种使用自定义DSL的方法(可在此处找到教程)时,我们首先需要知道如何…
阅读更多
使用Gradle 科特林 DSL和Travis CI在Bintray上发布Kotlin库

使用Gradle 科特林 DSL和Travis CI在Bintray上发布Kotlin库

摇篮, 爪哇, 科特林, 软件开发, 讲解
使用Gradle 科特林 DSL在Bintray上分发库在几周前发布的最新博客文章中,我了解了Gradle 科特林 DSL的用法以及它如何帮助描述构建脚本。在另一篇较早的文章中,我介绍了一个小型库,该库可用于使用自定义的Kotlin DSL:SeKurity简化TLS / SSL套接字的创建。在这篇文章中,我们'我们将研究如何将此类库提供给其他实际希望在其他项目中使用的库。最终,应该可以在诸如Maven或Gradle之类的构建脚本中将SeKurity库列出为简单的依赖项。由于库本身已经由Gradle支持,所以我'll显示了一种在以下位置发布生成的工件的方法…
阅读更多
我最想念Java的Kotlin功能– 科特林与Java

我最想念Java的Kotlin功能– 科特林与Java

功能编程, 爪哇, 科特林, 软件开发
让'的文章涵盖了"Kotlin vs 爪哇"主题-我想告诉你回到Java时最想念的Kotlin功能。我作为Java开发人员的生活'作为Kotlin编程语言的大力支持者,我仍然每天为我的老板做很多Java编程。自从我'我意识到Kotlin的强大功能,'我经常在Java中挣扎,因为它有一些"pitfalls",需要额外的样板,并且缺少许多功能。在这篇文章中,我'd想描述一下用Java编码时我最想念的Kotlin功能。自从我以来新的和分号'在做Kotlin时,用Java编码时我经常忘记两件事:用于构造函数调用的new关键字和令人讨厌的;…
阅读更多
在Kotlin中创建DSL

在Kotlin中创建DSL

功能编程, 爪哇, 科特林, 软件开发
科特林作为一种编程语言提供了一些非常强大的功能,这些功能允许创建自定义内部内部特定于域的语言(DSL)。我在此博客上也写过这些功能之一,称为“带有Receiver的功能文字”,其他功能是调用约定或中缀表示法。在本文中,我将介绍如何通过引入一个将DSL作为其API公开的库来创建Kotlin DSL。一世'当我不得不在以下情况下设置SSL / TLS连接时,我经常会为Java API苦苦挣扎。实现HTTPS通信所需。我一直感觉很想编写一个可以为我完成此任务的小程序库,隐藏所有困难,当然也隐藏了所需的样板。 (更多…)
阅读更多
科特林协程指南–Kotlin中的并发编程

科特林协程指南–Kotlin中的并发编程

功能编程, 爪哇, 科特林
更新时间2018年10月29日简介和动机在本文中,您将了解Kotlin协程:它们是什么,它们看起来如何以及它们如何工作。演示的代码示例已使用Kotlin 1.3.0和kotlinx.coroutines 1.0.0进行了测试。 科特林协程是其中之一"bigger features"如下引自JetBrains的报价所示'博客:我们都知道,在高负载下阻塞是不好的,轮询是不可行的,世界正变得越来越基于推送和异步。许多语言(从2012年的C#开始)都通过专用语言结构(例如async / await关键字)支持异步编程。在Kotlin中,我们推广了这个概念,以便库可以定义其构造的版本,并且async不是关键字,而只是函数。这种设计允许…
阅读更多
科特林泛型和方差(与Java相比)

科特林泛型和方差(与Java相比)

爪哇, 科特林, 软件开发
本文介绍Kotlin中的泛型和方差的概念,并将其与Java进行比较。 科特林泛型与Java不同'用户如何定义他们在子类型关系中的行为。与Java相对,Kotlin允许在声明站点上定义差异,而Java仅知道使用站点差异。 科特林泛型-什么是方差?许多编程语言都支持子类型的概念,该子类型允许实现表示关系的层次结构,例如"A cat IS-an animal"。在Java中,我们可以使用extends关键字来更改/扩展现有类的行为(继承),也可以使用实现来提供接口的实现。根据Liskov的替换原则,A类的每个实例都可以被其B型子实例替代。方差一词在数学中也经常提到,…
阅读更多