痛定思痛,決定徹底棄用PHP,轉入Kotlin,採用Ktor方案。Kotlin從去年年底到現在,我都一直保持關注,這一年下來,從1.0升級到1.3,增加了很多特性和支持。其實,只要是JetBrains扶持着的,想不火也難。和當年的Scala比一比,Scala只能望塵莫及,望而興嘆。
分享一些資料:
Kotlin官方贊助的中文站點,有J爹贊助的話,終於不用擔心,看着看着就不更新了。
Ktor的示例項目
kotlin-ktor-exposed-postgresql-rest-api
Ktor + Exposed + PGSQL的一個演示(使用了HikariCP),演示瞭如何更輕鬆的使用數據庫連接池。這裏他有一個MessageController,不過這個項目的分發處理得不算很好。
Thinkter: A Kotlin Full-stack Application Example
Ktor官網上的一個示例,包含很多內容,也很徹底的展現了Kotlin野心之大,這個項目,包含了用Kotlin實現的前端和後端,沒錯,Kotlin還能寫React組件,還能調動webpack,呃,可惜我對此不感興趣。
項目內主要使用了 Ktor + squash,較好的演示了,如何在 Application 層面,對Routing進行分解,特別注意那個 Locations.kt,這是實際上的dispatch。
Libraries used:
- Ktor - Kotlin async web framework
- Netty - Async web server
- Exposed - Kotlin SQL framework
- H2 - Embeddable database
- HikariCP - High performance JDBC connection pooling
- Jackson - JSON serialization/deserialization
- JUnit 5, AssertJ and Rest Assured for testing
這個應該算是一個標準的Ktor的演示項目,沒啥特別的,但可以作爲了解Ktor最小運行環境的一個展示。
哦,忘記說了
也是Kotlin團隊官方推薦的一個輕量級ORM,真的非常輕量,並且也只是封裝了很基礎的層面,中上層完全空白。這項目也被拉到 J 爹旗下了。
好吧,其實我是摘取了內部交流的項目中的一部分文檔內容。其他就先不貼了,以後慢慢更新。
哦,漏了一樣,Ktor有IDEA的一個插件,當然也是 J 出品的,今天直上1.0,大概就是用於給用戶展示Ktor的易用性的,類似Spring boot start。