最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

好多人問(wèn),必須正式介紹一下:deepin-IDE

2023-09-04 16:45 作者:deepin深度操作系統(tǒng)  | 我要投稿

因?yàn)楸娝苤脑颍罱芏嗳硕荚谟懻搰?guó)產(chǎn) IDE,有些 deepin 社區(qū)成員就會(huì)發(fā)出疑問(wèn):深度科技(deepin)?有自己的 IDE 嗎?

正在網(wǎng)友熱議的時(shí)候,deepin 社區(qū)論壇上很快就出現(xiàn)一篇帖子,內(nèi)容是關(guān)于 deepin-IDE 的使用手冊(cè),此貼一出立即炸出很多正在勤奮搬磚的小伙伴。

當(dāng)然,也會(huì)有人緊跟時(shí)事發(fā)出靈魂一問(wèn):

為了消除大家的疑問(wèn),本文就做一個(gè)正式回答,同時(shí)也順帶介紹一下 deepin 自己的 IDE。?

為什么要做自己的 IDE

從操作系統(tǒng)角度來(lái)說(shuō),要構(gòu)建繁榮的生態(tài)環(huán)境,需要豐富和完善的基軟件體系。開(kāi)發(fā)庫(kù)、封包格式、開(kāi)發(fā)工具以及開(kāi)發(fā)者支持,是逐步完善發(fā)展的過(guò)程。

開(kāi)發(fā)庫(kù)

在開(kāi)發(fā)庫(kù)方面,deepin 操作系統(tǒng)已經(jīng)擁有了自己的 DTK(Development ToolKit)開(kāi)發(fā)套件。DTK 具備4個(gè)核心模塊、220+個(gè)類、2300+函數(shù)接口、11個(gè)輔助功能模塊、10+個(gè)擴(kuò)展接口模塊,已經(jīng)能夠滿足日常圖形應(yīng)用、業(yè)務(wù)應(yīng)用、系統(tǒng)定制應(yīng)用的開(kāi)發(fā)需求。目前 deepin 操作系統(tǒng)上自研的瀏覽器、音樂(lè)、郵件等 40 余款原生應(yīng)用全部使用 DTK 開(kāi)發(fā)。

-?DTKhttps://github.com/linuxdeepin/dtk

封包格式

封包格式源于Linux系統(tǒng)的軟件包管理器,例如 apt、up2date、 yum、portage 和 pacman 等。包管理器的多樣性給用戶帶來(lái)了更多選擇,但缺點(diǎn)也十分顯著:它們的軟件包無(wú)法互通。deepin 操作系統(tǒng)為了解決“一包多用”的問(wèn)題,推出了“玲瓏”軟件包管理方案,徹底解決系統(tǒng)與應(yīng)用、應(yīng)用與應(yīng)用之間因升級(jí)引起的兼容性問(wèn)題。

-?Linglonghttps://github.com/linuxdeepin/linglong

-?“玲瓏”打包商https://store.linglong.dev/

開(kāi)發(fā)工具

在開(kāi)發(fā)工具層面,成熟的 IDE 數(shù)不勝數(shù),例如 VSCode、Visual Studio、QtCreator 等,這些成熟IDE都有一些共性,比如良好的擴(kuò)展性,美觀的界面和較強(qiáng)的易用性,最重要的是對(duì)應(yīng)的生態(tài)都已經(jīng)非常完善。但痛點(diǎn)在于,我們還沒(méi)有自研的IDE工具。自研 IDE 是生態(tài)建設(shè)中非常重要的一環(huán),也是開(kāi)發(fā)者生態(tài)的集大成者。

首先,自研 IDE可以提供DTK、各種二開(kāi)接口的開(kāi)發(fā)支持,開(kāi)發(fā)者可以基于開(kāi)發(fā)庫(kù)開(kāi)發(fā)出對(duì)應(yīng)業(yè)務(wù)功能的應(yīng)用。其次,為了用上“玲瓏”這樣的好東西,自研 IDE 可以默認(rèn)提供“玲瓏”打包格式,一次打包即可覆蓋全 Linux 生態(tài)環(huán)境。最后,為了便于開(kāi)發(fā)者交流,增強(qiáng)社區(qū)活性,自研 IDE 可以集成開(kāi)發(fā)者平臺(tái),使開(kāi)發(fā)者匯聚在一起交流開(kāi)發(fā)經(jīng)驗(yàn)。由此看來(lái),自研 IDE 勢(shì)在必行!

按照 deepin 團(tuán)隊(duì)說(shuō)干就干的風(fēng)格,經(jīng)過(guò)多年時(shí)間研發(fā),deepin-IDE 就破殼了,它的最終目標(biāo)就是將上述分散的內(nèi)容整合到一起,形成一個(gè)高度統(tǒng)一、開(kāi)放自由、資源豐富的生態(tài)建設(shè)利器。

