語言生態(tài)太重要了!”——這不僅是一句評(píng)論,也是 MoonBit 當(dāng)前努力的方向。
在過去一段時(shí)間里,MoonBit 收到了來自社區(qū)開發(fā)者的許多寶貴反饋。其中,最常被提及的問題包括生態(tài)建設(shè)尚不完善、相關(guān)庫數(shù)量偏少等。
這些聲音再次印證了一個(gè)事實(shí):一門編程語言的發(fā)展離不開完善的生態(tài)支持。我們也深知,工具、文檔、社區(qū)和包的豐富度,才是推動(dòng)語言持續(xù)演進(jìn)的核心動(dòng)力。
因此,我們始終將生態(tài)建設(shè)作為工作的重點(diǎn)方向,積極傾聽社區(qū)建議、持續(xù)完善文檔體系。
截至目前,MoonBit 社區(qū)已經(jīng)累積發(fā)布了 1687 個(gè)包,逐漸形成了初具規(guī)模的開發(fā)生態(tài)。
新 mooncakes.io 開源
為了進(jìn)一步提升用戶體驗(yàn)、推動(dòng)更多開發(fā)者參與生態(tài)共建,我們構(gòu)建了一個(gè)全新的聲明式 Web UI 框架 —— Rabbit-TEA,并基于此框架對(duì) MoonBit 包管理平臺(tái) mooncakes.io 的前端進(jìn)行了全面重構(gòu)。
新版本在保持原有文檔顯示、定義跳轉(zhuǎn)、源碼跳轉(zhuǎn),功能的基礎(chǔ)上,全面提升了文檔瀏覽體驗(yàn)、符號(hào)跳轉(zhuǎn)能力,并引入更強(qiáng)大的模塊搜索功能。
目前,項(xiàng)目已在 GitHub 開源,歡迎社區(qū)開發(fā)者查閱與參與:
https://github.com/moonbitlang/mooncakes.io
1、全新首頁界面:重新設(shè)計(jì)的主頁視覺簡潔,信息層級(jí)清晰。
2、模塊搜索全面升級(jí):支持按模塊名、作者名、關(guān)鍵字多維度搜索,快速定位目標(biāo)包。
3、文檔閱讀體驗(yàn)優(yōu)化:優(yōu)化了method和implementation的排版與樣式,文檔更清晰。
4、文檔搜索優(yōu)化:模塊詳情頁支持類型、函數(shù)和值的即時(shí)搜索與跳轉(zhuǎn),查閱更高效。
關(guān)于 Rabbit-TEA:用 MoonBit 寫前端,不止是嘗試
Rabbit-tea 是一個(gè)受 Elm 架構(gòu)啟發(fā)的聲明式與函數(shù)式 Web UI 框架,為開發(fā)者提供簡潔、高效且可靠的開發(fā)體驗(yàn)。
特性
1、中心化狀態(tài)管理:Rabbit-tea 采用全局狀態(tài)管理,使得應(yīng)用狀態(tài)的維護(hù)更加直觀和簡單。
通過使用moonbit
lang/core/immut
的持久化數(shù)據(jù)結(jié)構(gòu),可以輕松實(shí)現(xiàn)諸如撤銷/重做等高級(jí)功能。
2、易于預(yù)測:界面的視圖通過聲明式的EDSL表示,程序整體以單向數(shù)據(jù)流的形式更新,遵循“單一事實(shí)來源”原則。
HTML EDSL
3、重構(gòu)安全性:Rabbit-tea盡可能避免模糊的String
類型,而是在API中使用嚴(yán)格的類型定義引導(dǎo)用戶。結(jié)合模式匹配和enum
,借助MoonBit的窮盡性檢查,避免常見的運(yùn)行時(shí)錯(cuò)誤,從而確保代碼更加健壯。重構(gòu)時(shí),只需要修改類型定義,然后根據(jù)編譯器的報(bào)錯(cuò)一步步修復(fù)代碼,即可完成工作。
4、輕量級(jí)運(yùn)行時(shí):對(duì)于計(jì)數(shù)器模板項(xiàng)目,Rabbit-tea 生成的 JavaScript 文件在minify后僅為 33KB(包括virtual DOM,未壓縮)。
尾聲
本次重構(gòu)驗(yàn)證了 MoonBit 在 UI 構(gòu)建領(lǐng)域的可行性,實(shí)現(xiàn)了語言在實(shí)際應(yīng)用項(xiàng)目中的落地,也讓 mooncakes.io 的用戶體驗(yàn)邁上了新臺(tái)階。平臺(tái)目前仍在持續(xù)優(yōu)化迭代中,例如即將支持夜間模式與移動(dòng)端適配,并進(jìn)一步優(yōu)化搜索索引機(jī)制。
我們誠邀社區(qū)開發(fā)者與愛好者共同參與 Mooncakes.io 的持續(xù)建設(shè)。無論你是經(jīng)驗(yàn)豐富的開源貢獻(xiàn)者,還是初入開源領(lǐng)域的新手,都?xì)g迎你積極反饋問題、提交 PR,或圍繞 Rabbit-TEA 探索更多可能,幫助平臺(tái)不斷成長。
同時(shí),我們還特別設(shè)立了社區(qū)任務(wù)(Community task)計(jì)劃,鼓勵(lì)社區(qū)開發(fā)者與愛好者們積極參與貢獻(xiàn)。你可以在我們公開的社區(qū)任務(wù)列表中,提交任務(wù)或找到自己感興趣的任務(wù)并認(rèn)領(lǐng)完成,深入?yún)⑴c Mooncakes.io 的建設(shè)與成長。
挑選感興趣的任務(wù),一起打造更豐富、更強(qiáng)大的 MoonBit 生態(tài)!
Mooncakes.io 社區(qū)任務(wù)列表
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.