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