chore: project_rules

This commit is contained in:
2025-10-21 17:04:51 +08:00
parent dbaa8a7785
commit 9f9a9d5116

View File

@@ -0,0 +1,15 @@
我正在设计一个数据结构与算法可视化平台,在我的设想中,平台会提供一个代码编辑器,用户可以在其中编写算法的实现代码,当用户点击运行按钮时,平台会调用后端的编译器来执行用户编写的代码,获取到算法执行过程中所涉及的数据结构的变化,并将整个过程可视化地展示在平台中。
从技术的角度,我希望它能够适配不同的编程语言,所以我不会考虑从编译技术的层面去适配不同的编程语言(例如自定义一个编译器),而是考虑设计一套多语言的 SDK 来实现这一目标。从整体上来看SDK 提供的 API 用于“标记”数据结构的操作,用户可以在算法的实现中调用这些 API 来标记数据结构的变化,这样在代码被编译运行后,就能够获取数据结构的变化过程(序列化为 JSON)。
这样如果从用户的角度来看,用户可以几乎不修改算法的实现,而是只需要在合适的位置调用平台提供的 API 即可。
这个项目是关于这个平台的多语言 SDK 设计与实现方案。
项目中有这样一些概念:
- Tracer: 用于记录数据结构的变化过程,每一种数据结构都有一个对应的 Tracer 类(ArrayTracer, StackTracer, QueueTracer, MatrixTracer, SortTracer, LinkTracer, TreeTracer, GraphTracer)。
- Action: 用于描述数据结构的操作类型,每一种操作都有一个对应的 Action。
- Command: 用于描述每一次数据结构操作的指令,一条指令包含了 tracer、action、params并最终会序列化为 JSON。