Skip to content

Instantly share code, notes, and snippets.

@dragonly
Last active January 15, 2021 15:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dragonly/dfe1d5c9ecb50eb4fc460a663a5d5076 to your computer and use it in GitHub Desktop.
Save dragonly/dfe1d5c9ecb50eb4fc460a663a5d5076 to your computer and use it in GitHub Desktop.
TiDB Hackathon 2020 Proposal: TiCode

Proposal: TiCode - The TiDB IDE

Abstract

TiCode is a Visual Studio Code extension that makes developing TiDB a breeze.

Background

社区开发者参与开发 TiDB 需要比较长的前期学习周期,其中除编程语言以外的困难主要来自于项目本身的复杂度。作为一个多语言、多运行时组件和分布式的项目,TiDB 的开发和调试门槛远远高于一些常规软件项目,如移动端 App、Web 服务端、游戏客户端等项目。

上述软件项目上手门槛低的原因,除了拥有完善的社区和学习资料以外,有一个突出的特征:均有一套以上完整的集成开发环境(IDE),帮助开发者上手、完成日常繁琐的开发调试流程,从而将精力尽可能地集中到软件编写和调试本身。

选择 Visual Studio Code 的主要原因在于其开放的社区、良好的可扩展性和巨大的受欢迎程度

Proposal

基于现在最流行的代码编辑器 Visual Studio Code,开发一个 TiDB 插件,用于开发和本地/远程调试 TiDB 集群,让开发者不需要搞清楚 TiDB 内部机制也能方便地在本地启动测试集群,实时调试刚编写的功能。

主要功能:

  • 从 github repo 加载 TiDB 各个项目代码到 workspace,并使用 TiUP 启动本地测试集群
  • 编译当前项目,动态替换测试集群中的 tidb-server/tikv-server/pd-server 进程,立即开始调试
  • 使用 vscode debugger 调试本地测试集群中的进程,支持同时调试tidb-server/tikv-server/pd-server 进程

Rationale

TiDB 老司机可以根据自己的想法,灵活调整 tidb-server/tikv-server/pd-server 启动参数,动态加入现有测试集群,或者启动 mock tikv-server 从而只调试 tidb-server 部分功能。但是这么做对大部分开发者非常不友好,而且即便是老司机也可以利用这个插件来省时省力。

Compatibility and Migration Plan

冇。

Implementation

TBD。

Testing Plan

演示。

Open issues (if applicable)

冇。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment