Skip to content

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

@RF-Tar-Railt

Description

@RF-Tar-Railt

描述

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. 结构设计能力与抽象能力,能够系统性策划该架构各部分的功能

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions