编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献、分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点。

巴延兴
深圳开鸿数字产业发展有限公司
资深OS框架开发工程师

开源软件(以下简称“开源”)于上世纪80年代应运而生,随后惠及全球。如今,开源技术支撑了 90% 以上的互联网产品,并已经深入到各行业的商业应用中。2021 年,我国首次将“开源”明确列入《中华人民共和国国民经济和社会发展第十四个五年规划和 2035 年远景目标纲要》。虽然我国开源建设起步相对较晚,但国家在战略层已经开始给予了开源的肯定和支持。目前,开源已成为全球软件技术和产业创新的主导模式。

作为开放原子开源基金会的白金捐赠人、OpenAtom OpenHarmony(以下简称“OpenHarmony”)B 类捐赠人,深开鸿核心技术团队完整地继承了前期 OpenHarmony 业务技术积累,以共建共治共享的开源精神,以成为智能物联网操作系统领军者为战略目标,基于 OpenHarmony 聚焦智能物联网操作系统(KaihongOS)的技术研发与持续创新。致力于构建多赢的物联网操作系统生态圈,持续拓宽行业边界,实现万物互联。

作为资深 OS 框架开发工程师,巴延兴负责整体技术规划、项目看护、成果交付以及与社区的沟通协调;辅助工具 SIG 的申请成立、SIG 的孵化以及毕业流程的推进工作。其中,辅助工具 SIG 包括 NAPI 框架生成工具、开机动画工具、IDL 转换工具等一系列工具。

他常说,在这个世上,没有从天而降的好运和奇迹,机会只留给有准备的人。巴延兴抓住机遇,全力拥抱开源时代,在开源软件的基础上,为企业提供安全、稳定的企业级开源软件,并将代码百分之百回馈给社区。十年如一日对工作极致负责的他,用专业汇聚能量,目前共计带领团队主导 4 个 SIG、参与 12 个 SIG 的代码贡献,累计向主干贡献代码 30W+ 行。

此次我们邀请了深开鸿巴延兴前来参加访谈,希望通过他的视角,带我们更加全面地了解深开鸿团队背后的故事。

Q=OpenHarmony A=巴延兴

Q1:可以介绍下自己以及所在开发团队吗?

大家好,我是巴延兴,是深圳开鸿数字产业发展有限公司资深OS框架开发工程师。从业以来,我一直深耕终端设备的研发领域,拥有十多年的移动系统开发经验,去年有幸加入深开鸿南京研发团队,希望为操作系统发展贡献绵薄之力。

深开鸿团队一方面承担着公司 KaihongOS(OpenHarmony 商业发行版之一)的研发任务,另一方面积极地、大颗粒地、全方位地面向 OpenHarmony 社区进行开源贡献。

Q2:作为开发领域技术达人,请问哪些原因让您决定参与OpenHarmony的社区贡献?

随着 5G 时代的到来,数字化升级、万物互联、人机物融合等需求越来越旺盛,“开源”首次被明确列入《中华人民共和国国民经济和社会发展第十四个五年规划和 2035 年远景目标纲要》。作为互通互联生态架构基座的操作系统,OpenHarmony 应运而生。

深开鸿技术团队从 OpenHarmony 开源项目成立伊始就与  OpenHarmony 工作组展开了深度合作,是业内首批对 OpenHarmony 在产业上的应用及赋能进行深入研究的公司。我认为未来的市场将出现移动端操作系统高速发展的窗口期,因此,当我得知有深开鸿这样一家以 OpenHarmony 为技术底座的操作系统发行版公司诞生的时候,我便毫不犹豫地加入了。

自参与 OpenHarmony 社区共建以来,我深度参与了代码共建的工作,结合多年来在系统内核、系统安全、网络通信、多媒体及 AI 等技术领域的积累,主导多个 SIG 组的形式持续向社区贡献高质量代码,不断夯实  OpenHarmony 的基础能力,加速推进 OpenHarmony 生态建设。

Q3:恭喜您获得2月代码贡献之星,非常了不起,可以说说您在社区具体做了哪些代码贡献,获得哪些成果吗?

去年 6 月,深开鸿开始参与 RISC-V SIG,从芯片适配开始,再到承接 Driver SIG 的音视频硬编解码 HDF 框架实现的任务。随着开源经验的积累,团队也汇聚了各领域的技术专家。因此,深开鸿在 2021 年 9 月份正式主导了第一个 SIG 组——AI 框架集成 SIG 组。

