跟 Hadi 做了 40min 左右的视频交流;效果不甚理想,主要是一聊上就发现口语太僵,对话的连贯性差、想法表达不出,有点念稿子的感觉;视频里 Hadi 也是一脸疲倦(下周即 KotlinConf 了)

    总体有点小失望,尤其第一次用 Google Meet,没弄明白怎么录音频,回来复盘也只能靠记忆,紧张状态下很多对话都忘了细节

    几点交流总结:

    1. 这边先吐槽了 IntelliJ SDK 缺乏文档,以至于最初的插件开发上,我们只能去 IntelliJ CE 代码库翻示例代码;Hadi 说他们目前放了两个人全职在建设文档。从今年年初的 Plugin Marketplace 大改版也能看出来,JetBrains 试图让开发者能从插件开发上获得经济回报,形成类似 AppStore 一类的生态
    2. Headless IntelliJ: NDA
    3. Kotlin Adoption: 有些人从 Test、有些从 Android,从 Plugin 开始的不多;IntelliJ CE 的确是一个金矿,15yrs+ 沉淀下来的 Java 代码,有各种 Java 的奇技淫巧,但也有很多技术债务
    4. 关于 LSP: Hadi 的观点跟 Yole 一样,都认为匹配不了 IDEA 目前的能力;聊了下 Rider 协议,Hadi 是 .NET 背景、对 RSharper / Rider 很熟悉,同时也能感受出来他们对 LSP / LSIF、包括 Eclipse Che 等产品的密切关注
    5. Package Search Plugin: 目前还是 EAP,Hadi 说是他们团队主导开发的,刚放出来一周;规划后面会做一些 Semantic Search、Code Snippets 搜索能力补充等等;这个插件跟建设一个企业级内部的代码 / 制品库检索的端能力还是比较接近的
    6. Cloud Dev: JetBrains 内部一直有产品在建设,但是不便于透露,“希望下周的产品发布会让你满意…“,提到说 2020 可能也有新的 Product Line,可以关注
    7. 怎么看 VSCode Online: VSO is not a single product
    8. 目前亚太地区有一位 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

    [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
    • 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