chore: project_rules
This commit is contained in:
15
.trae/rules/project_rules.md
Normal file
15
.trae/rules/project_rules.md
Normal 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。
|
||||
Reference in New Issue
Block a user