- 博客(84)
- 收藏
- 关注
原创 在仓颉语言里造一个没有反射的服务端框架
记录 ACE Framework 四个核心机制的具体实现仓颉(Cangjie)没有运行时反射 API。Spring 那套扫描 classpath、读注解、动态代理的路子在这里行不通。但这个限制逼出了一套更干净的设计——所有"魔法"都发生在编译期,生成的是普通仓颉代码,可以审计,可以被编译器完整优化。这篇文章挑四个最核心的实现机制拆开讲:洋葱管线的正确实现、零反射依赖注入的工作原理、AOP 方法织入的展开方式、以及 ORM 里类型安全的行映射是怎么做的。
2026-09-14 09:44:35
67
原创 aceboot 的零反射 IoC:从注解到可审计的依赖装配
aceboot 的 IoC 不是把反射换成另一种黑盒,而是把注册、构造、缓存和销毁全部前移为可检查的代码。宏负责消除样板,容器负责作用域和状态,业务代码仍然依赖接口。对仓颉这样的静态、AOT 友好语言,这种设计比运行时扫描更直接,也更容易定位失败原因。
2026-09-14 09:43:57
86
原创 仓颉服务端开发框架实践:从洋葱内核到可插拔组件的aceboot 架构
aceboot 是一个用仓颉编写的服务端框架,定位接近 Spring Boot / MidwayJS,技术路线更接近 Micronaut / Quarkus:声明由编译期宏处理,运行时不依赖反射。
2026-09-14 09:43:20
267
原创 鸿蒙开发从 IDE 依赖到终端工作流:ark-cli 的开发思路与使用指南
ark-cli 是一款基于 Rust 的轻量级命令行工具,旨在将鸿蒙项目创建、构建、设备调试与运行时管理整合为可脚本化的终端工作流。通过统一的 CLI 接口,它复用 ark-core 核心能力,支持 CI/CD、远程开发与自动化部署,兼顾透传 HDC 命令与封装高频操作,降低环境配置成本。项目采用模块化设计,兼容 CLI 与 GUI(Tauri),实现跨平台、可扩展的鸿蒙开发体验。
2026-09-13 21:28:53
1752
原创 把 Agent 运行时做成插件系统:agent-harness(openJiuwen Rust版) 的实践
agent-harness 用 Rust 构建可插拔、可观测、可逆的 Agent Runtime,通过契约(Seam)、事件总线与 Profile 组合能力,解耦模型、工具、会话等组件。其四层架构(contracts → hub → plugins → app)实现单向依赖,确保替换、回滚与验证。核心思想是“无特权内核”:仅提供机制,不预设业务逻辑,支持生产路径可验证、失败可恢复,真正实现 Agent 系统的组合性与可靠性。
2026-09-13 21:13:28
1856
原创 HarmonyOS ArkUI Menu 与 ContextMenu:点击菜单与长按上下文菜单
系列:鸿蒙 HarmonyOS 6.1 新特性实战 · 第 44 篇ArkUI 提供两种菜单绑定方式:bindMenu 用于点击触发的下拉菜单,bindContextMenu 用于长按或右键触发的上下
2026-07-18 19:44:00
249
原创 HarmonyOS ArkUI Marquee 跑马灯与 Gauge 仪表盘:公告滚动与数据展示
系列:鸿蒙 HarmonyOS 6.1 新特性实战 · 第 43 篇Marquee 实现水平滚动文字效果,常用于新闻公告条、优惠信息滚动展示;Gauge 是半圆或弓形仪表盘组件,适合可视化速度、电量、
2026-07-18 19:42:21
208
原创 HarmonyOS ArkUI QRCode 与 PatternLock:二维码生成与手势密码
系列:鸿蒙 HarmonyOS 6.1 新特性实战 · 第 42 篇QRCode 和 PatternLock 是 ArkUI 面向安全与分享场景的两个专用组件。QRCode 可将任意字符串实时渲染为二
2026-07-18 19:40:44
226
原创 HarmonyOS ArkUI Search 搜索框:联想词、历史记录与热门标签
系列:鸿蒙 HarmonyOS 6.1 新特性实战 · 第 41 篇Search 组件是 ArkUI 中专为搜索场景设计的输入控件,内置搜索按钮、清除图标和键盘触发机制。本篇将完整实现联想词实时过滤、
2026-07-18 19:39:08
257
原创 HarmonyOS ArkUI RichEditor 富文本编辑器:内联样式、Span 管理与格式工具栏
系列:鸿蒙 HarmonyOS 6.1 新特性实战 · 第 40 篇RichEditor 是 ArkUI 提供的富文本编辑组件,支持在用户输入的同时对不同文字片段应用独立的颜色、字号、粗体等样式。与
2026-07-18 19:37:31
277
原创 HarmonyOS 数据持久化:Preferences 键值对存储
适用版本:HarmonyOS 6.1(API 12)及以上 验证环境:Pura 90 Pro 模拟器(HarmonyOS 6.1.1,API 24) 关键概念:@ohos.data.preferenc
2026-07-17 21:52:46
196
原创 HarmonyOS HTTP 网络请求:@ohos.net.http
适用版本:HarmonyOS 6.1(API 12)及以上 验证环境:Pura 90 Pro 模拟器(HarmonyOS 6.1.1,API 24) 关键概念:http.createHttp、requ
2026-07-17 21:50:44
293
原创 HarmonyOS 动画与过渡效果:animateTo 与 transition
适用版本:HarmonyOS 6.1(API 12)及以上 验证环境:Pura 90 Pro 模拟器(HarmonyOS 6.1.1,API 24) 关键概念:animateTo、transition
2026-07-17 21:48:41
246
原创 HarmonyOS @Provide/@Consume 跨组件通信
适用版本:HarmonyOS 6.1(API 12)及以上 验证环境:Pura 90 Pro 模拟器(HarmonyOS 6.1.1,API 24) 关键概念:@Provide、@Consume、跨层
2026-07-17 21:46:39
242
原创 HarmonyOS 状态管理:@State、@Prop、@Link、@Watch
适用版本:HarmonyOS 6.1(API 12)及以上 验证环境:Pura 90 Pro 模拟器(HarmonyOS 6.1.1,API 24) 关键概念:@State、@Prop、@Link、@
2026-07-17 21:36:45
206
原创 HarmonyOS AOT 编译原理与性能 Benchmark
摘要(142字): HarmonyOS 6.1的ArkTS采用AOT编译架构,构建时将源码转为ABC字节码,运行时由ArkVM直接执行,显著提升冷启动性能。相比JIT方案,AOT避免了运行时编译开销,内存占用更低。编译流程包含es2panda转换、PGO优化(类型特化/内联等),实测计算任务(如Fibonacci、素数筛)耗时毫秒级。PGO通过用户数据动态优化字节码,兼顾包体积与执行效率,适用于对冷启动敏感的场景。
2026-07-16 10:24:31
255
原创 HarmonyOS 自定义错误类与错误链
本文介绍了ArkTS在HarmonyOS 6.1+中的错误处理机制,构建了五层错误分类体系(基础错误、网络错误、验证错误、404错误和包装错误),演示了错误抛出捕获、错误链追踪、finally清理和instanceof类型路由等核心功能。通过继承Error类实现带错误码的自定义错误,利用WrappedError保留原始错误信息,结合finally确保资源释放,并使用instanceof实现类型安全的错误处理路由。文末提供了模拟器运行结果和常见问题解答,为开发健壮的HarmonyOS应用提供了完整的错误处理方
2026-07-16 10:23:06
192
原创 HarmonyOS ArkTS 属性访问与 rest 参数(解构替代方案)
本文介绍了在ArkTS严格模式下无法使用TypeScript解构赋值的替代方案。ArkTS通过直接属性访问、索引访问等方法实现等价功能,例如对象属性访问user.id替代解构{id},数组索引nums[0]替代[first]。同时,ArkTS支持rest参数收集不定参数,可用slice替代数组解构,并通过for...of迭代访问索引和值。对于多返回值,推荐返回具有命名属性的对象而非数组。这些替代方案在保证静态类型安全的同时,提供了清晰的代码表达。
2026-07-16 10:21:52
214
原创 HarmonyOS Map / Set:有序字典与去重集合
HarmonyOS Map / Set:有序字典与去重集合 适用版本:HarmonyOS 6.1(API 12)及以上 验证环境:Pura 90 Pro 模拟器(HarmonyOS 6.1.1,API
2026-07-16 10:08:18
221
原创 HarmonyOS 类继承与接口:extends、implements、abstract、override
本文介绍了HarmonyOS 6.1及以上版本中ArkTS面向对象编程的核心机制。主要内容包括:1)ArkTS内置类型命名冲突的注意事项,需避免使用内置名称;2)接口(Interface)的定义与实现规则;3)抽象类(Abstract Class)的使用方法;4)具体子类通过extends继承和implements实现接口的方式;5)多级继承和多态的实现;6)instanceof类型检查的应用。文章还提供了模拟器运行截图和常见问题解答,重点强调了ArkTS在命名规范和语法特性上的特殊要求,如override
2026-07-16 10:06:23
247
原创 HarmonyOS ArkTS 泛型:MyStack<T>、Pair<A,B> 与泛型函数
泛型是让一套逻辑适配多种类型的机制。ArkTS 支持 TypeScript 风格的泛型语法,但有几处严格模式限制需要注意——本文用三个典型例子覆盖完整用法:泛型类(栈结构)、泛型对(Pair)、泛型函数(findMax / reverseArray)。
2026-07-15 10:01:37
222
原创 HarmonyOS async/await 进阶:Promise.all 并发控制实战
日常开发中,页面初始化往往需要同时请求多个接口(用户信息、订单列表、推荐商品)。如果用串行await逐个等待,总耗时是所有请求时间之和;改用同时发出,总耗时只等最慢的那一个。本文用模拟器实测对比两种方式的差异,并演示处理部分失败的场景。// ArkTS 严格模式:数组元素必须是 class,不能用 interface 字面量。
2026-07-15 10:00:30
309
原创 HarmonyOS Sendable 对象模型:跨并发实例零拷贝共享
本文介绍了HarmonyOS 6.1+中@Sendable装饰器的使用方法,它支持以引用方式在并发实例间传递对象,避免序列化开销。核心规则包括:属性必须为Sendable类型(如基础类型、collections.Array等),且不能继承普通类。通过DataPacket示例展示了TaskPool中的引用传递与普通参数序列化的对比,证实@Sendable在处理大数据量时的性能优势。文中还提供了collections.Array传递大数组的代码示例,并解答了常见问题,强调类型安全和并发修改注意事项。该特性适用于
2026-07-15 09:56:02
709
原创 HarmonyOS ArkTS Worker 线程:独立执行环境详解
本文介绍了HarmonyOS 6.1及以上版本中Worker线程的使用方法,并与TaskPool进行了对比。Worker适用于长驻后台、需要持续交互的场景,如数据处理和流式处理。文章详细说明了Worker的生命周期、通信方式、进度上报等特性,并通过质数计算示例展示了主线程与Worker线程的交互流程。关键点包括Worker的创建、消息传递、错误处理及终止操作,同时强调了文件路径规则和消息序列化限制。示例代码清晰展示了全链路实现,最终在模拟器上验证了功能效果。
2026-07-15 09:54:55
207
原创 HarmonyOS ArkTS 并发编程:TaskPool 多线程实战
摘要: 本文介绍如何在HarmonyOS 6.1+中使用TaskPool实现多线程并发任务,避免主线程卡顿。通过三个计算任务(斐波那契数列和质数统计)演示核心流程: 关键步骤:用@Concurrent标记顶层任务函数,通过taskpool.execute()提交任务,await异步获取结果并更新UI。 规则:任务需可序列化,参数/返回值通过序列化传递,await后自动切回主线程。 效果:任务并发执行(如计算Fib(45)耗时44ms),主线程保持流畅。完整代码展示了状态管理、错误处理及Promise.all
2026-07-15 09:43:07
203
原创 在仓颉语言里造一个没有反射的服务端框架
本文介绍了ACE Framework的四个核心实现机制:洋葱管线、零反射依赖注入、AOP方法织入和类型安全ORM映射。 洋葱管线通过数组引用解决闭包状态修改问题,递归实现中间件组合,确保next()调用安全性和执行顺序。 零反射依赖注入利用编译期宏生成顶层let变量,在程序启动时自动注册Bean,通过闭包工厂实现依赖解析,内置循环依赖检测。 AOP方法织入采用立即执行闭包技术包裹原方法体,使得注解逻辑能正确处理各种返回语句,支持缓存、重试等场景。 类型安全ORM通过接口契约和编译期宏生成映射代码,实现行到对
2026-07-04 21:57:54
282
原创 在鸿蒙 PC 上用 Rust 写一个 2048:ArkTS 负责界面,Rust 负责灵魂
本文介绍了一个基于Rust和ArkTS的开源鸿蒙PC应用开发实践,目标是让2048游戏在HarmonyOS PC(2in1设备)上以原生窗口应用形态运行。文章详细记录了从零环境配置到最终实现的完整过程,包括环境搭建、Rust核心逻辑实现、跨平台编译和ArkTS界面开发的实践经验。 文章重点介绍了轻量级命令行工具ark-cli的使用,它简化了鸿蒙开发环境的配置,避免了安装庞大的DevEco Studio。作者通过Rust实现游戏核心逻辑,利用ohos.rs工具链将代码编译为鸿蒙原生.so模块,再由ArkTS负
2026-06-20 23:32:25
1332
原创 用 Go 开发鸿蒙 PC(2in1)二维码生成应用:从环境搭建到落地的完整实战
鸿蒙 PC(2in1 形态,如 MateBook 系列)与手机共用同一套 OHOS 应用模型:UI 用 ArkTS,原生能力走 NAPI。把应用声明为2in1设备类型即可在 PC 上运行。选 Go 做核心,是因为 Go 的成熟、生成 PNG 只要几行。怎么把 Go 编出来的东西塞进鸿蒙 PC 应用。这是全文重点。
2026-06-20 23:04:05
306
原创 把 Go 塞进鸿蒙PC:windows上用 c-shared 跑 2048
本文分享了在开源鸿蒙PC上实现「Go语言编写游戏逻辑 + ArkTS构建界面」的技术方案。作者详细记录了从零搭建开发环境、解决Go与鸿蒙musl libc的兼容性问题到最终实现跨架构运行的全过程。关键点包括:1) 通过CGO将Go代码编译为动态库,经NAPI桥接ArkTS界面;2) 在x86_64模拟器上遭遇Go TLS模型与musl libc不兼容的隐蔽问题;3) 创新性地使用鸿蒙NDK工具链实现Go交叉编译。文章特别强调了ARM64真机与x86模拟器的架构差异风险,并提供了完整的工具链配置脚本和环境排查
2026-06-20 22:54:00
517
原创 rust的brotli数据压缩库鸿蒙化适配
目标很明确:不改 rust-brotli 一行源码,把 brotli 压缩/解压能力搬到鸿蒙,然后用 ArkTS 验证一切正常。,基于 napi-rs 的鸿蒙 Rust 框架。
2026-06-18 18:06:27
563
原创 HarmonyOS 安全与隐私开发实战:加密算法、生物认证与数据保护
功能核心 API最佳场景AES 加密本地敏感数据加密SHA256 哈希密码存储/文件校验生物认证应用锁/支付验证权限管理动态权限申请密钥存储密钥安全保存敏感数据必须加密存储,不要明文保存优先使用生物认证提升用户体验权限遵循最小化原则,用到时才申请数据传输使用 HTTPS + 证书固定参考文档:华为开发者联盟 HarmonyOS 5.0.0 API 12 — 安全开发指南。
2026-06-17 11:51:04
318
原创 HarmonyOS 高级 UI 实战:手势系统、Canvas 自定义绘制与复杂动画
Entry@Componentbuild() {Text(‘🎨 Canvas 画板’).fontSize(24).fontWeight(FontWeight.Bold)// 绘制网格背景x += 30) {y += 30) {// 绘制用户线条i++) {})})Button('清除').fontSize(12).onClick(() => { this.points = [] })@Component: number;
2026-06-16 11:50:49
230
原创 HarmonyOS 数据持久化开发实战:KVStore、关系型数据库与 Preferences
@Entry@Componentstruct PreferencesDemo {@State username: string = ‘’;@State fontSize: number = 16;@State isDarkMode: boolean = false;private prefs?: preferences.Preferences;async aboutToAppear() {const options: preferences.Options = { name: ‘app_set
2026-06-12 22:24:53
291
原创 HarmonyOS ArkUI 组件开发实战:自定义组件与高级布局详解
console.info(‘组件即将出现’);// 适合执行初始化操作:加载数据、注册监听等console.info(‘组件即将销毁’);// 适合执行清理操作:取消监听、释放资源等console.info(‘组件布局完成’);build() {Text(计数: ${this.count}Button(‘增加计数’).fontSize(18).onClick(() => { this.count++ })
2026-06-10 11:51:34
274
原创 HarmonyOS ArkTS 状态管理深度解析:@State、@Prop、@Link、@Provide/@Consume 实战指南
ArkTS 的状态管理机制围绕「装饰器」展开。装饰器是 ArkTS 语言对 TypeScript 的扩展,通过语法标记变量,赋予其特殊的状态管理能力。装饰器作用范围数据流向使用场景@State组件内自管理组件内部状态@Prop父子组件单向(父→子)父传子只读数据@Link父子/祖先-后代双向同步父子组件共享状态@Provide祖先提供向下广播跨层级数据共享@Consume后代接收向上绑定跨层级接收数据@Observed嵌套对象深层观测复杂对象状态管理@State。
2026-06-07 12:11:31
383
原创 HarmonyOS ArkTS 状态管理深度解析:@State、@Prop、@Link、@Provide/@Consume 实战指南
State。
2026-05-30 11:53:01
405
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