在这过程中,我参与了需求分析、架构设计、代码框架搭建以及代码评审、入库等研发全流程;基于 RockChip Toybrick 3568x 实现了 HDF 框架开发;基于瑞芯微的 MPP 框架提供的 MppBuffer、MppBufferGroup 以及 packet 和 frame 相关的组件和接口,结合 Buffer 队列,共享内存等机制,实现了硬件编解码流程,并完成了相关的编解码演示程序和单元测试程序;基于 HJSUnit 测试框架,使用 JavaScript 语言编写 JS 全组件属性、样式、事件、方法等测试脚本;以上相关代码都已合入主干。

伴随研发团队规模逐渐扩大,团队能力逐渐提升,可参与主导或共建的技术领域也越来越多——辅助工具、软总线、多媒体、内核等项目都有深开鸿团队的身影,慢慢呈现了“遍地开花”的趋势,也看到我们的成果帮助了更多的开发者,真正感受到了生态的繁荣。

到目前为止,深开鸿主导了 4 个 SIG,参与共建的 SIG 有 12 个,尤其是内核、软总线、HDF、ArkUI 等根技术领域都有深度参与,累计向主干贡献代码 30W+ 行。

Q4:可以请您给我们分享一下,在整个开发的过程中,您和您的团队遇到过哪些技术上或其他方面的难题?这些难题又是如何被逐一解决的?从中总结了哪些经验呢?

我们在内核开发过程中遇到不少难题,比如内核支持的单板种类有限、Hi3861 开发板内核固化、编译环境搭建复杂等问题都加剧了进入内核研发的难度。面对这些困难,我们在探索过程中也摸索出了一套方法。

首先,我们利用仿真技术解决单板有限的问题,其次利用 Q/A 的方式将每一步都记录下来,输出技术文档,夯实每一步的脚印。对新技术保持一颗好奇心是每一个内核开发人员必备的素养,这样的心态促使我们不断攻坚克难。

目前内核开发工作还处于初级阶段,取得了初步的成果,但我们还会继续进行研发投入,在这过程中,不仅能提高我们自身的技术能力,而且还能增强公司的技术储备,促成良性循环。

Q5:加入OpenHarmony生态以来,深开鸿在社区的开源贡献方面取得了不小的成果,您认为“秘诀”都有哪些呢?

如果非要说有什么“秘诀”的话,那就是深开鸿始终坚持从开源中来,到开源中去的开源理念,结合 OpenHarmony 系统特性以及行业应用对操作系统的需求,推出具备行业共性的 KaihongOS 商业发行版,在满足客户需求的同时,也将沉淀下来的技术能力及行业实践回馈给社区。

除了主干代码贡献,我们在三方库、知识体系工作组、兼容性工作组、基础服务、开发板等方向也同时发力,多维度地、多层次地进行开源贡献。同时,我们的贡献也得到了社区的认可,深开鸿已正式成为兼容性工作组的第一家扩展成员的单位。

Q6:您最想吐槽OpenHarmony哪些方面?对未来的OpenHarmony有什么期望?

OpenHarmony 目前处在起步阶段,很多事物尚未成熟,比如系统能力还有待增强;应用生态不够丰富;开发文档不够齐全,开发者入门门槛高等问题都亟待解决,这就需要有更多的技术精英、行业大咖参与 OpenHarmony 社区共建。至于对未来的期望,自然是希望它能够蓬勃发展,向当今主流的开源生态看齐甚至超越。

Q7:未来深开鸿还会做哪些事情?朝哪个方向努力?

作为 OpenHarmony 开源项目的共建单位之一,深开鸿有责任、有义务、更有能力持续完善 OpenHarmony 的技术能力、不断以创新技术加速开源生态建设的布局。从产业生态角度来看,丰富且有活力的生态也将推动 OpenHarmony 的持续提升、优化、完善,最终反哺产业生态,形成一个良性的、有机的循环。

因此,我们会一如既往地推进 KaihongOS 在各个行业的商业落地,为千行百业赋能的同时,将沉淀、提炼出来的技术能力再贡献给 OpenHarmony 社区,真正践行从开源中来到开源中去的理念,这就是深开鸿在未来要做的事情,要努力的方向。

Q8:有什么想对其他企业和开发者说的话吗?

作为一名普通的工程技术人员,有幸遇到这样的一个时代,更有幸能够亲身参与这个时代的伟大变革。机会留给有准备的人,我会竭尽所能去拥抱这样的时代,把握时代赋予的机会。

个人的力量是渺小的,在这里我呼吁更多的有识之士、志同道合者参与到 OpenHarmony 生态的共建,大家一起携起手来,推动它的繁荣与发展!

搜索

复制

