建议开发者激励计划对优质开源鸿蒙应用补发额外激励,为鸿蒙 Agentic Coding 开发生态积累成熟工程经验,为鸿蒙开源生态真正赋能
以下内容我已经向对应渠道提出对应建议,原文如下:
当前鸿蒙生态缺乏可直接复用的成熟应用级开源项目,且开发者开源额外成本高、缺乏正向激励。建议在现有开发者激励计划基础上,增加针对优质开源应用的专项激励:
对已达到激励计划要求且将主要业务代码完整开源的鸿蒙应用,在原有激励外额外补发开源专项激励。
建议设置相应门槛以避免低质量伪开源,如要求:
- 核心业务代码基本完整公开
- 使用明确开源许可证
- 仓库与上架版本保持一致
- 提供可用构建说明
- 能正常编译运行
期望通过此举沉淀真实工程经验与可复用代码资产,降低未来开发成本,促进鸿蒙生态正循环。
我是鸿蒙应用 【记得闪卡】 的开发者,项目 jidecards 目前已经完整开源。
作为开发者,在实际开发过程中,我有一个越来越明显的感受:
鸿蒙现在并不缺 API 文档、官方 Sample 和功能 Demo,真正相对缺乏的,是可以直接作为真实软件工程参考的成熟应用级开源项目,是可以直接复用以大大缩减开发成本和时间的项目,是能为开源领域为鸿蒙争来影响力的项目。
因此建议在现有开发者激励计划基础上,增加一项针对优质开源应用的专项激励:
对于已经达到开发者激励计划要求,并且将主要业务代码完整开源的鸿蒙应用,在原有激励之外额外补发一笔开源专项激励。激励数额不应该太低。
具体金额可以由官方根据实际情况设计,例如按照原激励的一定比例补发,或者设置单独的开源项目奖励上限。
一、成熟开源应用和普通 Demo 的价值有本质区别
能够真正达到开发者激励计划要求、完成开发、通过审核并实际发布的软件,本身已经经过了一次很有价值的筛选。
通常不再只是一个展示 API 用法的 Demo,而是一个具有真实产品逻辑、完整交互、数据处理和实际工程结构的软件。
如果这样一个项目进一步选择完整开源,它能够提供的就不只是“某个 API 怎么使用”,而是大量真实的软件工程经验,例如:
- 项目如何划分模块
- ArkTS / ArkUI 代码如何组织
- 状态如何管理
- 数据层如何设计
- 数据库和缓存如何处理
- 网络层怎样封装
- 权限如何处理
- 异常如何处理
- 数据迁移如何处理
- 多设备如何适配
- 性能如何优化
- 版本持续迭代以后如何控制工程复杂度
Sample 更擅长回答“这个功能怎么写”,成熟开源应用则能回答“一个真正的软件应该怎么做”。
二、成熟项目中的实现可以直接复用,大幅加快开发速度
更重要的是,成熟开源项目中的很多实现并不只是“参考”,而是可以被直接复用或经过少量适配后用于新的项目,从而大幅减少重复开发,明显加快鸿蒙应用开发速度。
只以我的开源项目 【记得闪卡】 的编辑页为例,项目中的:
- 可视化编辑
- 荧光笔
- 粗体
- 斜体
- 字号等等
- 屏幕边缘轮盘式快捷工具
- 其他交互和组件
都是在真实应用中完成和迭代的,是经历了用户反馈、开发者精心设计的。
对于需要类似能力的笔记、知识管理、编辑器类应用,开发者完全可以在许可证允许的前提下直接参考、抽取或改造,而不必重新从零设计和实现。
这意味着成熟开源项目不仅能提供学习价值,还能直接沉淀为整个鸿蒙生态可复用的代码资产和组件资产。
一个项目已经解决过的问题,后面的开发者就不必再重复解决一遍。
【记得闪卡】的内核就是直接复用了 Anki Core,一个经历了数十年、接受了无数迭代与实践考察的内核。
但是因为开源,只需要几小时,就能被我接入到软件中并形成初步应用。
此外我又集成了华为原生手写笔功能,改善了可视化编辑体验等等;又广泛吸纳用户的反馈并不断优化,才有了如今的【记得闪卡】。
这本身就是开源价值非常直观的例子:
前人的成熟成果可以成为后来者继续开发的起点,而不是让每一个开发者重新从零开始。
三、开源在 Agentic Coding 时代会越来越重要
开源在 Agentic Coding 时代会越来越重要,Linux 就是很好的生态例子。
现在 AI Coding 已经逐渐从简单的代码补全,走向由 Agent:
- 理解整个工程
- 搜索代码
- 修改多个文件
- 运行项目
- 继续修复问题
这种开发方式对“工程经验”的依赖其实非常强。
Agent 可以通过文档知道一个 API 的定义,但是在真正完成复杂任务时,还需要理解:
- 某个功能应该放在哪个模块
- 同类功能在真实项目中通常怎样组织
- 数据库层、业务层和 UI 层如何协作
- 已有代码为什么采用当前设计
- 一个修改会不会影响项目的其他部分
所以对于 Coding Agent 来说:
API 文档提供的是知识,而成熟开源仓库提供的是经验和上下文。
一个生态如果只有大量孤立的 API 示例,而缺少真实、复杂、长期维护的完整项目,那么无论是人类开发者还是 Agent,在面对实际工程问题时能够参考的经验都会比较有限。
四、目前鸿蒙成熟应用级开源社区氛围仍然不够强
这也是我开发【记得闪卡】时比较直接的体会。
遇到某个具体鸿蒙能力时,通常可以找到官方文档或者对应 Sample;但如果想进一步寻找一个成熟应用,看别人实际是怎样组织整个项目、怎样处理复杂业务和长期维护问题,可供参考的项目就明显少很多。
其项目也极度缺乏开源社区的关注与监督。
我的 jidecards 已经选择完整开源,但目前获得的社区关注也比较有限。
当然,单个项目关注量少不能说明全部问题,但从开发者角度,我能明显感觉到:
目前鸿蒙应用开发领域围绕完整应用项目形成的开源社区氛围仍然不够强。
很多开发者完成应用、上架并获得激励以后,项目实际上就结束了。
其中不乏许多商业价值有限,于是上架完、领完奖金,就草草结束长期维护的。
而选择开源则意味着还需要额外付出:
- 整理代码仓库
- 完善 README 和构建说明
- 清理不能公开的内容
- 保持开源版本和正式版本同步
- 处理 Issue
- 接受社区贡献
- 甚至长期维护项目
这些工作都会增加成本。
但在目前的激励体系中,一个完全闭源的项目和一个花费额外精力完整开源的项目,获得的激励基本没有区别。
开源甚至还要面临被简单 Fork 后上架的产品竞争的风险。
从开发者个人收益来看,开源自然很难形成足够强的正向激励。
五、开发者激励计划恰好非常适合解决这个问题
而开发者激励计划其实非常适合解决这个问题。
因为激励计划已经提前筛选出了大量真正能够完成、能够运行、能够上架的应用。
如果在这批应用中进一步鼓励开发者开源,相比单独举办一个“开源鸿蒙 Demo 大赛”,我认为更容易沉淀出真正有价值的代码。
为了拿开源奖励临时做的一个 Demo,和把一个原本就准备给真实用户使用的软件完整开放出来,这两种代码对于生态的长期价值是不一样的。
这也是鸿蒙开发者激励与众多黑客松比赛的区别。
假设每年能够因此多产生几十个、几百个真正成熟的鸿蒙开源应用,几年后积累下来的就不仅仅是代码仓库,还会包括大量真实的:
- 工程架构
- 业务实现
- 组件封装
- 第三方库使用经验
- Bug 修复
- Issue
- PR
- 性能优化
- 重构过程
- 系统版本迁移经验
这些内容可以继续被下一代开发者学习,也可以成为 Coding Agent 理解鸿蒙工程的重要参考。
之后开发者开发成本降低,产生更多应用;其中又有一部分选择开源,再继续降低后来者的开发成本。
这样才有可能逐渐形成真正的生态正循环:
开发者激励
↓
更多真实应用
↓
更多成熟项目开源
↓
开发者和 Agent 获得更多工程经验
↓
鸿蒙开发成本下降
↓
更多高质量应用出现
六、专项激励也应该设置门槛
当然,专项激励也应该设置门槛,避免为了拿奖励出现大量低质量“伪开源”。
例如可以要求:
- 已达到原开发者激励计划的应用质量和上架要求
- 核心业务代码基本完整公开
- 使用明确的开源许可证
- 开源仓库与实际上架版本保持基本一致
- 提供可用的 README、环境和构建说明
- 项目能够正常编译运行
- 不接受只公开少量无关代码的“部分开源”
- 简单 Fork、换皮、套壳、批量生成项目不享受专项激励
对于长期维护、拥有真实社区贡献、被其他项目复用或者具有较强技术示范价值的项目,还可以进一步给予优秀开源项目奖励。
七、这笔激励是在购买具有长期外溢价值的生态资产
我认为,这笔钱不能只理解成“多奖励一个愿意公开代码的开发者”。
它实际上是在购买一项具有长期外溢价值的生态资产。
普通应用激励主要得到的是:
一个应用。
而一个成熟开源应用可能留下:
一个应用
+ 一个完整工程案例
+ 一套真实开发实践
+ 可供其他开发者学习的代码
+ 可供 Coding Agent 检索和理解的工程经验
+ 后续更多项目的基础
随着鸿蒙越来越重视 Agentic Coding,我认为成熟应用级开源代码本身就应该被视为开发生态的一种基础设施。
因此建议开发者激励计划考虑增加:
优质开源鸿蒙应用专项激励
对已经符合原有激励计划要求、并满足完整开源标准的项目,在原有激励之外额外补发专项奖励。
既继续奖励“把应用做出来”,也额外奖励那些愿意把真实工程经验留给整个鸿蒙生态的开发者。
结语
我始终认为,开放的生态才能真正激活未来的生命力。
只有让更多成熟项目、工程经验和可复用代码持续流动起来,鸿蒙生态才能形成真正长期、自我增强的正循环。

更多推荐


所有评论(0)