跟 Hadi 做了 40min 左右的视频交流;效果不甚理想,主要是一聊上就发现口语太僵,对话的连贯性差、想法表达不出,有点念稿子的感觉;视频里 Hadi 也是一脸疲倦(下周即 KotlinConf 了)
总体有点小失望,尤其第一次用 Google Meet,没弄明白怎么录音频,回来复盘也只能靠记忆,紧张状态下很多对话都忘了细节
几点交流总结:
- 这边先吐槽了 IntelliJ SDK 缺乏文档,以至于最初的插件开发上,我们只能去 IntelliJ CE 代码库翻示例代码;Hadi 说他们目前放了两个人全职在建设文档。从今年年初的 Plugin Marketplace 大改版也能看出来,JetBrains 试图让开发者能从插件开发上获得经济回报,形成类似 AppStore 一类的生态
- Headless IntelliJ: NDA
- Kotlin Adoption: 有些人从 Test、有些从 Android,从 Plugin 开始的不多;IntelliJ CE 的确是一个金矿,15yrs+ 沉淀下来的 Java 代码,有各种 Java 的奇技淫巧,但也有很多技术债务
- 关于 LSP: Hadi 的观点跟 Yole 一样,都认为匹配不了 IDEA 目前的能力;聊了下 Rider 协议,Hadi 是 .NET 背景、对 RSharper / Rider 很熟悉,同时也能感受出来他们对 LSP / LSIF、包括 Eclipse Che 等产品的密切关注
- Package Search Plugin: 目前还是 EAP,Hadi 说是他们团队主导开发的,刚放出来一周;规划后面会做一些 Semantic Search、Code Snippets 搜索能力补充等等;这个插件跟建设一个企业级内部的代码 / 制品库检索的端能力还是比较接近的
- Cloud Dev: JetBrains 内部一直有产品在建设,但是不便于透露,“希望下周的产品发布会让你满意…“,提到说 2020 可能也有新的 Product Line,可以关注
- 怎么看 VSCode Online: VSO is not a single product
- 目前亚太地区有一位 Base 台湾的 DA,Hadi 说可以认识一下;但这边更期待的是直接跟技术团队对话
准备的稿子
[Greeting]
Morning Hadi (CET 9:00)
- It’s afternoon in Hangzhou, and the temperature is about 15 celsius degree
KotlinConf
- KotlinConf would be held on Next Wednesday
- Special announcement by you and Maxim
- Could it be “IntelliK” - Standalone Kotlin IDE ???
- Hope it could be a web-based product, such as Datalore
About AntFin
- Famous for Alipay - a mobile wallet and payments app, and lot’s of others technology products and services. For example, the Ant Financial Cloud - which is a cloud service for financial institutions
Last time visit
- 2017.11.17 Hadi gave a talk about TC and Kotlin
- Just looked up the notes I took during the talk, and find some really interesting quick notes
- Introduction on Teamcity plugin for Openstack / k8s …
- “Docker will die eventually”
- “Docker is like twitter, business model…“
- just weeks ago, the Docker EE was sold
- The meta runner / template system …
- Kotlin DSL vs. YAML
- JenkinsX & Tekton pipelines both introduces in 2018
- Introduction on Teamcity plugin for Openstack / k8s …
[Kotlin & EP]
About Engineering productivity team
- Application Lifecycle mgmt.
- Communication & ChatOps platform
- SCM / Code Hosting
- CI / Build / Config / Artifact mgmt.
- Deployment / Orchestration & Scheduling
- Monitoring
- Tooling
What we are doing at EP team
Developer platform serving AntFin engineers
- Team collaboration system, similar to YouTrack / Jira
- Code Hosting system, similar to UpSource / GitHub / SourceGraph
- DevOps workbench, integrates all kinds of cloud services, similar to TeamCity / GitLab EE
Developer tools around IntelliJ IDEA
- IntelliJ IDEA plugin for internal usage
- Integration features for s/w development platforms
- Pipeline / Stages / CI Jobs
- DevOps / Log View / SSH Session
- Code Review features
- Submit PullRequests
- Comments & Diff View
- Static Code analysis with custom rulesets
- Shared rulesets with Alibaba p3c project (GitHub ~19k stars, Alibaba Java Coding Guidelines are quite well known across the Chinese Java developer community)
- Using PMD; also using PSI for code generations / quickfix
- Custom toolwindow view
- Integration features for s/w development platforms
- Built a customize intelliJ IDEA version based on the oss intellij-community codebase
- Usage tracking & data analysis
- Chinese translations
- less bundled plugins, optimized VMOptions, etc.
100% Kotlin (Why switch to KT)
- IntelliJ Plugin is a good start of using Kotlin in production (2017)
- Concern about the industrial strength
- Tried for some other internal projects, more readable and avoid lots of boilerplate code
DX for internal developers (Developer Experience)
Biggest challenges in AntFin
- Developer on-boarding
- Diversity in PLL / tech stack / tooling
- Testing / CI (microservices, yet still lots of system is 100k+ loc)
Our Visions
- Cloud Development
- Like cider in Google (WebIDE), GitPod / Eclipse Che
- Code Search & Code IntelliSense infra
Questions…
- Any thoughts on “Remote IDEA”? like VSCode Remote
- Local IDEA GUI (without the indexing & vfs) + remote IntelliJ runtime
Pet Projects
- Awesome Kotlin Plugin
- A collection of awesome Kotlin related stuff
- No REST api available, so I have to embed the ktsCompiler, eval kts file from GitHub AwesomeKotlin repo
- Did had some trouble with the intelliJ classloader, and also faced some restriction from GitHub API (rate limit etc.)
- Similar to IntelliJ package search plugin
- package metadata & ranking
- JFrog intelliJ plugin adds scanning for project dependencies