Trad 是一个为满足作者的个人需求而开发的语言,个人的能力终究是有限的,而在的开源社区氛围下不会有多少人愿意浪费时间给别人的项目写代码,所以,作者只选择开发自己所需的功能,并没有打算给这个项目设定远大的目标然后一个人负责所有工作。
如果你希望 Trad 能成为一个成熟、完整的编程语言,并有意向参与进来,请先阅读《开源指南》和《行为准则》,然后继续阅读以下内容。
- issue 仅用于提交问题反馈、功能需求以及设计相关的内容,其它内容可能会被直接关闭,例如:
- 不好用,差评!
- XXX 不知道比你这个高到哪里去了
- 求不要更新了,老子学不动了
- 在提交 issue 之前,请搜索相关内容是否已被提出。
- 请严格根据模板的说明来填充对应的内容,尽量用简洁清晰的语言描述你的内容,以降低他人的沟通成本。
- 在对此项目做大改动之前,请先提交 issue 进行讨论,在征得同意之后再开始你的工作,因为现在的架构设计还不够稳定,过大的改动会增加以后的重构难度。
- 提交信息的格式必须遵循 Vue 的提交规范,一个提交应该只做一件事情。
- 提交 PR 之前请 rebase,确保提交记录的整洁,最简单的方法是使用此命令:
git pull origin develop --rebase
遵循 ESLint 的即可。
不知道这个项目需要哪些类型的贡献者?也不知道自己在这个项目中能够参与哪些工作?可以看看以下内容,为了方便阅读和理解,这些内容采用常规招聘信息的格式。
要求:
- 具备扎实的编程理论基础和丰富的开发经验
- 混迹于各大编程社区,喷过各种水平的人却从未被打脸
加分项:
- 曾用键盘改变了世界
职责:
- 负责调教蓄意钓鱼引战的低端键盘侠
- 负责引导用户正确反馈问题
- 负责说服用户为项目提供资金支持
- 负责编写软文推广项目
要求:
- 掌握 C 语言
- 熟悉 TypeScript 语言
- 熟悉 React、Angular、Vue 等前端框架中的至少两种,并理解它们的设计哲学和编程思想
加分项:
- 手写过语法树解析器
- 熟悉 Vritual DOM 的 Diff 算法
- 熟悉其它主流语言,并理解其编程思想
- 读过 Babel 的源码,对它的设计思想有一定了解
- 熟悉 Webpack,了解插件和加载器的开发
- 熟悉 Electron
- 略懂编译原理
职责:
- 负责项目的持续优化、重构
- 负责研究 JavaScript 和 TypeScript 语言特性及相关功能的工作原理
- 负责调研主流前端框架的功能特性和优缺点,并分析在 Trad 中应用这些功能的可行性
- 负责工具链的开发
- 负责编写测试用例
- 负责审查其他贡献者提交的代码
- 参与新功能的设计、开发和文档编写
要求:
- 具有丰富项目的开发经验,对 C 语言在项目开发中的各种不足之处有着深刻见解
- 熟悉 C++ 和 JavaScript 语言
- 熟悉至少一种其它主流语言,并理解其编程思想
- 熟悉至少一种主流的桌面端图形界面开发库/框架
- 熟悉 cmake、ninja、gyp 等至少一种构建工具
- 熟悉 vcpkg、conan、clib 等至少一种包管理工具
加分项:
- 熟悉 LLVM
- 开发过编译器
职责:
- 负责整理 C 语言的不足之处,并为 Trad 设计相应解决方案
- 负责调研其它主流语言的功能特性和优缺点,并分析在 Trad 中应用这些功能的可行性
- 负责优化 LCUI 的数据绑定和更新机制
- 参与 RAII 机制的设计和实现
- 参与新语法的需求分析、设计和文档编写
- 参与优化编译器的 C 代码输出
- 参与包管理工具的需求分析和功能设计
- 参与构建工具的需求分析和功能设计
要求:
- 有丰富的技术文档阅读经验
- 有较强的理解能力和表达能力
- 有较多的文章编写经验
加分项:
- 参与过知名开源项目的文档翻译工作
- 出版过技术书籍
职责:
- 负责完善语言规范文档
- 负责编写教程