deepin-IDE 當(dāng)前完成情況

deepin-IDE 并不是突然冒出來(lái)的,在內(nèi)部已經(jīng)開(kāi)發(fā)了多年時(shí)間,為什么一直都默默無(wú)聞呢?因?yàn)檫@期間都在不斷完善特色功能,并攻克一些技術(shù)難題,還沒(méi)有達(dá)到非常完善的地步。同時(shí)因?yàn)樵O(shè)計(jì)人員沒(méi)有參與,所以整個(gè)界面由研發(fā)人員“原生”設(shè)計(jì),非常時(shí)(樸)尚(素),至于好不好看呢,文末有功能預(yù)覽圖,大家看了再說(shuō)。

首先帶大家看看deepin-IDE的整體架構(gòu):

架構(gòu)介紹

總體采用基于模塊化框架開(kāi)發(fā),支持 C/C++、Java、Python等多種編程語(yǔ)言,每一種開(kāi)發(fā)語(yǔ)言均是以插件的方式接入。模塊化設(shè)計(jì)一方面可以縮短產(chǎn)品研發(fā)與制造周期,增加產(chǎn)品系列,提高產(chǎn)品質(zhì)量,快速應(yīng)對(duì)市場(chǎng)變化;另一方面,也可以減少或消除對(duì)環(huán)境的不利影響,方便重用、升級(jí)、維修和獨(dú)立卸載。其整體結(jié)構(gòu)設(shè)計(jì)如下圖所示:

如上圖所示,帶顏色的模塊均和特定的語(yǔ)言相關(guān),對(duì)應(yīng)通信中間件用的是 LSP(Language Server Protocol) 語(yǔ)言服務(wù)協(xié)議,可以基于該協(xié)議實(shí)現(xiàn)語(yǔ)法高亮、符號(hào)樹、語(yǔ)法樹等功能;調(diào)試相關(guān)的用的是 DAP(Debug Adapter Protocol) 調(diào)試適配協(xié)議,可以基于該協(xié)議實(shí)現(xiàn)被調(diào)試程序的啟動(dòng)、運(yùn)行、斷點(diǎn)命中、單步跳入、單步跳出等常用調(diào)試功能。通過(guò)中間協(xié)議的適配,解耦了語(yǔ)言業(yè)務(wù)功能與實(shí)際功能提供者的依賴,讓語(yǔ)言擴(kuò)展變得可行。

為了進(jìn)一步提高擴(kuò)展性,前、后端均以插件方式實(shí)現(xiàn)。

在前端通過(guò)接入一個(gè)新的語(yǔ)言插件來(lái)實(shí)現(xiàn)新語(yǔ)言的擴(kuò)展,該插件用于實(shí)現(xiàn)語(yǔ)言相關(guān)的、特殊的業(yè)務(wù)邏輯,不用編寫全量的代碼,從而減輕了語(yǔ)言插件的代碼負(fù)擔(dān)。

在后端,通過(guò)插件方式可以更容易接入一個(gè)語(yǔ)言服務(wù)提供者。

根據(jù)上述描述,將語(yǔ)言相關(guān)的頂層數(shù)據(jù)流圖繪制如下:

功能介紹

deepin-IDE除了包含IDE常用功能,如智能編輯器、高度可擴(kuò)展的命令系統(tǒng)、工程管理、構(gòu)建管理系統(tǒng)、插件系統(tǒng)等之外,還支持多種兼容協(xié)議、多種開(kāi)發(fā)語(yǔ)言、代碼版本管理集成、低開(kāi)銷的實(shí)時(shí)性能分析工具等??傮w而言,IDE常見(jiàn)功能都在表里

  • 版本管理

支持主流版本控制系統(tǒng)Git、SVN。

  • 協(xié)議支持

  • 語(yǔ)言支持

支持C++、C、java、python、javascript五大類常用編輯語(yǔ)言,支持常用構(gòu)建工具CMake、Maven、Ninja、Gradle等。

除了上述常見(jiàn)功能,deepin-IDE還包含一些特有功能,例如反向調(diào)試、代碼遷移等。

  • 反向調(diào)試

該功能通過(guò)進(jìn)程執(zhí)行歷史回放、事件分類管理、時(shí)間軸管理等手段,進(jìn)一步提升應(yīng)用的調(diào)試效率和開(kāi)發(fā)能力。

  • 代碼遷移

代碼遷移分析子系統(tǒng)是deepin-IDE的一大亮點(diǎn),可以輔助開(kāi)發(fā)者將x86平臺(tái)的Linux應(yīng)用遷移到龍芯、飛騰等國(guó)產(chǎn)處理器架構(gòu),及統(tǒng)信UOS等國(guó)產(chǎn)操作系統(tǒng)上,使用該功能可以自動(dòng)分析出需修改的代碼內(nèi)容,并給出代碼遷移指導(dǎo),降低遷移難度,提升遷移效率。