巴延兴:从主导多个SIG组到OpenHarmony“代码贡献之星”,我是如何做到的?的更多相关文章

  1. HDU.2149 Public Sale (博弈论 巴什博弈)

    HDU.2149 Public Sale (博弈论 巴什博弈) 题意分析 巴什博奕裸题 博弈论快速入门 代码总览 #include <bits/stdc++.h> using namesp ...

  2. HDU.1846 Brave Game (博弈论 巴什博弈)

    HDU.1846 Brave Game (博弈论 巴什博弈) 题意分析 巴什博奕裸题 博弈论快速入门 代码总览 include <bits/stdc++.h> using namespac ...

  3. 最受IT公司欢迎的50款开源软件

    文章来自:云头条编译 本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品. 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT ...

  4. 2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件

    2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服 ...

  5. AngularJS入门教程

    1. 简介:AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.所以我做了一些工作(你也可以觉得是 ...

  6. Angular.js入门教程

    简单介绍 AngularJS是为了克服HTML在构建应用上的不足而设计的.首先Html是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了. 通常,我们可以通过以下技术来解 ...

  7. Javascript开发之工具归纳

    写在前面 由于JS开发对我来说是全新的技术栈,开发过程中遇到了各种各样的框架.工具,同时也感叹一下相对于.Net的框架(工具框架以及测试框架等)JS框架真的是太丰富了.社区的力量果然强大---也是由此 ...

  8. AngularJS开发指南1:AngularJS简介

    什么是 AngularJS? AngularJS 是一个为动态WEB应用设计的结构框架.它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚.简洁地构建你的应用组件.它的创新点在于, ...

  9. 11个实用的Apache .htaccess配置

    <IfModule mod_rewrite.c>RewriteEngine onRewriteBase /RewriteRule cat_([0-9]{1,})_([0-9]{1,})_( ...

  10. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...

随机推荐

  1. React 组件之状态

    没有什么是不可能的,只是需要找到正确的方法. 1. 什么是状态? 状态就是组件内部特有数据的载体(组件数据挂载方式),改变数据页面就会刷新,由组件自己设置和更改,也就是说由组件自己产生.维护,使用状态 ...

  2. 【Azure 应用服务】Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误

    问题描述 Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误 问题解答 在Function App的门户页面中, ...

  3. 图数据库认证考试 NGCP 错题解析 vol.02:这 10 道题竟无一人全部答对

    如果你读过「NebulaGraph 错题解析第一期」,大概知道在错题解析未出来之前,NebulaGraph 专业技能认证 NGCP(全称 NebulaGraph Certified Professio ...

  4. VC-MFC(2) 随笔笔记

    1 //点击按钮出来对话框---------------- 2 3 1.首先添加 对话框(标识符) 4 2.在点击按钮出来第二个对话框,直接鼠标右键 新建 类 5 3.在.CPP添加新建类的 头文件 ...

  5. Mac上LLAMA2大语言模型安装到使用

    LLAMA介绍 LLaMA是由Facebook的母公司Meta AI设计的一个新的大型语言模型.LLaMA拥有70亿到650亿个参数的模型集合,是目前最全面的语言模型之一. Llama是目前唯一一个可 ...

  6. Linux 系统进程管理

    Linux 系统进程管理 目录 Linux 系统进程管理 一.进程的概述 1.1 什么是进程? 1.2 进程和程序的区别 1.3 进程的生命周期 1.4 进程的运行过程 二. 静态显示进程状态-ps ...

  7. Servlet中访问路径配置为/*时,使用请求转发造成内存溢出

    一.问题由来 最近在测试Servlet的请求转发功能,准备抽取一个公共的PageJumpTestServlet,用来做页面跳转功能. 这样不用每次在测试的时候,都单独写一个Servlet用来做页面跳转 ...

  8. 使用IDEA中的Git提交代码到错误的分支,回滚代码后如何强制push代码-2022新项目

    一.问题由来 当前新项目的开发分支非常的多,自己看了一下大概有20多个分支.每次开发完一个版本就会重新创建几个新的分支,每个开发人员对应一个 自己单独的开发分支,因此才会出现这么多的分支.分支多了之后 ...

  9. [好文推荐] 如何保护价值上千万的Node.js源代码? - 主要是ncc

    如何保护价值上千万的Node.js源代码? https://zhuanlan.zhihu.com/p/84386456 一个强大的JS混淆器. github.com/javascript-obfusc ...

  10. PlacementList must be sorted by first 8 bits of display_id 问题

    问题暂未解决 [37484:0811/103448.115:ERROR:display_layout.cc(551)] PlacementList must be sorted by first 8 ...