巴延興:從主導多個SIG組到OpenHarmony“代碼貢獻之星”,我是如何做到的?

来源:https://www.cnblogs.com/openharmony/archive/2022/05/10/16252621.html
-Advertisement-
Play Games

在 OpenHarmony 生態發展過程中,涌現了大批優秀的代碼貢獻者,本專題旨在表彰貢獻、分享經驗,文中內容來自嘉賓訪談,不代表 OpenHarmony 工作委員會觀點。 ...


編者按:在 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 生態的共建,大家一起攜起手來,推動它的繁榮與發展!

 

 

搜索

複製


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 5月中國資料庫排行榜已出爐!各大資料庫廠商表現如何?排名有何變化?一起來解讀吧! ...
  • 本文和接下來的幾篇文章為閱讀郭霖先生所著《第一行代碼:Android(篇第2版)》的學習筆記,按照書中的內容順序進行記錄,書中的Demo本人全部都做過了。 每一章節本人都做了詳細的記錄,以下是我學習記錄(包含大量書中內容的整理和自己在學習中遇到的各種bug及解決方案),方便以後閱讀和查閱。最後,感激 ...
  • 本文和接下來的幾篇文章為閱讀郭霖先生所著《第一行代碼:Android(篇第2版)》的學習筆記,按照書中的內容順序進行記錄,書中的Demo本人全部都做過了。 每一章節本人都做了詳細的記錄,以下是我學習記錄(包含大量書中內容的整理和自己在學習中遇到的各種bug及解決方案),方便以後閱讀和查閱。最後,感激 ...
  • 本文和接下來的幾篇文章為閱讀郭霖先生所著《第一行代碼:Android(篇第2版)》的學習筆記,按照書中的內容順序進行記錄,書中的Demo本人全部都做過了。 每一章節本人都做了詳細的記錄,以下是我學習記錄(包含大量書中內容的整理和自己在學習中遇到的各種bug及解決方案),方便以後閱讀和查閱。最後,感激 ...
  • 本文和接下來的幾篇文章為閱讀郭霖先生所著《第一行代碼:Android(篇第2版)》的學習筆記,按照書中的內容順序進行記錄,書中的Demo本人全部都做過了。 每一章節本人都做了詳細的記錄,以下是我學習記錄(包含大量書中內容的整理和自己在學習中遇到的各種bug及解決方案),方便以後閱讀和查閱。最後,感激 ...
  • 本文和接下來的幾篇文章為閱讀郭霖先生所著《第一行代碼:Android(篇第2版)》的學習筆記,按照書中的內容順序進行記錄,書中的Demo本人全部都做過了。 每一章節本人都做了詳細的記錄,以下是我學習記錄(包含大量書中內容的整理和自己在學習中遇到的各種bug及解決方案),方便以後閱讀和查閱。最後,非常 ...
  • OpenHarmony電話子系統為 OS 提供了基礎的無線通信能力。支持 TD-LTE/FDD-LTE/TD-SCDMA/WCDMA/EVDO/CDMA1X/GSM 等網路制式的通信模塊,能夠提供高速的無線數據傳輸、互聯網接入等業務,具備語音、簡訊、彩信、SIM 卡等功能。 ...
  • 在直播、語聊房、K 歌房場景中,為增加趣味性和互動性,玩家可以通過變聲來搞怪,通過混響烘托氣氛,通過立體聲使聲音更具立體感。ZegoExpress SDK 提供了多種預設的變聲、混響、混響回聲、立體聲效果,開發者可以靈活設置自己想要的聲音,如果需要試聽,可以啟用耳返進行測試。 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...