功能界面預(yù)覽

  • 語(yǔ)言支持

  • 代碼遷移

  • 調(diào)試模式

  • 反向調(diào)試

  • 版本管理

誰(shuí)在使用 deepin-IDE

deepin-IDE 已經(jīng)在深度的部分應(yīng)用上輕度使用,以下羅列了部分:

  • 深度畫板應(yīng)用(deepin-draw)

倉(cāng)庫(kù)地址:

https://github.com/linuxdeepin/deepin-draw

  • 深度看圖應(yīng)用(deepin-image-viewer)

倉(cāng)庫(kù)地址:

https://github.com/linuxdeepin/deepin-image-viewer

  • 深度相冊(cè)應(yīng)用(deepin-album)

倉(cāng)庫(kù)地址:

https://github.com/linuxdeepin/deepin-album

  • 開(kāi)發(fā)畫板應(yīng)用

  • 開(kāi)發(fā)畫圖應(yīng)用

  • 開(kāi)發(fā)相冊(cè)應(yīng)用

deepin-IDE 將來(lái)會(huì)如何發(fā)展

IDE 是一個(gè)非常宏大的話題,deepin-IDE 當(dāng)前相比于其他成熟的IDE才剛起步,還有很多需要完善的地方:

  • 請(qǐng)一個(gè)設(shè)計(jì)師

  • 插件系統(tǒng)完善

  • 低代碼編程支持

  • 支持一鍵軟件打包:deb、玲瓏打包

  • 支持軟件包簽名、上架應(yīng)用商店

  • AI功能的接入

  • DTK等開(kāi)發(fā)套件集成,文管、桌面、任務(wù)欄等插件模板接入

  • 開(kāi)發(fā)者平臺(tái)接入

deepin-IDE 還存在一些已知問(wèn)題待解決:

  • 文件描述符占用過(guò)多導(dǎo)致崩潰

  • 存在部分翻譯缺失的問(wèn)題

  • 底部交互區(qū)暫不支持多頁(yè)面

  • 符號(hào)樹解析精度不高

deepin-IDE 開(kāi)源嗎

deepin-IDE 傳承了 deepin “專注自研,貢獻(xiàn)開(kāi)源” 的技術(shù)基因,自研代碼14萬(wàn)余行。

當(dāng)然,這一產(chǎn)品的快速發(fā)展,是站在了“開(kāi)源”這個(gè)巨人的肩膀上,為了避免重復(fù)造輪子,采用了一些開(kāi)源終端組件、功能組件,在此列出該產(chǎn)品汲取的開(kāi)源成果,感謝開(kāi)源社區(qū)!

代碼公開(kāi)地址,歡迎大家積極參與到 deepin-IDE 的研發(fā):

倉(cāng)庫(kù)地址:

  • GitHub: https://github.com/linuxdeepin/deepin-unioncode

  • Gitee: https://gitee.com/deepin-community/deepin-unioncode

下載鏈接:

  • https://github.com/linuxdeepin/deepin-unioncode/releases

講到這里,正好可以回答一下本文開(kāi)頭社友的問(wèn)題:

deepin-IDE?和?VSCode?有關(guān)聯(lián)嗎?

我們的回答是:

沒(méi)有關(guān)聯(lián)!deepin-IDE 就是純純的自研!

deepin-IDE根植于開(kāi)源社區(qū),它依賴于 scintilla 等開(kāi)源組件,本身也使用了 GPLv3 協(xié)議開(kāi)源,當(dāng)然也要貢獻(xiàn)開(kāi)源。和其它的基礎(chǔ)軟件一樣,IDE也需要多年的打造與完善,比如 VSCode 至今也發(fā)展了八年,所以開(kāi)發(fā) IDE 確實(shí)難度巨大。

路雖遠(yuǎn),行則將至。事雖難,做則必成。我們也歡迎開(kāi)源愛(ài)好者參與進(jìn)來(lái),幫助它繼續(xù)成長(zhǎng)!


好多人問(wèn),必須正式介紹一下:deepin-IDE的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
大安市| 玛多县| 巧家县| 新龙县| 改则县| 靖远县| 阿图什市| 南开区| 鄂伦春自治旗| 专栏| 康乐县| 龙南县| 阿巴嘎旗| 桐城市| 司法| 巧家县| 通榆县| 隆安县| 寿阳县| 新疆| 漳州市| 锦州市| 玛多县| 黑山县| 新郑市| 额济纳旗| 上犹县| 巫溪县| 铁力市| 瑞丽市| 会昌县| 吉木萨尔县| 德格县| 灯塔市| 台中县| 四川省| 错那县| 开原市| 蒙山县| 九龙城区| 六安市|