今年暑假,EMQ 攜手開(kāi)源之夏,與高校學(xué)生開(kāi)展了一場(chǎng)精彩紛呈的開(kāi)源之旅。開(kāi)源之夏(OSPP)是由中科院軟件所「開(kāi)源軟件供應(yīng)鏈點(diǎn)亮計(jì)劃」發(fā)起的、面向高校學(xué)生的暑期開(kāi)源活動(dòng),旨在鼓勵(lì)在校學(xué)生積極參與開(kāi)源軟件的開(kāi)發(fā)維護(hù),促進(jìn)優(yōu)秀開(kāi)源軟件社區(qū)的蓬勃發(fā)展,培養(yǎng)和發(fā)掘更多優(yōu)秀的開(kāi)發(fā)者。
開(kāi)源軟件的協(xié)作開(kāi)發(fā)模式,是當(dāng)今軟件領(lǐng)域開(kāi)展的極為成功的大規(guī)模協(xié)作實(shí)踐。近年來(lái),我國(guó)高校、科研機(jī)構(gòu)與企業(yè)在開(kāi)源領(lǐng)域不斷探索前進(jìn),將開(kāi)源精神薪火相傳,把一個(gè)個(gè)開(kāi)源項(xiàng)目推向更好的未來(lái)。
EMQ 帶著對(duì)開(kāi)源的熱忱與初心,攜旗下 EMQX、MQTT X、LF Edge eKuiper 三大開(kāi)源項(xiàng)目首秀開(kāi)源之夏,吸引了不少對(duì)前端、SQL 語(yǔ)法、流式計(jì)算等領(lǐng)域感興趣的學(xué)生。從項(xiàng)目選擇、撰寫項(xiàng)目申請(qǐng)書,到在核心研發(fā)工程師的指導(dǎo)下開(kāi)展項(xiàng)目開(kāi)發(fā)貢獻(xiàn)代碼,整個(gè)過(guò)程中每個(gè)參與者都收獲滿滿。歷經(jīng)三個(gè)月的項(xiàng)目開(kāi)發(fā)和一個(gè)月的 PR 合并期,中選并參與 EMQ 開(kāi)源項(xiàng)目的學(xué)生均順利通過(guò)結(jié)項(xiàng)審核。在此,我們恭喜陳俊羽、雷佳祥和葛玉菲三位同學(xué),也感謝各位用心敲下的每一串代碼,與 EMQ 共同為開(kāi)源物聯(lián)網(wǎng)基礎(chǔ)設(shè)施軟件建設(shè)貢獻(xiàn)力量。
EMQX 旗下項(xiàng)目|MQTT-SN 客戶端實(shí)現(xiàn)
申請(qǐng)者:陳俊羽 南方科技大學(xué)電子科學(xué)與技術(shù)專業(yè)
項(xiàng)目描述:EMQX 是 EMQ 旗下的開(kāi)源大規(guī)模分布式物聯(lián)網(wǎng) MQTT 消息服務(wù)器,需要基于 Erlang 語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè) MQTT-SN v1.2 客戶端,來(lái)完善 EMQX 對(duì) MQTT-SN 網(wǎng)關(guān)的功能測(cè)試和應(yīng)用。目前 Github 上主要的 MQTT-SN 客戶端均為 C 或 C++ 語(yǔ)言版本,難以直接原生嵌入 Erlang 語(yǔ)言的 MQTT-SN 網(wǎng)關(guān)中,本項(xiàng)工作的完成,也能夠填補(bǔ)開(kāi)源社區(qū)的這一空白。
結(jié)項(xiàng)報(bào)告:
項(xiàng)目完成度:實(shí)現(xiàn)了 MQTT-SN 數(shù)據(jù)包的序列化和反序列化處理,實(shí)現(xiàn)了使用狀態(tài)機(jī)對(duì)協(xié)議交互邏輯的處理,實(shí)現(xiàn)了 MQTT-SN 客戶端的單元測(cè)試與集成測(cè)試。
代碼貢獻(xiàn)量:改動(dòng) 21 個(gè)文件,新增 3828 行。
學(xué)習(xí)心得:
非常開(kāi)心能再次投入到開(kāi)源之夏的活動(dòng),在導(dǎo)師的幫助下,順利完成整個(gè)項(xiàng)目的開(kāi)發(fā),我感到非常幸運(yùn)。
我選擇這個(gè)項(xiàng)目的初衷是,在我學(xué)習(xí)了 Erlang 和 Elixir 語(yǔ)言的語(yǔ)法和基礎(chǔ)知識(shí)之后,希望能有一個(gè)系統(tǒng)性的項(xiàng)目,能夠讓我進(jìn)行函數(shù)式編程語(yǔ)言的實(shí)際應(yīng)用,通過(guò)不同語(yǔ)言之間的對(duì)比,加深對(duì)于編程語(yǔ)言設(shè)計(jì)和操作系統(tǒng)的了解。
當(dāng)了解到 EMQ 社區(qū)主要使用的語(yǔ)言,是比較特別的 Erlang、Rust 和 Haskell 時(shí),我就對(duì)這個(gè)社區(qū)有了較大的好感,包括后面和導(dǎo)師對(duì)接時(shí),其專業(yè)水平令我非常認(rèn)可。在編程上我有一定的基礎(chǔ),加上曾參與過(guò)兩屆開(kāi)源之夏,我盡可能優(yōu)先自己解決問(wèn)題,但也有對(duì)于函數(shù)式編程和 MQTT-SN 協(xié)議不甚了解的地方,比如關(guān)于 Erlang 特有的 Actor 模型和使用的 mock 框架,每次當(dāng)我詢問(wèn)導(dǎo)師時(shí),都非常熱情地幫我解答,也都馬上能夠迅速解決我的問(wèn)題。
除了對(duì)項(xiàng)目的實(shí)現(xiàn)以外,我還嘗試將某些較新的理念應(yīng)用在項(xiàng)目中,比如,之前我已經(jīng)了解到 Github Action 可以實(shí)現(xiàn)基于 CI/CD 的自動(dòng)化檢查測(cè)試,但這次在項(xiàng)目實(shí)施的過(guò)程中,我需要實(shí)現(xiàn) HTML 格式文檔的部署時(shí),了解到 Action 同樣可以實(shí)現(xiàn)對(duì)于項(xiàng)目主頁(yè)的自動(dòng)化部署,從而實(shí)現(xiàn)了文檔隨項(xiàng)目的自托管。也正是開(kāi)源之夏這樣一個(gè)開(kāi)放性的活動(dòng),能夠讓我逐步探索各種新的技術(shù)和最佳實(shí)踐。
項(xiàng)目成果:
1、完成 MQTT-SN 客戶端實(shí)現(xiàn),并提供了命令行的發(fā)布/訂閱的接口。
2、完成核心功能的單元測(cè)試、與 EMQX MQTT-SN 網(wǎng)關(guān)的集成測(cè)試。本項(xiàng)目的覆蓋率達(dá)到 65%。
3、完成并發(fā)布了對(duì)外的接口文檔
MQTT X 旗下項(xiàng)目|Electron 桌面客戶端軟件的自動(dòng)更新
申請(qǐng)者:雷佳祥 太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院-智能科學(xué)與技術(shù)
項(xiàng)目描述:MQTT X 是 EMQ 旗下的一個(gè)強(qiáng)大的跨平臺(tái) MQTT 5.0 桌面和 CLI 客戶端。目前已經(jīng)支持并提供了完整的 MQTT 協(xié)議的功能測(cè)試能力,需要一些針對(duì)前端和網(wǎng)絡(luò)功能方面的優(yōu)化,使其更加完整易用。本項(xiàng)目將為 MQTT X 添加一些可自動(dòng)更新版本的功能,程序內(nèi)更新后顯示新版本的發(fā)布日志等的功能,用戶可以減少一些手動(dòng)操作來(lái)更快體驗(yàn)和使用到后續(xù)新版本的功能,從而提升整體的軟件使用體驗(yàn)。
結(jié)項(xiàng)報(bào)告:
項(xiàng)目完成度:根據(jù)項(xiàng)目的產(chǎn)出要求(實(shí)現(xiàn)自動(dòng)化更新與彈出更新日志),已全部完成并上線。
代碼貢獻(xiàn)量:貢獻(xiàn)代碼量為 200 行左右,已發(fā)布到新版本。
學(xué)習(xí)心得:
很慶幸此次暑假能發(fā)現(xiàn)并參加開(kāi)源之夏這么有意義的活動(dòng),整個(gè)活動(dòng)技術(shù)氛圍十分濃厚,同學(xué)們?cè)趨⑴c競(jìng)選的時(shí)候也表現(xiàn)得十分積極。開(kāi)源在我看來(lái)是一個(gè)十分有意義的事,在此之前我不太理解開(kāi)源,也沒(méi)有接觸過(guò)開(kāi)源,感謝這次活動(dòng)能讓我步入開(kāi)源的大門。
技術(shù)上的提升:
·極大開(kāi)拓了前端開(kāi)發(fā)的視野,在做這個(gè)項(xiàng)目之前,我還只認(rèn)為前端可能就是開(kāi)發(fā)網(wǎng)站、APP、微信小程序的工程師,做完這個(gè)項(xiàng)目后,我發(fā)現(xiàn)前端還可以幫助 PC 端應(yīng)用實(shí)現(xiàn)諸如自動(dòng)化更新等強(qiáng)大的功能,只要是做優(yōu)化、處理用戶交互方面的功能都是前端的開(kāi)發(fā)范圍。
·更加了解了 Electron、Typescript 等技術(shù),對(duì)跨平臺(tái)開(kāi)發(fā)有更多的了解。
·熟悉了基本的 git 操作與 GitHub 的提交 PR 的流程,以前不明白 git 的用處,現(xiàn)在極大熟練了 git 與GitHub 的使用。
綜合能力的提升:
·遇到困難時(shí),多了很多從容,善于使用搜索來(lái)了解 bug 并解決 bug。
·從學(xué)生思維轉(zhuǎn)變?yōu)楣こ處熕季S,即:遇到自己不會(huì)的技術(shù)時(shí),可以以解決問(wèn)題為目的,去學(xué)習(xí)新的技術(shù),這樣效率會(huì)非常的高。
·開(kāi)發(fā)時(shí)會(huì)頻繁的與導(dǎo)師溝通,需要表達(dá)清楚問(wèn)題所在,所以在開(kāi)發(fā)的過(guò)程中也極大的提升了我的溝通能力。
項(xiàng)目成果:
自動(dòng)化更新功能上線后已經(jīng)下載目標(biāo)版本的安裝包,完成了各種場(chǎng)景下的更新測(cè)試。
LF Edge eKuiper 旗下項(xiàng)目|流式計(jì)算窗口函數(shù)優(yōu)化探索
申請(qǐng)者:葛玉菲 西安郵電大學(xué)軟件工程專業(yè)
項(xiàng)目描述:LF Edge eKuiper 是由 EMQ 發(fā)起的 Go 語(yǔ)言實(shí)現(xiàn)的輕量級(jí)物聯(lián)網(wǎng)邊緣分析、流式處理開(kāi)源軟件項(xiàng)目,現(xiàn)已捐贈(zèng)給 LF Edge基金會(huì)。窗口函數(shù)是流式計(jì)算的核心概念之一,也是開(kāi)源邊緣流式計(jì)算引擎 eKuiper 常用的功能之一。eKuiper 實(shí)現(xiàn)了幾種常見(jiàn)的時(shí)間窗口和計(jì)數(shù)窗口,但是目前對(duì)于較長(zhǎng)時(shí)間的窗口的優(yōu)化仍較為欠缺。流式計(jì)算窗口的使用場(chǎng)景多種多樣,業(yè)界和學(xué)術(shù)界已有較多的研究和優(yōu)化方案。本項(xiàng)目的目標(biāo)是實(shí)現(xiàn)并設(shè)計(jì) WASM 擴(kuò)展框架,方便用戶使用 WASM 函數(shù)擴(kuò)展 eKuiper 的處理能力。完成項(xiàng)目可以幫助開(kāi)發(fā)者更深入地理解流式計(jì)算、大數(shù)據(jù)領(lǐng)域和數(shù)據(jù)庫(kù) SQL 引擎等方面的通用知識(shí)并應(yīng)用于今后的工作學(xué)習(xí)中。
結(jié)項(xiàng)報(bào)告:
項(xiàng)目完成度:已按照原定方案實(shí)施項(xiàng)目,并積極完成了提高部分的課題。
代碼貢獻(xiàn)量:改動(dòng) 26 個(gè)文件,新增 1355 行,刪除 4 行。
學(xué)習(xí)心得:
很高興能夠參加暑期開(kāi)源活動(dòng),整個(gè)活動(dòng)參與下來(lái),我從中學(xué)到了很多,不但了解到了很多開(kāi)源社區(qū),更是可以在一個(gè)社區(qū)深造,完成項(xiàng)目。開(kāi)源在我看來(lái)是非常有意義的,不但可以開(kāi)闊眼界,而且每個(gè)人都有可能為開(kāi)源社區(qū)做出貢獻(xiàn),并在與開(kāi)源同好們交流的過(guò)程中獲得很大的提升。此外,想要上手某一項(xiàng)技術(shù)時(shí),盡量查詢社區(qū)官方文檔,這是了解學(xué)習(xí)最好的途徑。
技術(shù)上的提升:
·了解并學(xué)習(xí)了一門新技術(shù) Webassembly,通過(guò)咨詢社區(qū)導(dǎo)師和查閱社區(qū)文檔學(xué)會(huì)這項(xiàng)技術(shù)的使用,學(xué)會(huì)如何運(yùn)用到我的開(kāi)源項(xiàng)目中。
·熟練了代碼的調(diào)試。調(diào)試也可以讓我們很方便的了解代碼的運(yùn)行堆棧與過(guò)程。
·學(xué)會(huì)如何上手了解一個(gè)社區(qū)的項(xiàng)目,熟悉了基本的 git 操作與 Github 提交 PR 的流程。
項(xiàng)目成果:
成功將 WASM 引入 ekuiper 插件機(jī)制,使其可以在流式 SQL 中調(diào)用 WASM 形式的函數(shù)。
后記
感謝各位導(dǎo)師和學(xué)生對(duì)開(kāi)源項(xiàng)目開(kāi)發(fā)的奉獻(xiàn),希望有意深耕開(kāi)源物聯(lián)網(wǎng)數(shù)據(jù)基礎(chǔ)設(shè)施軟件領(lǐng)域的學(xué)生們持續(xù)精進(jìn)技術(shù)能力,永葆對(duì)開(kāi)源的熱愛(ài)。EMQ 期待在不久的將來(lái)與各位新生力量共同打造高性能、高可用、高安全的世界級(jí)開(kāi)源軟件產(chǎn)品,服務(wù)人類未來(lái)產(chǎn)業(yè)與社會(huì)。
審核編輯黃昊宇
-
開(kāi)源
+關(guān)注
關(guān)注
3文章
3358瀏覽量
42523 -
EMQX
+關(guān)注
關(guān)注
0文章
8瀏覽量
280
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論