Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OSPP] Alconna 2.0 版本设计与开发 #88

Closed
RF-Tar-Railt opened this issue May 21, 2024 · 1 comment · Fixed by #91
Closed

[OSPP] Alconna 2.0 版本设计与开发 #88

RF-Tar-Railt opened this issue May 21, 2024 · 1 comment · Fixed by #91
Labels
enhancement New feature or request good first issue Good for newcomers
Milestone

Comments

@RF-Tar-Railt
Copy link
Member

描述

Alconna 1.x 版本存在诸多设计问题和历史遗留问题,这些问题需要在 2.0 版本中进行集中解决。仓库主分支目前已在2.0-alpha2阶段,清理了部分冗余功能并且提出了一些2.0设计。此项目需要基于 Alconna 1.x 的基础设计进行 2.0 版本的项目设计与开发,并且需要将 Alconna 的上游基础组件库一并进行优化与设计迭代,这将涉及到对文本解析算法、系统架构、文字样式排版、语言底层原理的大量工作。

项目产出要求

  1. Alconna 2.0 主体架构

    • 全新的或改善过的命令体构造方式,并对开发者友好
    • 对模糊匹配、命令补全、消息帮助等功能与解析器/执行器进行解耦合,抽象为可拓展组件最佳
    • 优化解析/执行逻辑,使得解析过程是具状态的,状态可复制的,控制流可移交的流程
    • 减少代码复杂度、增加可读性
    • 命令配置项读取方法更新
    • 配套的测试文件更新2. Alconna 基础组件库更新
  2. 类型验证&类型转换组件库的性能优化,可使用cython或pyo3等方式

  3. 字符串分割组件的优化,例如使其可识别全角引号、识别自定义特殊符号等

  4. 更新样式组件库,可提供更多样式

  5. Alconna 2.0 外部接口,需要总结 Alconna 1.x 版本现有的外部衍生项目,抽象成统一的对外功能接口,并尽可能提供具体实现

项目技术要求

  1. 完善的python 基础,熟悉 python 语法特性,掌握装饰器、描述器、生成器等特性用法,了解python底层原理,对性能优化有一定知识
  2. C语言基础,了解 python 的 C-API 用法,了解 Cython 工作流
  3. 结构设计能力与抽象能力,能够系统性策划该架构各部分的功能
@RF-Tar-Railt RF-Tar-Railt added enhancement New feature or request good first issue Good for newcomers labels May 21, 2024
@RF-Tar-Railt RF-Tar-Railt added this to the v2 milestone May 21, 2024
@RF-Tar-Railt RF-Tar-Railt pinned this issue May 21, 2024
@RF-Tar-Railt
Copy link
Member Author

相关项目:
#74
#84

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant