<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          真?自研 IDE 來了

          共 8130字,需瀏覽 17分鐘

           ·

          2023-09-05 08:59

          來源 | 高效程序員
          因為眾所周知的原因,最近很多人都在討論國產(chǎn) IDE,有些 deepin 社區(qū)成員就會發(fā)出疑問:深度科技(deepin) 有自己的 IDE 嗎?


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

          當然,也會有人緊跟時事發(fā)出靈魂一問:

          為了消除大家的疑問,本文就做一個正式回答,同時也順帶介紹一下 deepin 自己的 IDE。 

          為什么要做自己的 IDE

          從操作系統(tǒng)角度來說,要構建繁榮的生態(tài)環(huán)境,需要豐富和完善的基軟件體系。開發(fā)庫、封包格式、開發(fā)工具以及開發(fā)者支持,是逐步完善發(fā)展的過程。
          開發(fā)庫
          在開發(fā)庫方面,deepin 操作系統(tǒng)已經(jīng)擁有了自己的 DTK(Development ToolKit)開發(fā)套件。DTK 具備4個核心模塊、220+個類、2300+函數(shù)接口、11個輔助功能模塊、10+個擴展接口模塊,已經(jīng)能夠滿足日常圖形應用、業(yè)務應用、系統(tǒng)定制應用的開發(fā)需求。目前 deepin 操作系統(tǒng)上自研的瀏覽器、音樂、郵件等 40 余款原生應用全部使用 DTK 開發(fā)。
          - DTKhttps://github.com/linuxdeepin/dtk
          封包格式
          封包格式源于Linux系統(tǒng)的軟件包管理器,例如 apt、up2date、 yum、portage 和 pacman 等。包管理器的多樣性給用戶帶來了更多選擇,但缺點也十分顯著:它們的軟件包無法互通。deepin 操作系統(tǒng)為了解決“一包多用”的問題,推出了“玲瓏”軟件包管理方案,徹底解決系統(tǒng)與應用、應用與應用之間因升級引起的兼容性問題。
          - Linglonghttps://github.com/linuxdeepin/linglong
          - “玲瓏”打包商https://store.linglong.dev/
          開發(fā)工具
          在開發(fā)工具層面,成熟的 IDE 數(shù)不勝數(shù),例如 VSCode、Visual Studio、QtCreator 等,這些成熟IDE都有一些共性,比如良好的擴展性,美觀的界面和較強的易用性,最重要的是對應的生態(tài)都已經(jīng)非常完善。但痛點在于,我們還沒有自研的IDE工具。自研 IDE 是生態(tài)建設中非常重要的一環(huán),也是開發(fā)者生態(tài)的集大成者。
          首先,自研 IDE可以提供DTK、各種二開接口的開發(fā)支持,開發(fā)者可以基于開發(fā)庫開發(fā)出對應業(yè)務功能的應用。其次,為了用上“玲瓏”這樣的好東西,自研 IDE 可以默認提供“玲瓏”打包格式,一次打包即可覆蓋全 Linux 生態(tài)環(huán)境。最后,為了便于開發(fā)者交流,增強社區(qū)活性,自研 IDE 可以集成開發(fā)者平臺,使開發(fā)者匯聚在一起交流開發(fā)經(jīng)驗。由此看來,自研 IDE 勢在必行!
          按照 deepin 團隊說干就干的風格,經(jīng)過多年時間研發(fā),deepin-IDE 就破殼了,它的最終目標就是將上述分散的內(nèi)容整合到一起,形成一個高度統(tǒng)一、開放自由、資源豐富的生態(tài)建設利器。

          deepin-IDE 當前完成情況

          deepin-IDE 并不是突然冒出來的,在內(nèi)部已經(jīng)開發(fā)了多年時間,為什么一直都默默無聞呢?因為這期間都在不斷完善特色功能,并攻克一些技術難題,還沒有達到非常完善的地步。同時因為設計人員沒有參與,所以整個界面由研發(fā)人員“原生”設計,非常時(樸)尚(素),至于好不好看呢,文末有功能預覽圖,大家看了再說。
          首先帶大家看看deepin-IDE的整體架構:

          架構介紹

          總體采用基于模塊化框架開發(fā),支持 C/C++、Java、Python等多種編程語言,每一種開發(fā)語言均是以插件的方式接入。模塊化設計一方面可以縮短產(chǎn)品研發(fā)與制造周期,增加產(chǎn)品系列,提高產(chǎn)品質(zhì)量,快速應對市場變化;另一方面,也可以減少或消除對環(huán)境的不利影響,方便重用、升級、維修和獨立卸載。其整體結構設計如下圖所示:
          如上圖所示,帶顏色的模塊均和特定的語言相關,對應通信中間件用的是 LSP(Language Server Protocol) 語言服務協(xié)議,可以基于該協(xié)議實現(xiàn)語法高亮、符號樹、語法樹等功能;調(diào)試相關的用的是 DAP(Debug Adapter Protocol) 調(diào)試適配協(xié)議,可以基于該協(xié)議實現(xiàn)被調(diào)試程序的啟動、運行、斷點命中、單步跳入、單步跳出等常用調(diào)試功能。通過中間協(xié)議的適配,解耦了語言業(yè)務功能與實際功能提供者的依賴,讓語言擴展變得可行。
          為了進一步提高擴展性,前、后端均以插件方式實現(xiàn)。
          在前端通過接入一個新的語言插件來實現(xiàn)新語言的擴展,該插件用于實現(xiàn)語言相關的、特殊的業(yè)務邏輯,不用編寫全量的代碼,從而減輕了語言插件的代碼負擔。
          在后端,通過插件方式可以更容易接入一個語言服務提供者。
          根據(jù)上述描述,將語言相關的頂層數(shù)據(jù)流圖繪制如下:
          功能介紹
          deepin-IDE除了包含IDE常用功能,如智能編輯器、高度可擴展的命令系統(tǒng)、工程管理、構建管理系統(tǒng)、插件系統(tǒng)等之外,還支持多種兼容協(xié)議、多種開發(fā)語言、代碼版本管理集成、低開銷的實時性能分析工具等。總體而言,IDE常見功能都在表里
          • 版本管理

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

          • 協(xié)議支持


          • 語言支持

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

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

          • 反向調(diào)試

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

          • 代碼遷移

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

          • 語言支持


          • 代碼遷移


          • 調(diào)試模式


          • 反向調(diào)試


          • 版本管理

          誰在使用 deepin-IDE


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

          倉庫地址:

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


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

          倉庫地址:

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


          • 深度相冊應用(deepin-album)

          倉庫地址:

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



          • 開發(fā)畫板應用


          • 開發(fā)畫圖應用

          • 開發(fā)相冊應用

          deepin-IDE 將來會如何發(fā)展

          IDE 是一個非常宏大的話題,deepin-IDE 當前相比于其他成熟的IDE才剛起步,還有很多需要完善的地方:
          • 請一個設計師

          • 插件系統(tǒng)完善
          • 低代碼編程支持
          • 支持一鍵軟件打包:deb、玲瓏打包
          • 支持軟件包簽名、上架應用商店
          • AI功能的接入
          • DTK等開發(fā)套件集成,文管、桌面、任務欄等插件模板接入
          • 開發(fā)者平臺接入

          deepin-IDE 還存在一些已知問題待解決:
          • 文件描述符占用過多導致崩潰
          • 存在部分翻譯缺失的問題
          • 底部交互區(qū)暫不支持多頁面
          • 符號樹解析精度不高

          deepin-IDE 開源嗎

          deepin-IDE 傳承了 deepin “專注自研,貢獻開源” 的技術基因,自研代碼14萬余行。
          當然,這一產(chǎn)品的快速發(fā)展,是站在了“開源”這個巨人的肩膀上,為了避免重復造輪子,采用了一些開源終端組件、功能組件,在此列出該產(chǎn)品汲取的開源成果,感謝開源社區(qū)!
          代碼公開地址,歡迎大家積極參與到 deepin-IDE 的研發(fā):
          倉庫地址:
          • GitHub: https://github.com/linuxdeepin/deepin-unioncode
          • Gitee: https://gitee.com/deepin-community/deepin-unioncode

          下載鏈接:
          • https://github.com/linuxdeepin/deepin-unioncode/releases

          講到這里,正好可以回答一下本文開頭社友的問題:
          deepin-IDE 和 VSCode 有關聯(lián)嗎?
          我們的回答是:
          沒有關聯(lián)!deepin-IDE 就是純純的自研!
          deepin-IDE根植于開源社區(qū),它依賴于 scintilla 等開源組件,本身也使用了 GPLv3 協(xié)議開源,當然也要貢獻開源。和其它的基礎軟件一樣,IDE也需要多年的打造與完善,比如 VSCode 至今也發(fā)展了八年,所以開發(fā) IDE 確實難度巨大。
          路雖遠,行則將至。事雖難,做則必成。我們也歡迎開源愛好者參與進來,幫助它繼續(xù)成長!

          ·END·

          大家好,介紹下我的朋友一去、二三里。


          從業(yè) 10 年,歷經(jīng) 2 次北漂,如今扎根西安。期間做過測試,干過開發(fā),當過項目經(jīng)理。


          現(xiàn)就職于某軟件公司,從事國產(chǎn)操作系統(tǒng)開發(fā),擔任架構師一職,力爭為國產(chǎn)化道路添磚加瓦!


          平日喜歡折騰代碼,寫寫文章,分享一些個人感悟。希望有一天真正自由,干一些有意義的事情!


          感謝大家關注,歡迎加微信(iwaleon),邀請入技術群,和眾多大佬一起暢聊程序人生。




          瀏覽 1349
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级a毛片免费观看久久精品 | 手机看久久 | 狠狠狠狠狠狠狠狠狠 | 高清无码手机在线 | 毛片网 |